Servlet访问
上面的介绍是采用精确匹配的形式配置了URL到Servlet之间的映射关系。
两种非精确匹配的Servlet配置方式
<!—对TestServlet 路径下的所有请求,都由TestServlet 这个Servlet进行处理--> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/TestServlet/*</url-pattern> </servlet-mapping> <!—对所有的请求,都由TestServlet 这个Servlet进行处理--> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern> /*</url-pattern> </servlet-mapping><!—对所有以.do为后缀的请求,都由TestServlet 这个Servlet进行处理--> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
Servlet初始化参数设置
在使用web.xml部署描述文件配置Servlet时,还可以预先对Servlet进行初始化设置,当Servlet加载时可以从该Servlet配置文件中获取初始化参数。
配置如下:
<servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.TestServlet</servlet-class> <init-param> <param-name>key</param-name> <param-value>value</param-value> </init-param> </servlet> 注意:如果有多个初始化参数,则需要多个<init-param></init-param>获取初始化参数的值:
第一种:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String value = getInitParameter("key"); System.out.println(value); }第二种:
@Override public void init(ServletConfig config) throws ServletException { super.init(config); String value = getInitParameter("key"); System.out.println(value); } @Override public void init(ServletConfig config) throws ServletException { String value = config.getInitParameter("key"); System.out.println(value); }第三种:
@Override public void init() throws ServletException { super.init(); String value = getInitParameter("key"); System.out.println(value); } @Override public void init() throws ServletException { String value = getInitParameter("key"); System.out.println(value); }Servlet上下文(环境对象)初始化参数设置
<!-- Servlet上下文(环境对象)初始化参数设置--> <context-param> <param-name>defaultName</param-name> <param-value>全局匿名</param-value> <context-param> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.TestServlet</servlet-class> <init-param> <param-name>key</param-name> <param-value>value</param-value> </init-param> </servlet> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext servletContext = getServletContext(); String name = servletContext.getInitParameter("key"); System.out.println(name); } @Override publicvoid init() throws ServletException { super.init(); ServletContextservletContext = getServletContext(); Stringname = servletContext.getInitParameter("key"); System.out.println(name); } @Override public void init(ServletConfig config) throws ServletException { super.init(config); ServletContext servletContext = getServletContext(); String name = servletContext.getInitParameter("key"); System.out.println(name); } @Override public void init(ServletConfig config) throws ServletException { ServletContext servletContext = config.getServletContext(); String name = servletContext.getInitParameter("key"); System.out.println(name); }