亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

javaweb設計中filter粗粒度權限控制代碼示例

2024-07-13 10:12:55
字體:
來源:轉載
供稿:網友

1 說明

我們給出三個頁面:index.jsp、user.jsp、admin.jsp。

index.jsp:誰都可以訪問,沒有限制;

user.jsp:只有登錄用戶才能訪問;

admin.jsp:只有管理員才能訪問。

2 分析

設計User類:username、password、grade,其中grade表示用戶等級,1表示普通用戶,2表示管理員用戶。

當用戶登錄成功后,把user保存到session中。

創建LoginFilter,它有兩種過濾方式:

如果訪問的是user.jsp,查看session中是否存在user;
如果訪問的是admin.jsp,查看session中是否存在user,并且user的grade等于2。

3 代碼

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet>  <servlet-name>LoginServlet</servlet-name>  <servlet-class>com.cug.web.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping>  <servlet-name>LoginServlet</servlet-name>  <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list>  <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter>  <filter-name>UserFilter</filter-name>  <filter-class>com.cug.filter.UserFilter</filter-class> </filter> <filter-mapping>  <filter-name>UserFilter</filter-name>  <url-pattern>/user/*</url-pattern> </filter-mapping> <filter>  <filter-name>AdminFilter</filter-name>  <filter-class>com.cug.filter.AdminFilter</filter-class> </filter> <filter-mapping>  <filter-name>AdminFilter</filter-name>  <url-pattern>/admin/*</url-pattern> </filter-mapping> </web-app> 

LoginServlet.java

package com.cug.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.cug.domain.User;import com.cug.web.service.UserService;public class LoginServlet extends HttpServlet{	@Override 	 protected void doPost(HttpServletRequest req, HttpServletResponse resp) 	   throws ServletException, IOException {		req.setCharacterEncoding("utf-8");		resp.setContentType("text/html;charset=utf-8");		String username = req.getParameter("username");		String password = req.getParameter("password");		User user = UserService.login(username, password);		if(user == null){			req.setAttribute("msg", "用戶名或者密碼錯誤");			req.getRequestDispatcher("/login.jsp").forward(req, resp);		} else{			req.getSession().setAttribute("user", user);			req.getRequestDispatcher("index.jsp").forward(req,resp);		}	}}

UserService

package com.cug.web.service;import java.util.HashMap;import java.util.Map;import com.cug.domain.User;public class UserService {	private static Map<String, User> users = new HashMap<String, User>();	static{		users.put("zhu", new User("zhu", "123", 2));		users.put("xiao", new User("xiao", "123", 1));	}	public static User login(String username, String password){		User user = users.get(username);		if(user == null) 		   return null;		if(!user.getPassword().equals(password)) 		   return null;		return user;	}}

AdminFilter

package com.cug.filter;import java.io.IOException;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.http.HttpServletRequest;import com.cug.domain.User;public class AdminFilter implements Filter{	@Override 	 public void destroy() {	}	@Override 	 public void doFilter(ServletRequest req, ServletResponse resp, 	   FilterChain chain) throws IOException, ServletException {		req.setCharacterEncoding("utf-8");		resp.setContentType("text/html;charset=utf-8");		HttpServletRequest request = (HttpServletRequest)req;		User user = (User)request.getSession().getAttribute("user");		if(user == null){			resp.getWriter().print("用戶還沒有登陸");			request.getRequestDispatcher("/login.jsp").forward(req, resp);		}		if(user.getGrade() < 2){			resp.getWriter().print("您的等級不夠");			return;		}		chain.doFilter(req, resp);	}	@Override 	 public void init(FilterConfig arg0) throws ServletException {	}}

UserFilter

package com.cug.filter;import java.io.IOException;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.http.HttpServletRequest;import com.cug.domain.User;public class UserFilter implements Filter{	@Override 	 public void destroy() {	}	@Override 	 public void doFilter(ServletRequest request, ServletResponse response, 	   FilterChain chain) throws IOException, ServletException {		request.setCharacterEncoding("utf-8");		response.setContentType("text/html;charset=utf-8");		HttpServletRequest httpReq = (HttpServletRequest)request;		User user = (User)httpReq.getSession().getAttribute("user");		if(user == null){			request.getRequestDispatcher("/login.jsp").forward(request, response);		}		chain.doFilter(request, response);	}	@Override 	 public void init(FilterConfig filterConfig) throws ServletException {	}}

User

package com.cug.domain;public class User {	private String username;	private String password;	private int grade;	public User() {		super();	}	public User(String username, String password, int grade) {		super();		this.username = username;		this.password = password;		this.grade = grade;	}	public String getUsername() {		return username;	}	public void setUsername(String username) {		this.username = username;	}	public String getPassword() {		return password;	}	public void setPassword(String password) {		this.password = password;	}	public int getGrade() {		return grade;	}	public void setGrade(int grade) {		this.grade = grade;	}	@Override 	 public String toString() {		return "User [username=" + username + ", password=" + password 		    + ", grade=" + grade + "]";	}}

html

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>My JSP 'admin.jsp' starting page</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <!--  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  -->  </head>  <body>  <h1>admin.jsp</h1>  <h3>${user.username }</h3>  <a href="<c:url value='/index.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >首頁</a><br/>  <a href="<c:url value='/user/user.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >用戶頁</a><br/>  <a href="<c:url value='/admin/admin.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >系統管理員</a><br/>  </body> </html> 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>My JSP 'user.jsp' starting page</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <!--  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  -->  </head>  <body>  <h1>user.jsp</h1>  <h3>${user.username }</h3>  <a href="<c:url value='/index.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >首頁</a><br>  <a href="<c:url value='/user/user.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >用戶登陸界面</a><br>  <a href="<c:url value='/admin/admin.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >管理員登陸界面</a><br>  </body> </html> 

用戶登錄

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>My JSP 'login.jsp' starting page</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <!--  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  -->  </head>  <body>  ${msg }  <form action="<c:url value='/LoginServlet'/>" method="post">   用戶名:<input type="text" name="username"/><br/>   密碼:<input type="password" name="password"/><br/>   <input type="submit" value="登陸"/>  </form>  </body> </html> 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>My JSP 'index.jsp' starting page</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <!--  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  -->  </head>  <body>  <h1>index.jsp</h1>  <h3>${user.username }</h3>  <a href="<c:url value='/index.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >首頁</a><br>  <a href="<c:url value='/user/user.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >用戶登陸界面</a><br>  <a href="<c:url value='/admin/admin.jsp'/>" rel="external nofollow" rel="external nofollow" rel="external nofollow" >管理員登陸界面</a><br>  </body> </html> 

 

總結

以上就是本文關于javaweb設計中filter粗粒度權限控制代碼示例的全部內容,希望對大家有所幫助,如有不足之處,歡迎留言指正。感謝大家對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色悠久久久久综合先锋影音下载| 国产+成+人+亚洲欧洲| 欧美日韩国产在线播放| 91在线中文字幕| 中文字幕亚洲精品| 欧美日韩中国免费专区在线看| 成人写真福利网| 97欧美精品一区二区三区| 一区二区欧美日韩视频| 亚洲国产精品人人爽夜夜爽| 国产精品白丝jk喷水视频一区| 久久亚洲精品毛片| 久久久精品久久久久| 日本精品视频网站| 91精品视频在线看| 欧美黑人xxxx| 日韩精品中文字幕久久臀| 久久久www成人免费精品张筱雨| 亚洲欧洲xxxx| 久久国产精品影片| 亚洲欧美日韩精品久久| 欧美成人三级视频网站| 日本亚洲欧洲色| 亚洲最大福利视频网站| 欧美日韩视频在线| 日本久久精品视频| 欧美极品少妇xxxxx| 亚洲成人久久久| 日韩在线观看成人| xxxxxxxxx欧美| 国产69精品久久久久9999| 欧美巨大黑人极品精男| 91精品综合久久久久久五月天| 国产69精品久久久久99| 亚洲丁香婷深爱综合| 2021久久精品国产99国产精品| 超碰91人人草人人干| 午夜免费在线观看精品视频| 国产欧亚日韩视频| 8090成年在线看片午夜| 中文字幕少妇一区二区三区| 精品爽片免费看久久| 激情懂色av一区av二区av| 成人免费淫片视频软件| 一区二区欧美久久| 欧美大全免费观看电视剧大泉洋| 欧美在线一级va免费观看| 成人精品福利视频| 欧美成人午夜激情在线| 中文字幕久热精品在线视频| 久久国产精品首页| 高清欧美性猛交xxxx| 一区二区三区黄色| 欧美在线www| 日本一区二区在线免费播放| 久久久免费av| 日韩人在线观看| 久久免费视频观看| 久久欧美在线电影| 日韩精品久久久久久福利| 欧美在线观看网站| 黑人巨大精品欧美一区二区| 亚洲专区中文字幕| 日韩在线免费视频观看| 国产亚洲激情在线| 成人精品久久一区二区三区| 欧美日韩一区二区精品| 欧美日韩亚洲国产一区| 久久久久久亚洲精品中文字幕| 欧美最顶级丰满的aⅴ艳星| 久久九九国产精品怡红院| 国产欧美日韩中文| 日本精品视频在线播放| 97在线免费视频| 久久久久久久久久久久久久久久久久av| 2020欧美日韩在线视频| 亚洲视频在线观看网站| www国产亚洲精品久久网站| 国产高清视频一区三区| 中文.日本.精品| 欧美在线精品免播放器视频| 亚洲欧美综合另类中字| 黄色一区二区在线观看| 亚洲香蕉成人av网站在线观看| 91产国在线观看动作片喷水| 91在线观看免费高清| 日韩中文在线中文网在线观看| 4438全国亚洲精品在线观看视频| 日本久久久久久久久久久| 中文字幕欧美日韩在线| 欧美日韩不卡合集视频| 日韩精品在线免费观看视频| 日韩精品福利在线| 国产精品视频白浆免费视频| 亚洲欧美精品伊人久久| 欧美成人黄色小视频| 欧美亚洲一级片| 日韩欧美在线视频免费观看| 欧美性受xxxx白人性爽| 亚洲精品久久久久久久久久久久| 一区二区成人精品| 日韩电影中文字幕一区| 国产亚洲精品美女久久久久| 伊人久久五月天| 亚洲成人av片| 国产精品久久久一区| 91探花福利精品国产自产在线| 欧美性猛交xxxx富婆| 一区二区三区美女xx视频| 在线观看日韩视频| 欧美电影免费观看高清完整| 欧美人与性动交a欧美精品| 国产美女直播视频一区| 亚洲美女av黄| 国产欧美亚洲视频| 国产精品久久久久久久久借妻| 成人激情在线播放| 激情av一区二区| 亚洲综合中文字幕在线| 亚州国产精品久久久| 欧美日韩中文字幕综合视频| 亚洲最大福利网站| 正在播放欧美视频| 在线不卡国产精品| 伊人亚洲福利一区二区三区| 国产日韩av在线播放| 国产精品对白刺激| 久久夜色撩人精品| 7777精品久久久久久| 久久久久国产视频| 欧美专区在线视频| 日本久久久久亚洲中字幕| 日韩精品在线免费观看| 亚洲欧美精品在线| 精品久久久久久中文字幕| 日韩欧美黄色动漫| 色偷偷av一区二区三区| 国产午夜精品一区理论片飘花| 国产精品美女主播| 亚洲性av网站| 日韩视频免费在线| 久热国产精品视频| 国产不卡av在线| 国产精品久久久久久久久男| 精品久久久久久中文字幕大豆网| 91精品国产综合久久香蕉922| 欧美体内谢she精2性欧美| 亚洲伊人一本大道中文字幕| 在线观看中文字幕亚洲| 亚洲欧美国产精品久久久久久久| 亚洲美女在线观看| 国产日韩欧美在线视频观看| 欧美裸体xxxx极品少妇软件| 国语自产精品视频在线看一大j8| 成人激情电影一区二区| 亚洲第一页在线| 国产成人97精品免费看片| 精品成人av一区| 亚洲小视频在线观看| 日韩在线小视频| 欧美猛男性生活免费| 55夜色66夜色国产精品视频| 久久久久久久国产精品视频| 色偷偷av一区二区三区|