Servlet(二)
1、Servlet的API(生命周期)
package com.xiaobing.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class StartServlet implements Servlet { @Override public void init(ServletConfig config) throws ServletException { //init初始化参数方法,servlet创建的时候执行;ServletConfig代表该servlet的配置信息; System.out.println("打印servlet的name:"+config.getServletName()); System.out.println("获取servlet初始化参数:"+config.getInitParameter("URL")); ServletContext servletContext = config.getServletContext(); System.out.println("init running ......"); } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { //每次请求都会执行service方法 System.out.println("service running ......."); } @Override public void destroy() { // 销毁,关闭tomcat的时候执行! }
<<!--web.xml 配置信息-->
xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>TomcatTest</display-name> <servlet> <servlet-name>StartServlet</servlet-name> <servlet-class>com.xiaobing.servlet.StartServlet</servlet-class> <init-param> <param-name>URL</param-name> <param-value>www.baodu.com</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>StartServlet</servlet-name> <url-pattern>/startServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
2、servlet 生命周期图示
3、servlet 配置
1)基本配置
其中url-pattern的配置方式: 1)完全匹配访问的资源与配置的资源完全相同才能访问到 <url-pattern>/startServlet</url-pattern> 2)目录匹配格式:虚拟目录.../* *代表任意 <url-pattern>/javaWeb/servlet/*</url-pattern> 3)扩展名匹配,格式: *.扩张名 <url-pattern>*.html</url-pattern> 注意:第二种与第三种不要混用,否则会报错!如:<url-pattern>/javaWeb/servlet/*.html</url-pattern>
2)服务器启动实例化 servlet 配置
servlet 何时创建:默认第一次访问时创建:加上<load-on-startup>3</load-on-startup> servlet对象在服务器启动时就创建!
<servlet> <servlet-name>StartServlet</servlet-name> <servlet-class>com.xiaobing.servlet.StartServlet</servlet-class> <init-param> <param-name>URL</param-name> <param-value>www.baodu.com</param-value> </init-param> <!-- 服务器在启动的时候就创建servlet对象!数字代表优先级,数字越小代表的优先级越高! --> <load-on-startup>3</load-on-startup> </servlet>
3)缺省 Servlet 配置如:<url-pattern>/</url-pattern>
当你访问的资源地址所有的servlet都不匹配时,缺省的servlet负责处理!web应用中所有资源的响应都是servlet负责,包括静态资源!
4、扩展 servlet 模板配置
(1)windows =》preferences =》templates
package ${enclosing_package}; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/quickStartServlet2") public class ${primary_type_name} extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().write("xiaobing doGet running ......"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
5、学习后总结,分享给需要的人,分享使我进步,分享使我快乐!