当前位置: 首页 > news >正文

网站建设接单浙江省住房建设厅继续教育网站

网站建设接单,浙江省住房建设厅继续教育网站,建模网站,wordpress ping服务插件2023.10.26 Filter过滤器 过滤器#xff0c;顾名思义就是对事物进行过滤的。Web中的过滤器#xff0c;就是对请求进行过滤#xff0c;我们使用过滤器#xff0c;就可以对请求进行拦截#xff0c;然后做相应的处理#xff0c;实现许多特殊功能。如登录控制#xff0c;权…2023.10.26 Filter过滤器 过滤器顾名思义就是对事物进行过滤的。Web中的过滤器就是对请求进行过滤我们使用过滤器就可以对请求进行拦截然后做相应的处理实现许多特殊功能。如登录控制权限管理过滤敏感词汇等。 Filter可以在Servlet这个目标程序执行之前添加代码也可以在目标Servlet执行之后添加代码之前之后都可以添加过滤规则。一般情况下都是在过滤器当中编写公共代码。所以通过过滤器可以实现代码重用的功能。 如果同一个资源或同一组资源中应用了多个过滤器则调用顺序显得比较重要这时候就需要配置web.xml文件来控制其先后顺序。 如何实现一个过滤器 编写一个Java类实现一个接口jarkata.servlet.Filter。并且实现这个接口当中所有的方法。 init方法在Filter对象第一次被创建之后调用并且只调用一次。doFilter方法只要用户发送一次请求则执行一次。发送N次请求则执行N次。在这个方法中编写过滤规则。 destroy方法在Filter对象被释放/销毁之前调用并且只调用一次。 在web.xml文件中对Filter进行配置。这个配置和Servlet很像。也可以使用注解WebFilter psFilter的生命周期 和Servlet的声明周期基本一样唯一区别就是Servlet对象默认情况下在服务器启动的时候是不会新建对象的。而Filter对象默认情况下在服务器启动的时候会新建对象。 psFilter的优先级天生的就比Servlet优先级高。 目标Servlet是否执行取决于两个条件 第一在过滤器当中是否编写了chain.doFilter(request, response); 代码。 第二用户发送的请求路径是否和Servlet的请求路径一致。 Filter过滤器使用案例 先编写一个filter类实现Filter接口 package filter;import jakarta.servlet.*; import jakarta.servlet.annotation.WebFilter;import java.io.IOException;WebFilter(*.do) public class filter1 implements Filter {public filter1() {System.out.println(无参构造执行了);}Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println(init方法执行了);}Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println(doFilter方法执行了);// 执行下一个过滤器如果下一个不是过滤器了则执行目标程序Servlet。filterChain.doFilter(servletRequest,servletResponse);System.out.println(doFilter方法执行结束);}Overridepublic void destroy() {System.out.println(destroy方法执行了);} }chain.doFilter(request, response); 这行代码的作用 执行下一个过滤器如果下面没有过滤器了执行最终的Servlet。 编写两个servlet类 Aservlet package filter;import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;WebServlet(/a.do) public class Aservlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(Aservlet的doget方法执行了。);} }Bservlet package filter;import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;WebServlet(/b.do) public class Bservlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(Bservlet的doget方法执行了);} }注意两个servlet对应的路径必须以“.do”结尾因为之前过滤器设定的路径是“ *.do ”。 然后在浏览器输入http://localhost:8080/servlet09/a.do 控制台输出如下 然后在浏览器输入http://localhost:8080/servlet09/b.do 控制台输出如下 如果有多个过滤器的情况 ①如果你是用注解进行配置的过滤器执行顺序是根据Filter的类名来的。 比如FilterA和FilterB先执行FilterA。Filter1和Filter2先执行Filter1。 ②在web.xml文件中进行配置的时候Filter的执行顺序是从上至下依次执行。 Listener监听器 Listener 是 Web 的三大组件之一另外两大是Servlet控制器、Filter过滤器。 Listener 可以 监听 JavaWeb 中的三大域对象HttpServletRequest、HttpSession、ServletContext 创建和销毁一旦被监视的对象发生相应的变化应该采取相应的操作。 Servlet规范中提供了哪些监听器 jakarta.servlet包下 ServletContextListener在context对象创建和销毁时调用下同 ServletContextAttributeListener在context域的数据被修改时调用下同 ServletRequestListener ServletRequestAttributeListener jakarta.servlet.http包下 HttpSessionListener HttpSessionAttributeListener 该监听器需要使用WebListener注解进行标注。 该监听器监听的是什么是session域中数据的变化。只要数据变化则执行相应的方法。主要监测点在session域对象上。 HttpSessionBindingListener 该监听器不需要使用WebListener进行标注。 假设User类实现了该监听器那么User对象在被放入session的时候触发bind事件User对象从session中删除的时候触发unbind事件。 假设Customer类没有实现该监听器那么Customer对象放入session或者从session删除的时候不会触发bind和unbind事件。 HttpSessionIdListener不常用 session的id发生改变的时候监听器中的唯一一个方法就会被调用。 HttpSessionActivationListener不常用 监听session对象的钝化和活化的。 钝化session对象从内存存储到硬盘文件。 活化从硬盘文件把session恢复到内存。 实现一个监听器的步骤 以ServletContextListener为例先编写一个类实现ServletContextListener接口并且实现里面的方法。在web.xml文件中对ServletContextListener进行配置或者使用注解WebListener。这里直接使用注解代码如下 package listener;import jakarta.servlet.ServletContextEvent; import jakarta.servlet.ServletContextListener; import jakarta.servlet.annotation.WebListener;// ServletContextListener监听器主要监听的是ServletContext对象的状态。 WebListener public class MyServletContextListener implements ServletContextListener {/*** 监听器中的方法不需要程序员手动调用。是发生某个特殊事件之后被服务器调用。* param sce*/Overridepublic void contextInitialized(ServletContextEvent sce) { // 服务器启动时间点想在这个时候执行一段代码写就行了。// 这个方法是在ServletContext对象被创建的时候调用。System.out.println(ServletContext对象创建了。);}Overridepublic void contextDestroyed(ServletContextEvent sce) { // 服务器关闭时间点。// 现在这个特殊的时刻写代码你写就是了。它会被服务器自动调用。// 这个方法是在ServletContext对象被销毁的时候调用。System.out.println(ServletContext对象被销毁了。);} }此时启动服务器控制台显示如下 关闭服务器控制台显示如下
http://www.zqtcl.cn/news/174418/

