1.首先是用戶名,密碼的input 和保存狀態的checkbox
- <input class="ipt" type="text" name='username' value='${name}'/>
- <input class="ipt" type='password' name='password' id='password' />
- <input style=" margin-left:60px; margin-right:10px; " type="checkbox" name="rememberMe" id="rememberMe" />
沒找到怎么保存checkbox的狀態,我就自己寫了個
- <script>
- window.onload = function() {
- if ('${name}' != '') {
- document.getElementById('rememberMe').checked = true;
- } else {
- document.getElementById('rememberMe').checked = false;
- }
- }
- </script>
2.然后在jsp頂部加入java代碼,用於讀取cookie
- <%
- String name = "";
- String psw = "";
- String checked = "";
- Cookie[] cookies = request.getCookies();
- if(cookies != null && cookies.length>0){
- for(int i =0; i<cookies.length; i++){
- if(cookies[i].getName().equals("name")){
- name=cookies[i].getValue();
- request.setAttribute("name",name);
- }
- if(cookies[i].getName().equals("psw")){
- psw=cookies[i].getValue();
- request.setAttribute("psw",psw);
- }
- }
- }
- %>
3.其次,在登陸到后台驗證完畢密碼后面加入
- //處理Cookie
- addCookie(username , pwd ,response ,request);
下面是addCookie這個方法
- /**Cookie的實現
- * @throws UnsupportedEncodingException **/
- private void addCookie(String name, String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException {
- if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){
- //創建Cookie
- // Cookie nameCookie=new Cookie("name",URLEncoder.encode(name,"utf-8"));
- Cookie nameCookie=new Cookie("name",name);
- Cookie pswCookie=new Cookie("psw",password);
- //設置Cookie的父路徑
- nameCookie.setPath(request.getContextPath()+"/");
- pswCookie.setPath(request.getContextPath()+"/");
- //獲取是否保存Cookie
- String rememberMe=request.getParameter("rememberMe");
- if(rememberMe==null){//不保存Cookie
- nameCookie.setMaxAge(0);
- pswCookie.setMaxAge(0);
- }else{//保存Cookie的時間長度,單位為秒
- nameCookie.setMaxAge(7*24*60*60);
- pswCookie.setMaxAge(7*24*60*60);
- }
- //加入Cookie到響應頭
- response.addCookie(nameCookie);
- response.addCookie(pswCookie);
- }
- }
- }
1.首先是用戶名,密碼的input 和保存狀態的checkbox
- <input class="ipt" type="text" name='username' value='${name}'/>
- <input class="ipt" type='password' name='password' id='password' />
- <input style=" margin-left:60px; margin-right:10px; " type="checkbox" name="rememberMe" id="rememberMe" />
沒找到怎么保存checkbox的狀態,我就自己寫了個
- <script>
- window.onload = function() {
- if ('${name}' != '') {
- document.getElementById('rememberMe').checked = true;
- } else {
- document.getElementById('rememberMe').checked = false;
- }
- }
- </script>
2.然后在jsp頂部加入java代碼,用於讀取cookie
- <%
- String name = "";
- String psw = "";
- String checked = "";
- Cookie[] cookies = request.getCookies();
- if(cookies != null && cookies.length>0){
- for(int i =0; i<cookies.length; i++){
- if(cookies[i].getName().equals("name")){
- name=cookies[i].getValue();
- request.setAttribute("name",name);
- }
- if(cookies[i].getName().equals("psw")){
- psw=cookies[i].getValue();
- request.setAttribute("psw",psw);
- }
- }
- }
- %>
3.其次,在登陸到后台驗證完畢密碼后面加入
- //處理Cookie
- addCookie(username , pwd ,response ,request);
下面是addCookie這個方法
- /**Cookie的實現
- * @throws UnsupportedEncodingException **/
- private void addCookie(String name, String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException {
- if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){
- //創建Cookie
- // Cookie nameCookie=new Cookie("name",URLEncoder.encode(name,"utf-8"));
- Cookie nameCookie=new Cookie("name",name);
- Cookie pswCookie=new Cookie("psw",password);
- //設置Cookie的父路徑
- nameCookie.setPath(request.getContextPath()+"/");
- pswCookie.setPath(request.getContextPath()+"/");
- //獲取是否保存Cookie
- String rememberMe=request.getParameter("rememberMe");
- if(rememberMe==null){//不保存Cookie
- nameCookie.setMaxAge(0);
- pswCookie.setMaxAge(0);
- }else{//保存Cookie的時間長度,單位為秒
- nameCookie.setMaxAge(7*24*60*60);
- pswCookie.setMaxAge(7*24*60*60);
- }
- //加入Cookie到響應頭
- response.addCookie(nameCookie);
- response.addCookie(pswCookie);
- }
- }
- }
- 這是我借鑒CSDN一位前輩的