1、Servlet的作用
用于接收请求,处理逻辑,响应结果
一次创建,多次执行,一次销毁
2、Servlet的编写
servlet编写:
public void init(ServletConfig servletConfig) throws ServletException {//servlet创建时执行该方法System.out.println("MyServlet创建了!!!");}public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {//servlet每访问一次,就执行一次该方法,//该方法可接收所有的访问方式System.out.println("MyServlet被访问了!!!");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//当servlet被访问时的方法为post方式时执行该方法System.out.println("doPost执行了!!!!");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//当servlet被访问时的方法为get方式时执行该方法System.out.println("doGet执行了!!!!");}public void destroy() {//当servlet被销毁前执行该方法System.out.println("MyServlet销毁了..");}
web点xml编写:
<!--配置servlet--><servlet><servlet-name>servlet实现类名</servlet-name><servlet-class>servlet实现类名的项目路径</servlet-class><init-param><param-name>encode</param-name><param-value>utf-8</param-value></init-param></servlet><!--配置servlet的映射路径--><servlet-mapping><servlet-name>servlet实现类名</servlet-name><url-pattern>/请求资源名称(servlet实现类名)</url-pattern></servlet-mapping>
servlet的生命周期:
1、initservlet对象创建时,调用此方法2、service用户访问servlet时,调用此方法, 每访问一次,执行一次3、destroyservlet对象销毁前,调用此方法*:Servlet被销毁时执行。服务器关闭时,Servlet被销毁*:只有服务器正常关闭时,才会执行destroy方法。*:destroy方法在Servlet被销毁之前执行,一般用于释放资源
ServletConfig对象:
Tomcat在servlet对象创建时,执行init()方法,并创建一个ServletConfig配置对象作用:读取web点xml配置文件Servlet中<init+param>信息,实现参数和代码的解耦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~public class ServletConfigServlet implements Servlet {// 定义成员变量private ServletConfig servletConfig;@Overridepublic void init(ServletConfig servletConfig) throws ServletException {// 将init中的servletConfig对象,赋值给成员变量this.servletConfig = servletConfig;}@Overridepublic ServletConfig getServletConfig() {// 获取全局的ServletConfig对象return servletConfig;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {// 获取web.xml文件中配置的编码String encode = getServletConfig().getInitParameter("encode");System.out.println(encode);}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}}
url的映射模式:
精确匹配(掌握)<url-pattern>/servletDemo</url-pattern>目录匹配<url-pattern>/aa/*</url-pattern>后缀匹配<url-pattern>*.xxx</url-pattern>
Servlet3.0的步骤:
1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml2. 定义一个类,实现Servlet接口3. 复写方法4. 在类上使用@WebServlet注解,进行配置* @WebServlet("资源路径")~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~public @interface WebServlet {String name() default "";//相当于<Servlet-name>String[] value() default {};//代表urlPatterns()属性配置String[] urlPatterns() default {};//相当于<url-pattern>int loadOnStartup() default -1;//相当于<load-on-startup>}
@WebServlet注解和web.xml文件不能同时使用,会导致服务器启动失败!