相关文章:

  • 网上最好的网站模块模板建站小程序
  • 安平县哪家做网站html动漫网站模板下载
  • 网站关于 模板wordpress adsence
  • 杭州公司网站建设如何选择五屏网站建设
  • 天津商城网站建设平面设计师网站
  • 上海的网站设计公司苏州网站建设渠道
  • 做美食没有广告的网站o2o网站建设
  • 网站程序调试模式怎么做做汽车特卖会的网站
  • 怎么有自己的网站政务公开网站建设方案
  • 济南装饰行业网站建设成都地区网站开发成本
  • 宁波产品网站设计模板网站建设需要通过哪些审批
  • 了解网站建设管理网站开发的可行性研究报告
  • 淄博网站设计策划方案公司中文域名.网站
  • 综合网站系统电脑怎么做软件开发
  • 网站虚拟主持人制作国内网站建设排名
  • 上海房地产网站建设报价wordpress.备份
  • 网站建设运营维护合同专用车网站建设价格
  • 建设部咨询资质网站平台类网站建设公司
  • wap 网站 源码网站建立
  • 辽阳专业建设网站公司山东省工程建设招标信息网站
  • 下载专门做初中数学题的网站佛山网站制作在线
  • 永康物流网站蒙牛企业网站建设规划书
  • 网站开发发和后台开发有什么区别马鞍山网站建设价格
  • 广州建设银行预约公积金网站怎么下载ppt免费模板
  • 网站策划的基本过程网站设置在哪
  • 内蒙古住房和城乡建设网站网站建设需要购买什么
  • 网站做调查问卷给钱的兼职南通营销网站制作
  • 开个微网站需要什么自己制作网页的步骤
  • 有专业做线切割配件的网站吗中国婚恋网站排名
  • 做ppt网站大全中国工程建设信息网站