Web过滤器技术的应用1.检测用户是否登陆2.过滤字符集
2016-03-04 18:13
555 查看
<pre name="code" class="java"><%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="LoginServlet" method="post"> 用户名:<input type="text" name="username" /> 密码:<input type="password" name="password" /> <input type="submit" value="提交" /> </form> </body> </html>
<pre name="code" class="java">package com.sun.filter; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("username:" + username); if("admin".equals(username)&&"admin".equals(password)){ request.getSession().setAttribute("username", username); response.sendRedirect("success.jsp"); }else{ response.sendRedirect("fail.jsp"); } } }
package com.sun.filter; import java.io.IOException; import javax.servlet.DispatcherType; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebFilter(filterName = "LoginFilter", urlPatterns = { "/*" }, dispatcherTypes = { DispatcherType.REQUEST, DispatcherType.ASYNC }, initParams = { @WebInitParam(name = "noFilterPath", value = "login.jsp;fail.jsp;LoginServlet"), @WebInitParam(name = "charset", value = "utf-8") }) public class LoginFilter implements Filter { private FilterConfig config; @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; request.setCharacterEncoding(config.getInitParameter("charset"));//通过初始化参数配置字符集 System.out.println("url:" + request.getRequestURI()); // 在实际项目开发过程中,用户没有登陆,不允许访问的页面有过个,为了避免麻烦的配置urlPatterns, // 可以使用filterConfig来初始化哪些jsp不用过滤,url包含这些jsp的时候直接放行 String noFilterPaths = config.getInitParameter("noFilterPath"); if (noFilterPaths != null) { String[] strArray = noFilterPaths.split(";"); for (int i = 0; i < strArray.length; i++) { if (request.getRequestURI().indexOf(strArray[i]) != -1) { System.out.println(strArray[i] + " 放行"); arg2.doFilter(arg0, arg1);// 放行 return; } } } if (request.getSession().getAttribute("username") != null) { System.out.println("已经登陆放行"); arg2.doFilter(arg0, arg1);// 放行 } else { response.sendRedirect("login.jsp");// 到登陆界面 System.out.println("到登陆界面"); } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub config = arg0; } }
相关文章推荐
- Linux统计某文件夹下文件、文件夹的个数
- 一次编译libmono.so的记录
- Cordova各个插件使用介绍系列(四)—canvas2ImagePlugin保存二维码到手机本地
- php 36进制与10进制转换
- Please verify that your device’s clock is properly set, and that your signing certificate is not exp
- RHEL7 postgreSQL安装
- ijkplayer 整理笔记(1)——下载并编译
- ceph安装时报错RuntimeError: NoSectionError
- java并发编程实践学习(2)--对象的组合
- Android应用开发之使用Socket进行大文件断点上传续传
- myeclipse无法找到JPEGImageEncoder问题
- JQuery_JQuery的attr与prop使用介绍
- SystemClock.sleep和Thread.sleep源码分析
- Xp 下使用 Fiddler 抓取android手机包
- 画三维图像
- 【SoftwareTestingHomework1】--3013218086--
- 如何在Ubuntu上安装visual studio code
- 全局变量
- c++学习
- 关于AdaBoost的一些再思考