Servlet两种配置方式和Servlet Filter以及Listener的配置方式
Servlet两种配置方式
在Servlet2.5规范之前,Java
Web应用的绝大部分组件都通过web.xml文件来配置管理,Servlet3.0规范可通过Annotation来配置管理Web组件,因此web.xml文件可以变得更加简洁,这也是Servlet3.0的重要简化。
ps :个人由于学习中下载Tomcat版本与教学视频不一致,对应的Dynamic Web Module(即上Servlet2.5与3.0)版本不一致
Tomcat6.0–》Dynamic Web Module2.5
Tomcat7.0以后–》Dynamic Web Module3.0
(1)通过web.xml配置Servlet
<servlet>
<description></description>
<display-name>LoginServlet</display-name><!-- 别名-->
<servlet-name>LoginServlet</servlet-name><!-- 文件名-->
<servlet-class>com.hongzetao.servlet.LoginServlet</servlet-class><!-- 全类名-->
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name><!-- 对应上边文件名,引用相应Servlet-->
<url-pattern>/user/LoginServlet</url-pattern><!-- 相对于Web应用的根目录的URL,url-pattern元素的值必须以斜杠(/)起始。-->
</servlet-mapping>
(2)使用@WebServlet(Annotation)进行配置
Annotation 一般为url-pattern(相对于Web应用的根目录的URL)
@WebServlet支持的常用属性:
displayName,initParams,loadOnStartup,name,urlPatterns/value,asyncSupported
/**
* Servlet implementation class BaseServlet
*/
@WebServlet("/BaseServlet")
public class BaseServlet extends HttpServlet
使用Annotation来配置Servlet,需注意:
- 不要在web.xml文件的根元素()中指定metadata-complete=“true”;
- 不要在web.xml文件中配置该Servlet;
Servlet Filter的配置方式
在web.xml中配置(与Servlet基本相同)
<filter>
<display-name>TransactionFilter</display-name>
<filter-name>TransactionFilter</filter-name>
<filter-class>com.atguigu.filter.TransactionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TransactionFilter</filter-name>
<url-pattern>/*</url-pattern><!--以斜杠(/)开始的模式,它指定过滤器应用的URL(即所有访问URL的请求都要经过Filter -->
</filter-mapping>
有三种写法:
- 精确匹配:拦截指定路径的请求
- 路径匹配:路径/* 拦截路径下所有请求
- 后缀匹配:*.后缀 拦截该后缀的所有请求
Listener的配置方式
同样在web.xml中配置(先实现相应接口)
<listener>
<listener-class>com.atguigu.listener.lifecycle.RequestLifeListener</listener-class>
</listener>
上例中当收到请求时即会触发监听器
ps:只配置了一个全类名即可,是不是很简单呀哈哈