Servlet 过滤器
来源:互联网 发布:mac pdf 导出图片 编辑:程序博客网 时间:2024/05/27 09:44
Servlet 过滤器
作用:把某些信息过滤掉1、滤器可以做什么? (1) 对请求进行统一编码---》乱码处理功能 (2) 对请求进行认证---》强制登录 (3)过滤非法字符---》非法字段2、实现方式 一、实现 Filter 接口
案例1:过滤乱码//重写doFilter方法 @Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest) arg0;//转为HttpServletRequest HttpServletResponse response=(HttpServletResponse) arg1;//转为HttpServletResponse request.setCharacterEncoding("utf-8");//请求编码 response.setCharacterEncoding("utf-8");//响应编码 response.setContentType("text/html;charset=utf-8");//设置响应编码类型 arg2.doFilter(request, response);//条件成立则放行}Servlet容器将先调用过滤器的doFilter方法。FilterChain用户访问后续过滤器。二、配置web.xml<!-- 配置过滤器 --><filter> <filter-name>q1</filter-name> <filter-class>com.xdl.filter.FilterEncoding </filter-class></filter><filter-mapping> <filter-name>q1</filter-name> <url-pattern>/*</url-pattern></filter-mapping>三、案例2:过滤非法字符@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest) arg0; HttpServletResponse response=(HttpServletResponse) arg1; String jl = request.getParameter("jl");//取 :简历中的内容// if(jl!=null&&(jl.contains("小日本")||jl.contains("坏蛋"))){// response.sendRedirect("filter.jsp");// }else{// arg2.doFilter(request, response);//放行// } PersonDaoImpl db=new PersonDaoImpl();//实例化数据库 List<String> findSpeak = db.findSpeak();//找出扎有表中speka字段的信息 boolean flag=false; for(String ss:findSpeak){ if(jl.contains(ss)){//找到此信息,则为非法,然后就把flag设置为 true flag=true; } } if(jl!=null&&flag){ System.out.println("重点关注此人:"+request.getRemoteAddr()); response.sendRedirect("filter.jsp"); }else{ arg2.doFilter(request, response);//放行 }}web.xml配置<filter> <filter-name>q2</filter-name> <filter-class>com.xdl.filter.FilterSpeak</filter-class></filter><filter-mapping> <filter-name>q2</filter-name> <url-pattern>/SaveServlet</url-pattern></filter-mapping>
四、案例3:强制登录 //@WebFilter("/ListServlet")也可以通过全注解方式实现过滤器,只过滤ListServlet 如果用/*则全过滤 ,此时web.xml不用配置 @Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest) arg0; HttpServletResponse response=(HttpServletResponse) arg1; HttpSession session = request.getSession(); String username = (String) session.getAttribute("usename"); if(username==null){ response.sendRedirect(request.getContextPath()+"/index.jsp");//去登录 }else{ arg2.doFilter(request, response);//通过后,放行 }}
监听器
Servlet监听器也叫做 listener,通过它可以监听Web应用的上下文(环境)信息、Servlet请求信息、Servlet会话信息,并自动根据不同情况,在后台调用相 应的处理程序。通过监听器,可以自动激发一些操作public class Listener1 implements HttpSessionListener, ServletContextListener, ServletRequestListener { ......}//配置 web.xml; <listener> <listener-class>com.xdl.listener.Listener1</listener-class> </listener>
Md5加密
一、作用:MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆,即安全性较高,目前情况下md5128位加密认为是不可解的123+12--》135 加密码 ,解密-->135-12>123 就是将来可能会到rsa加密码算法,分为 公有密钥和私有密钥二、开发实现 1、只需从百度找一个md5的文件即可:MD5Utils 2、开发注册功能 public void saveUser(User uu) { String sql = "insert into stu values(stu_seq.nextval,?,?)"; // 把密码进行md5加密 executeUpdate( sql, new Object[] { uu.getName(), MD5Utils.MD5Src(uu.getPassword()) });}3、开发登录功能public boolean loginUser(User uu) { String sql = "select * from stu where name=? and password=?";// 由用户和密码作条件 ResultSet rs = executeQuery( sql, new Object[] { uu.getName(), MD5Utils.MD5Src(uu.getPassword()) }); try { if (rs.next()) { // 如果找到了 return true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false;}
阅读全文
0 0
- servlet 过滤器
- Servlet 过滤器
- servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet 过滤器
- 一起Talk Android吧(第四十九回:Android中的Fragment交互)
- Linux内核中实现保留内存的方法
- TCP与UDP的区别(转)
- http://www.cnblogs.com/breezedeus/archive/2012/04/10/2440488.html
- caffe FCN Ubuntu16.0
- Servlet 过滤器
- LUOGU P2058 海港题解(附代码)
- 【实战】(二)android模拟qq登录(apache的httpClient发送get和post请求)
- Cohen's kappa coefficient
- N-Queens
- 微服务:Eureka+Zuul+Ribbon+Feign+Hystrix构建微服务架构
- 零点高级PS教程 第3期案实战例教程48节 价值1999元
- xsl笔记1
- 关于Coursera视频不能播放问题