javaweb之过滤器监听器
来源:互联网 发布:数据分析招聘网 编辑:程序博客网 时间:2024/05/16 09:22
1、会话控制
1.1. Cookie
使用浏览器的技术来保存信息,保存的信息是Key-Value的方式。
常用于:
购物车场景
记住我
使用方式:
1、添加信息到cookie Cookie cookie = new Cookie("key", value); //设置失效时间 cookie.setMaxAge(3600); //设置路径 cookie.setPath(req.getContextPath()+"/"); //添加cookie response.addCookie(cookie);2、从cookie获取数据 String userName=""; String passwd = ""; Cookie[] cookies = request.getCookies(); for(Cookie cookie:cookies){ if("name".equals(cookie.getName())){ userName = URLDecoder.decode(cookie.getValue()); } if("password".equals(cookie.getName())){ passwd = cookie.getValue(); } }
1.2. Session
session是个域对象,能够保存数据让session共享
常用于:
验证码
保存登录用户信息
使用方式:
例如验证码1、在登录页面展示验证码的时候,就将验证码放到session里面 session.AddAttribute("validateCode",validateCode);2、在登录的servlet里面,获取用户输入的验证码和从session里面获取的验证码进行比较 //获取Session HttpSession session = req.getSession(); //从session里获取验证码 String vCode = (String)session.getAttribute("validateCode"); //从页面获取验证码 String validateCode = req.getParameter("validateCode"); if(!validateCode.equalsIgnoreCase(vCode)){ String msg = "验证码输入有误!"; req.setAttribute("error", msg); req.getRequestDispatcher("login/login.jsp").forward(req, resp); } else{ //去判断用户名和密码... }
2、过滤器
能够过滤客户端和服务端的所有请求
常用于:
统一请求编码
验证用户是否登录
过滤敏感词
过滤器的特点:
1、注意放行
2、可以有多个过滤器,执行顺序是按照web.xml配置的顺序
使用方式:
1、实现Filter接口 public class EncodingFilter implements Filter{ @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filter) throws IOException, ServletException { System.out.println("编码过滤器...."); request.setCharacterEncoding("utf-8"); //放行 filter.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { } }2、在web.xml配置过滤器 <filter> <filter-name>encodingFilter</filter-name> <filter-class>usermng.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注意:过滤器有两种过滤方式:
1、使用地址或者通配符,例如/*2、过滤指定的servletName,需要在filter-mapping配置 <filter-mapping> <filter-name>checkLoginFilter</filter-name> <servlet-name>userServlet</servlet-name> <!-- <url-pattern>/user</url-pattern> --> </filter-mapping>
3、监听器
能够监听web应用上的事件(ServletContext,ServletReqeust,HttpSession)
使用方式:
1、实现对应的接口 public class TestServletRequestAttributeListener implements ServletRequestAttributeListener{ @Override public void attributeAdded(ServletRequestAttributeEvent srae) { System.out.println("request域中添加一个属性"+srae.getName()+"="+srae.getValue()); } @Override public void attributeRemoved(ServletRequestAttributeEvent srae) { System.out.println("request域中移除一个属性"+srae.getName()+"="+srae.getValue()); } @Override public void attributeReplaced(ServletRequestAttributeEvent srae) { System.out.println("request域中一个属性被修改了"+srae.getName()+"="+srae.getValue()); } }2、在web.xml配置 <listener> <listener-class>listener.TestServletRequestAttributeListener</listener-class> </listener>3、测试 在任何页面设置或删除属性: request.setAttribute("userName", "在嘎嘎比萨"); 访问该页面,控制台就会输出你变动的属性内容
阅读全文
0 0
- javaweb之过滤器监听器
- JavaWeb过滤器、监听器详解
- JavaWeb监听器、过滤器、
- javaweb过滤器及监听器
- JavaWeb学习篇之----Servlet过滤器Filter和监听器
- JavaWeb学习篇之----Servlet过滤器Filter和监听器
- JavaWeb学习篇之----Servlet过滤器Filter和监听器
- javaweb的监听器和过滤器
- javaweb 过滤器和监听器总结
- JavaWeb中的监听器和过滤器
- javaWeb之监听器简介
- javaweb之监听器详解
- JavaWeb之Listener监听器
- JavaWeb过滤器.监听器.拦截器-原理&区别
- JavaWeb——过滤器及监听器
- JavaWeb中监听器+过滤器+拦截器区别
- javaweb之过滤器
- JavaWeb之Java过滤器
- Java学习-简单爬虫系统
- PHP类和对象
- Dynamic Programming Solution to Activity Selection Problem
- javaweb 之 jsp
- 工作中遇到的一些前端问题
- javaweb之过滤器监听器
- java 基本类型和常量
- Codeforces Round #432 (Div. 2) D 850B Arpa and a list of numbers(gcd 枚举)
- 学生管理系统 c语言
- Effective C++ rule 21.尽量不要返回reference.
- 考研英语
- 看源码,加深理解---(零)String#equals(Object)
- MySQL 5.7 免安装版配置
- ConcurrentHashMap总结