-
@webfilter的常用属性
查看全部 -
过滤器分类
查看全部 -
过滤器的分类
查看全部 -
过滤器链执行过程
查看全部 -
过滤器important!
查看全部 -
filter的web.xml的配置
查看全部 -
过滤器的生命周期. 1.实例化阶段-->一启动服务器就会从Web容器的web.xml文件中自动去加载实例化过滤器.且只会实例化一次.即生成了过滤器. 2.初始化阶段-->生成过滤器之后便是初始化,加载一些初始化信息.调用init()方法.且只执行一次. 3.过滤阶段-->执行过滤器的doFilter()方法进行过滤.执行n次的,凡是过滤器捕获到用户的请求,都会执行这个过滤方法. 4.销毁阶段-->当Web容器关闭即服务器关闭的时候,便执行destroy()方法销毁.
查看全部 -
1.什么是过滤器?<br>
过滤器是web服务器端的一个组件,可以截获用户的请求和web资源的响应,对请求和响应进行过滤
2.过滤器的工作原理?<br>
原理:用户发送请求到过滤器,过滤器将用户请求发送到web资源,web资源将响应发送到过滤器,过滤器将响应发送给用户
3.过滤器的工作周期
a.在web容器启动的时候实例化,调用初始化方法,每次有请求响应过来调用doFilter()方法,服务器容器关闭的时候调用销毁方法。查看全部 -
JAVA过滤机制——过滤简介 1、过滤器三部分:过滤源(用户请求)——>过滤规则——>过滤结果 2、过滤器不处理结果,只做辅助性操作 3、定义:过滤器是一个【服务器端】的组件,它可以【截取用户端的请求和响应信息】,并对这些信息过滤
查看全部 -
@web.xml <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> @LoginFilter.java String charset=config.getInitParameter("charset"); if(charset==null){//如果不设置,默认UTF-8 charset="UTF-8"; } request.setCharacterEncoding(charset);
查看全部 -
登录校验 @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
在免过滤名单中加上fail.jsp 可解决输入错误后不跳转到fail.jsp界面的问题,但是带来新的问题 直接访问fail.jsp时不能转到登录页面。 解决方法:删掉免过滤名单上的fail.jsp ,在LoginServlet中将重定向换成转发,用request.getRequestDispatcher("/fail.jsp").forward(request, response);来代替response.sendRedirect("/fail.jsp");
查看全部 -
根据过滤器的规则,过滤器得等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的地址必须相同查看全部 -
觉得注解真的很头疼。。。各种注解
查看全部 -
过滤器分类。。。
查看全部 -
这个老师。。。思维跳了。。。好几次。。。
查看全部
举报