国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

基于Cookie使用過濾器實現客戶每次訪問只登錄一次

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

相信大家在各大網站都會遇到,登錄時,在登錄框出現下次免登陸/一個月免登陸的類似選項,本文就是講解如何實現,在這記錄一下,也算是做個備忘錄合集,如果文中有錯,歡迎大家指出

為啥說自登陸一次呢,因為當訪問某個頁面時,如果第一次自動登錄失敗時,你下次刷新訪問時還再次走自動登錄流程,就會出現死循環。

本文代碼示例框架為Spring MVC,下面就講解實現該功能的需要掌握哪些知識:cookies與過濾器

1.cookies

何為Cookies:Cookies為 Web 應用程序保存用戶相關信息提供了一種有用的方法。例如,當用戶訪問您的站點時,您可以利用 Cookie 保存用戶首選項或其他信息,這樣,當用戶下次再訪問您的站點時,應用程序就可以檢索以前保存的信息。

我們看一下是如何保存cookies和如何刪除cookies

保存cookies

String newUserName = null;try {  newUserName = URLEncoder.encode(username, "UTF-8");//把用戶名轉碼,防止用戶名是中文,cookies保存中文取出會亂碼} catch (UnsupportedEncodingException e) {  e.printStackTrace();}Cookie nameCookie = new Cookie("username", newUserName);String pwdMd5Cook = MD5Util.MD5(Pwd);Cookie pwdCookie = new Cookie("pwd", pwdMd5Cook);// 保存加密后的密碼nameCookie.setMaxAge(60 * 60 * 24 * 365);// 用戶名保存一年pwdCookie.setMaxAge(60 * 60 * 24 * 30);// 密碼保存30天// 發送Cookie信息到瀏覽器response.addCookie(nameCookie);response.addCookie(pwdCookie);

刪除cookies,刪除很簡單,但值得注意的時,刪除cookies,跟保存cookies一定要在同一個控制層,不然會找不到保存的cookies,導致刪除不了

Cookie cookie = new Cookie("pwd", null);cookie.setMaxAge(0);// 刪除密碼cookieresponse.addCookie(cookie);

2.Filter-過濾器

Filter也稱之為過濾器,它是Servlet技術中最實用的技術,Web開發人員通過Filter技術,對web服務器管理的所有web資源:例如Jsp, Servlet, 靜態圖片文件或靜態 html 文件等進行攔截,從而實現一些特殊的功能。例如實現URL級別的權限訪問控制、過濾敏感詞匯、壓縮響應信息等一些高級功能。

實現方法:繼承Filter接口,并實現其doFilter方法。在web.xml文件中對編寫的filter類進行注冊,并設置它所能攔截的資源

<filter>指定一個過濾器。<filter-name>用于為過濾器指定一個名字,該元素的內容不能為空。<filter-class>元素用于指定過濾器的完整的限定類名。<init-param>元素用于為過濾器指定初始化參數,它的子元素<param-name>指定參數的名字,<param-value>指定參數的值。在過濾器中,可以使用FilterConfig接口對象來訪問初始化參數。<filter-mapping>元素用于設置一個 Filter 所負責攔截的資源。一個Filter攔截的資源可通過兩種方式來指定:Servlet 名稱和資源訪問的請求路徑<filter-name>子元素用于設置filter的注冊名稱。該值必須是在<filter>元素中聲明過的過濾器的名字<url-pattern>設置 filter 所攔截的請求路徑(過濾器關聯的URL樣式)<servlet-name>指定過濾器所攔截的Servlet名稱。<filter>  <filter-name>suicaiFilter</filter-name>  <filter-class>com.suicai.filter.suicaiFilter</filter-class></filter><filter-mapping>  <filter-name>suicaiFilter</filter-name>  <url-pattern>/*</url-pattern></filter-mapping>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵石县| 南昌市| 博客| 万山特区| 嵊州市| 吉木乃县| 桐城市| 丽水市| 浙江省| 周至县| 宁都县| 辽宁省| 东宁县| 清河县| 察隅县| 肇源县| 依安县| 兴隆县| 周宁县| 夏河县| 宿州市| 东丽区| 桃源县| 赤壁市| 家居| 伊吾县| 西充县| 南雄市| 广昌县| 石嘴山市| 桐乡市| 措勤县| 新密市| 辽阳县| 铜鼓县| 库车县| 金坛市| 克东县| 弋阳县| 临湘市| 衡山县|