为了账号安全,请及时绑定邮箱和手机立即绑定

Java Web开发技术应用——过滤器

难度初级
时长 1小时40分
学习人数
综合评分9.53
339人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.3 逻辑清晰
  • 我来说一下为什么sendRedirect会陷入死循环,而getRequestDispatcher.forward不会。 因为前者是使用的过滤器类型是request,访问index.jsp页面时,触发过滤器,重定向到main.jsp,由于过滤器类型是request,所以会继续触发main.jsp的过滤器,所以会陷入死循环。 后者在访问index.jsp的时候,过滤器类型是request,所以会触发过滤器,然后利用转发的方式访问main.jsp,这时候过滤器的类型是forward,而此时web.xml中定义的匹配main的过滤器类型还是request,所以不执行main所匹配的过滤器,因此只执行一次。
    查看全部
  • 我来说说我对异步过滤器的理解吧。根据过滤器的规则,过滤器得等servlet执行结束才能停止,所以如果servlet执行很久,过滤器得等很久,所以说呢,为了使得过滤器早点执行结束,就让servlet在后台执行,过滤器提前结束,这就是异步过滤器的优点所在 @WebServlet(asyncSupported = true, displayName = "/AsyncServlet", urlPatterns={"/servlet/AsyncServlet"}) asyncSupported = true 是必须开启用以支持异步 @WebFilter(filterName="AsynFilter",asyncSupported=true,value={"/servlet/AsyncServlet"},dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC}) asyncSupported = true 是必须开启用以支持异步 dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC} DispatcherType.REQUEST必须要加上,否则过滤器就不会生效了 同时注意在过滤的地址和servlet的地址必须相同
    查看全部
  • Web应用允许多个过滤器来过滤页面请求——联想现实生活中的例子是最好理解的啦!比如:为了获得更加干净的水,可能需要多个过滤器来进行过滤。 这个时候就分为两种情况了 1:多个过滤器过滤的URL不同,那么此时的多个过滤器是互不相干的,各过滤各的,互不干扰 2:多个多虑期过滤的URL相同,那么此时的多个过滤器就形成了一个过滤器链,此时就有个一个问题了Web容器现将对应的请求给谁过滤呢?处理规则也很简单,就是根据在Web.xml文件中配置的声明的顺序来决定,那个先过滤那个在过滤
    查看全部
  • JAVA过滤机制——第一个过滤器案例 1、创建一个过滤器类 ,继承自servlet下的Filter 2、重写三个方法init() doFilter() destroy()方法 (1)init()初始化:这个方法可以读取web.xml文件中的过滤器初始化参数。通过参数FilterConfig arg0可以获取更多参数 (2)doFIlter()核心:完成实际的过滤操作。当用户请求访问与过滤器【关联的URL】时,Web容器将先调用过滤器的doFilter方法,FilterChain arg2参数可以调用chain.doFilter方法,将请求传给下一个过滤器(或目标资源),或利用转发,重定向将请求转发给其他资源。 (3)web容器在消耗过滤器前调用该方法,用于释放过滤器占用的资源。(大多数情况用不到)
    查看全部
  • web.xml配置 过滤器的配置可以在设计里面 过滤器可以改变用户处理的路径,但不能直接处理数据
    查看全部
  • @JAVA过滤机制——过滤简介 1、过滤器三部分:过滤源(用户请求)——>过滤规则——>过滤结果 2、过滤器不处理结果,只做辅助性操作 3、定义:过滤器是一个【服务器端】的组件,它可以【截取用户端的请求和响应信息】,并对这些信息过滤 4.案列:登录案例、编码转换案例
    查看全部
  • 1.在web容器启动时依据web.xml实例化 一次 2.初始化 init() 一次 3.过滤 doFilter() 多次 4.销毁 destroy() 一次 web容器关闭
    查看全部
  • 1.请求转发 请求转发是指将请求再转发到另一资源(一般为JSP或Servlet)。此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变 请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应 RequestDispatcher rd = request.getRequestDispatcher(path); rd.forward(request,response); 或request.getRequestDispatcher(path) .forward(request,response); 2.重定向 重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址 重定向是通过HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重新发送一个请求 response.sendRedirect(path); ------------------------------------------------------------------------------ http://jingyan.baidu.com/article/37bce2be71adad1002f3a2c7.html
    查看全部
  • 登录校验 @LoginServlet.java public void doPost() { 1.进行账号和密码的校验 } @LoginFilter.java public void doFilter() { HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; HttpSession session = request.getSession(); String noLoginPaths = config.getInitParameter("noLoginPaths"); if(noLoginPaths!=null){ String[] strArray = noLoginPaths.split(";"); for (int i = 0; i < strArray.length; i++) { if(strArray[i]==null || "".equals(strArray[i]))continue; if(request.getRequestURI().indexOf(strArray[i])!=-1 ){ arg2.doFilter(arg0, arg1); return; } } } if(session.getAttribute("username")!=null){ arg2.doFilter(arg0, arg1); }else{ response.sendRedirect("login.jsp"); } } public void init(FilterConfig arg0) throws ServletException { config = arg0; } @web.xml 在web.xml的Filter中配置Initial Parameters
    查看全部
    3 采集 收起 来源:登录案例

    2018-03-22

  • 过滤器分类 1.使用request过滤器的有:response.sendRedirect()和浏览器直接访问 2.使用forward过滤器的有:request.getRequestDispatcher().forward(request,response)以及forward动作 3.使用include过滤器的有:request.getRequestDispatcher().include(request,response)以及include动作和指令
    查看全部
  • 关于死循环这个问题,就是index跟mian都是同一个过滤器,而过滤器的类别是REQUEST,直接访问触发,然后过滤器里面的doFilter方法里重定向res.sendRedirect(req.getContextPath()+"/main.jsp");,每次重定向到mian.jsp页面它都会调用过滤器然后又执行过滤器里面的重定向方法重定向到mian.jsp,一直重复,这个才是死循环的原因。
    查看全部
  • 关于forward那块讲解的不是很清楚啊
    查看全部
  • <error-page>如果【没有】设置且ERROR过滤器【有】设置,则输出错误地址检测不到且ERROR过滤器也失效;<error-page>如果【有】设置且ERROR过滤器【有】设置,则输出错误地址可检测到且ERROR过滤器生效;<error-page>如果【有】设置且ERROR过滤器【没有】设置,则输出错误地址可检测到但ERROR过滤器不会生效(注意:<location>/error.jsp</location>和<url-pattern>/error.jsp</url-pattern>文件一致,否则也会失效);所以无论如何,<error-page>一定要设置,否则一切都扯淡。 @web.xml <error-page> <error-code>404</error-code>//500 <location>/error.jsp</location> </error-page> <filter> <filter-name>ErrorFilter</filter-name> <filter-class>com.imooc.filter.ErrorFilter</filter-class> </filter> <filter-mapping> <filter-name>ErrorFilter</filter-name> <url-pattern>/error.jsp</url-pattern> <dispatcher>ERROR</dispatcher> </filter-mapping> @error.jsp 您输入的路径有误! @ErrorFilter.java public void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain) throws IOException, ServletException { System.out.println("检测到有错误的信息!"); filterchain.doFilter(servletrequest, servletresponse);//注意:放行 }
    查看全部
  • 关于chain.doFilter(request,response) 他的作用是将请求转发给过滤器链上下一个对象。这里的下一个指的是下一个filter,如果没有filter那就是你请求的资源。 一般filter都是一个链,web.xml 里面配置了几个就有几个。一个一个的连在一起
    查看全部
  • 过滤器继承实现自javax.servlet.Filter这个接口
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
童鞋们,过滤器是Java Web开发的内容。学习前需要掌握Java基础知识、并熟悉JSP和Servlet。如未学习上述知识,可移步网站相关课程。
老师告诉你能学到什么?
通过本课程的学习,你可以了解过滤器的基础知识,并可以自己动手编写过滤器。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!