![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>登录页面</title> 7 <meta http-equiv="pragma" content="no-cache"> 8 <meta http-equiv="cache-control" content="no-cache"> 9 <meta http-equiv="expires" content="0"> 10 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 11 <meta http-equiv="description" content="This is my page"> 12 </head> 13 <body> 14 <form action="forward.jsp" method="post" name="form1"> 15 用户名: 16 <input type="text" name="username" /> 17 密 码: 18 <input type="password" name="userpwd" /> 19 <input type="submit" name="loginBtn" value="登录" /> 20 </form> 21 </body> 22 </html>
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>登录成功</title> 7 <meta http-equiv="pragma" content="no-cache"> 8 <meta http-equiv="cache-control" content="no-cache"> 9 <meta http-equiv="expires" content="0"> 10 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 11 <meta http-equiv="description" content="This is my page"> 12 </head> 13 <body> 14 <% 15 String name = request.getParameter("username"); 16 String pwd = request.getParameter("userpwd"); 17 out.print("你的用户名:" + name + ",密码:" + pwd); 18 if (null != name && name.equals("scott")) { 19 session.setAttribute("isLogin", "true"); 20 out.print("<br>恭喜你,被正确授权"); 21 } else { 22 out.print("<br>对不起,未被授权"); 23 } 24 %> 25 <br /> 26 <a href="security/show.jsp">只有被正确授权才可以,进入查看页面</a> 27 </body> 28 </html>
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 package com.obtk.filter; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest; 10 import javax.servlet.ServletResponse; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 import javax.servlet.http.HttpSession; 14 15 /** 16 * 用户访问鉴权过滤器 17 * 18 * @author Administrator 19 */ 20 public class SignonFilter implements Filter { 21 String LOGIN_PAGE = "login.jsp"; // 登录页面地址,用于鉴于失败,而重定向到该页面 22 protected FilterConfig filterConfig; 23 24 /** 25 * @初始化过滤器,和servlet一样,也可以获取都参数 26 * */ 27 public void init(FilterConfig config) throws ServletException { 28 this.filterConfig = config; 29 } 30 31 // 过滤处理的方法 32 public void doFilter(ServletRequest sRequest, ServletResponse sResponse, 33 FilterChain fChain) throws IOException, ServletException { 34 // 把父类转换为子类类型, 35 HttpServletRequest request = (HttpServletRequest) sRequest; 36 HttpServletResponse response = (HttpServletResponse) sResponse; 37 HttpSession session = request.getSession(); 38 String isLogin = ""; 39 try { 40 isLogin = (String) session.getAttribute("isLogin"); 41 // 取出会话的值,然后移除,避免回话的值一直调用 42 session.removeAttribute("isLogin"); 43 // 获得请求的地址 44 String requestURI = request.getRequestURI(); 45 if (null != isLogin && isLogin.equals("true") 46 || requestURI.endsWith("ogin.jsp")) { 47 System.out.println("在signonFilte中验证通过"); 48 // 验证成功继续处理。 49 fChain.doFilter(sRequest, sResponse); 50 } else { 51 // 获取到工程名字,在转到登录页面 52 response.sendRedirect(request.getContextPath() + "/" 53 + LOGIN_PAGE); 54 55 System.out.println("被SignonFilter拦截一个未认证的请求"); 56 } 57 } catch (Exception e) { 58 System.out.println("错误信息:" + e.getMessage()); 59 } 60 61 } 62 63 // 摧毁过滤器 64 public void destroy() { 65 this.filterConfig = null; 66 } 67 68 }
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 6 <filter> 7 <filter-name>auth</filter-name> 8 <filter-class>com.obtk.filter.SignonFilter</filter-class> 9 </filter> 10 11 <filter-mapping> 12 <filter-name>auth</filter-name> 13 <url-pattern>/security/*</url-pattern> 14 </filter-mapping> 15 </web-app>
struts2框架的开始。 218786602QQ群,欢迎大家一起讨论。