-
过滤器链的执行过程查看全部
-
过滤器链执行过程是按照web.xml定义的先后顺序组装的查看全部
-
web.xml中的配置查看全部
-
过滤器的三个方法查看全部
-
过滤器的生命周期查看全部
-
过滤器工作原理查看全部
-
过滤器的概念查看全部
-
过滤器; 1.过滤器三部分‘过滤源(用户请求)---》过滤规则----》过滤结果 2.过滤器不处理结果,制作辅助性的操作 3.定义;过滤器是一个服务器端的组件,他可以截取用户端的请求和响应信息,并对这些信息过滤查看全部
-
过滤器实现对用户统一认证<br><br> 1:创建一个Web项目——创建对应的目录结构,导入对应的依赖<br> 2:创建登录的页面<br> 3:创建一个处理登录的Servlet——处理登录页面的登录请求,比对一下用户输入的用户名和密码是否一致,并作对应的处理<br> 4:部署项目、启动应用、结合浏览器调试、测试,发现通过URL地址就能访问对应的页面,这样是不合适不安全的,所以,就需要过滤器了<br> 5:创建过滤器——统一认证用户是否已经登录,其中经过分析实验,发现不过滤的请求路径还是挺多的,所以,就引出了FilterConfig这个类的使用,统一配置不过滤的请求路径.查看全部
-
当过滤器匹配url为/*时,如何去除不想过滤的页面。这是就得用到FilterConfig类了。首先在web.xml的Filter中配置Initial Parameters,然后在过滤器类里面用FilterConfig类对象的getInitParameter方法获取不需要过滤的页面,然后采用request.getRequestURL().index("xx")去匹配查看全部
-
过滤器的分类web.xml3.0支持异步处理 配置错误提示信息 <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);//注意:放行 }查看全部
-
过滤器链的执行过程查看全部
-
过滤器实际应用场景 过滤器实现对用户统一认证<br><br> 1:创建一个Web项目——创建对应的目录结构,导入对应的依赖<br> 2:创建登录的页面<br> 3:创建一个处理登录的Servlet——处理登录页面的登录请求,比对一下用户输入的用户名和密码是否一致,并作对应的处理<br> 4:部署项目、启动应用、结合浏览器调试、测试,发现通过URL地址就能访问对应的页面,这样是不合适不安全的,所以,就需要过滤器了<br> 5:创建过滤器——统一认证用户是否已经登录,其中经过分析实验,发现不过滤的请求路径还是挺多的,所以,就引出了FilterConfig这个类的使用,统一配置不过滤的请求路径,采用集合的方式也是一样的道理,实际开发中中我就曾经使用过数据的方式来实现<br> 6:继续结合浏览器,进行调试、测试、完善等工作。查看全部
-
@AsyncServlet.java public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Servlet执行开始时间:"+new Date()); AsyncContext context = request.getAsyncContext(); new Thread(new Executor(context)).start(); System.out.println("Servlet执行结束时间:"+new Date()); } public class Executor implements Runnable { private AsyncContext context; public Executor(AsyncContext context) { this.context = context; } public void run() { // 执行相关复杂业务 try { Thread.sleep(1000 * 10); // context.getRequest(); // context.getResponse(); System.out.println("业务执行完成时间:" + new Date()); } catch (InterruptedException e) { e.printStackTrace(); } } } @输出结果: Start——AsyncFilter Servlet执行开始时间:Sat Mar 12 15:40:26 CST 2016 Servlet执行结束时间:Sat Mar 12 15:40:26 CST 2016 End——AsyncFilter 业务执行完成时间:Sat Mar 12 15:40:36 CST 2016查看全部
-
控制台的输出信息说明请求是按照start > index.jsp > end的顺序,也就是在请求阶段过滤器介入。如果要是在响应阶段过滤器介入,输出的信息就是:index.jsp, start, end了。查看全部
举报
0/150
提交
取消