web.xml文件配置,当新建一个Servlet文件时,web.xml会自动生成相应的配置。
<servlet>
<!-- servlet-name 指定Servlet 名,要与下面servlet-mapping元素中的servlet-name保持一致 -->
<servlet-name>TestServlet</servlet-name>
<!-- servlet-class 对应着Servlet 类的完全限定名 -->
<servlet-class>com.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet-name要与上面servlet元素中的servlet-name保持一致 -->
<servlet-name>TestServlet</servlet-name>
<!-- url-pattern设定当前Servlet在浏览器中运行时的url -->
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>
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);
}