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

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

难度初级
时长 1小时40分
学习人数
综合评分9.53
339人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.3 逻辑清晰
  • 【过滤器链的执行顺序】需要过滤的地方无外乎访问资源前和访问资源后,就好比你去到访一个地方,进门前“安防”会检测你身上有没有带危险品,出去时可能会检测你有没有偷拿东西。这里的安防人员充当的就好比“过滤器”的角色。进门时和出去时的安防人员可以是同一拨人员,也可以是另外一拨人员。(这要看实际情况,如果考虑到同时有人员进和出,那么安防人员当然没法“分身”,那肯定得两拨不同的人员)。其实代码是人定义的,那么 如图所示/JAVA定义 的过滤器链执行机制也是人定义的。按照 如图所示 的过滤器执行机制,那么更像是:某个地方(Web资源)出入口为同一个,只需要同一个(一个过滤器)/拨(多种类型安检,好比过滤器链)安防人员,这一个/拨安防人员可能只在进门时做检查而出门时不做检查或者出门时只有部分安检人员会再做检查。那么既然是人定义的“过滤执行机制”就可以有多种实现可以,这个只是一种实现可能。思想不要局限!
    查看全部
  • @WebFilter的常用属性
    查看全部
  • 登录验证过滤器: 过滤规则:通过检查session中是否有用户信息来判断是否已经登录,登录则放行,未登录则重定向到登录页 过滤的路径: 1.简单的将要过滤的路径添加到配置文件中过(但经常会很多不推荐) 2.使用/*过滤所有,此时有一些不应过滤的路径(比如登录页本身),只能在doFilter中判断并放行.一种好的方式是:将不过滤的路径通过init-param提交,在doFilter通过循环来判断,这样只需要将不过滤的路径加到配置文件中即可 此外这一节演示了设置和读取init-param的方法
    查看全部
    2 采集 收起 来源:登录案例

    2017-09-29

  • 在web.xml中配置 <filter> <filter-name>LoginFilter</filter-name> <filter-class>com.filter.LoginFilter</filter-class> <!-- 指定部分页面,在代码中实现对这些页面放行 --> <init-param> <param-name>noLoginPaths</param-name> <param-value>index.jsp;login.jsp;LoginServlet;fail.jsp</param-value> </init-param> <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> </filter> 在Filter中 public void init(FilterConfig arg0) throws ServletException { config = arg0; // 将实例化时的init-param存入config } String charset = config.getInitParameter("charset"); // 从config中获得字符集 if(charset==null){ charset = "UTF-8"; } request.setCharacterEncoding(charset); // 设定字符集为UTF-8 String noLoginPaths = config.getInitParameter("noLoginPaths"); // 从config中获取init-param if(noLoginPaths!=null){ String[] strArr = noLoginPaths.split(";"); // 将字符串分割为一个页面的地址为一个元素 for (int i = 0; i < strArr.length; i++) {
    查看全部
    2 采集 收起 来源:编码转换案例

    2018-03-22

  • 过滤器链的执行过程: 用户请求 -> 依次执行过滤器的放行前方法 -> web资源 -> 依次执行过滤的放行后方法
    查看全部
  • 为什么sendRedirect会陷入死循环,而getRequestDispatcher.forward不会? 因为前者是使用的过滤器类型是request,访问index.jsp页面时,触发过滤器,重定向到main.jsp,由于过滤器类型是request,所以会继续触发main.jsp的过滤器,所以会陷入死循环。 后者在访问index.jsp的时候,过滤器类型是request,所以会触发过滤器,然后利用转发的方式访问main.jsp,这时候过滤器的类型是forward,而此时web.xml中定义的匹配main的过滤器类型还是request,所以不执行main所匹配的过滤器,因此只执行一次。
    查看全部
  • 过滤器配置的另一种方法: 1.Web.xml文件中配置 2.@webFilter(filterName="AsynFilter",value={"/index.jsp"},dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC})
    查看全部
  • 总结: 过滤器的生命周期: 实例化(web.xml)--〉初始化(init())--〉过滤(doFilter())--〉销毁(destory()) 1.过滤器的概念: 过滤器是一个服务器端的组件,它可以截取用户端的请求与响应信息,并对这些信息过滤。 1.概念:过滤器是一个服务器上的组件,它可以截取用户端的请求和相应信息,并对其过滤 2.工作原理: 用户请求--〉过滤器将用户请求发送至Web资源--〉web资源--〉web响应发送至过滤器--〉过滤器--〉过滤器将web的响应返回给用户 3.过滤器的生命周期: 实例化(web.xml)--〉初始化(init())--〉过滤(doFilter())--〉销毁(destory()) 4.过滤器的API: init()、doFilter()、destory() 5.多个过滤器(过滤器链) 6.过滤器分类 7.过滤器实例:登录过滤器和编码过滤器 服务器会按照web.xml中过滤器定义的先后顺序组装成一条链
    查看全部
    2 采集 收起 来源:总结

    2016-11-05

  • 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); 我来说一下为什么sendRedirect会陷入死循环,而getRequestDispatcher.forward不会。 因为前者是使用的过滤器类型是request,访问index.jsp页面时,触发过滤器,重定向到main.jsp,由于过滤器类型是request,所以会继续触发main.jsp的过滤器,所以会陷入死循环。 后者在访问index.jsp的时候,过滤器类型是request,所以会触发过滤器,然后利用转发的方式访问main.jsp,这时候过滤器的类型是forward,而此时web.xml中定义的匹配main的过滤器类型还是request,所以不执行main所匹配的过滤器,因此只执行一次
    查看全部
  • 为什么sendRedirect会陷入死循环,而getRequestDispatcher.forward不会。 因为前者是使用的过滤器类型是request,访问index.jsp页面时,触发过滤器,重定向到main.jsp,由于过滤器类型是request,所以会继续触发main.jsp的过滤器,所以会陷入死循环。 后者在访问index.jsp的时候,过滤器类型是request,所以会触发过滤器,然后利用转发的方式访问main.jsp,这时候过滤器的类型是forward,而此时web.xml中定义的匹配main的过滤器类型还是request,所以不执行main所匹配的过滤器,因此只执行一次。
    查看全部
  • 过滤器的生命周期: 实例化(web.xml)--〉初始化(init())--〉过滤(doFilter())--〉销毁(destory())
    查看全部
    1 采集 收起 来源:总结

    2014-12-11

  • @JAVA过滤机制——过滤简介 1、过滤器三部分:过滤源(用户请求)——>过滤规则——>过滤结果 2、过滤器不处理结果,只做辅助性操作 3、定义:过滤器是一个【服务器端】的组件,它可以【截取用户端的请求和响应信息】,并对这些信息过滤 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 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); forward转发 :一次请求一次回应 服务器跳转 sendredirect重定向: 两次请求两次回应 客户端跳转 由于sendredirect是request,会激活REQUEST类型的过滤器,因此要注意,是否会形成重定向循环 request 过滤request请求 forward 过滤重定向请求 include 过滤include请求
    查看全部
  • 过滤器是一个服务器端的组件,它可以截取用户端的请求与响应信息, 并对这些信息过滤
    查看全部
  • 不错
    查看全部

举报

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

微信扫码,参与3人拼团

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

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