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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

利用Session完成用戶(hù)的登錄和注銷(xiāo)

2019-11-14 22:52:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
利用session完成用戶(hù)的登錄和注銷(xiāo)

用戶(hù)的登錄和注銷(xiāo)是最常見(jiàn)的Web應(yīng)用案例,當(dāng)一個(gè)應(yīng)用的客戶(hù)登錄了以后,其他所有的會(huì)話(huà)都得知道這個(gè)用戶(hù)已經(jīng)登錄還很有可能得提取用戶(hù)的昵稱(chēng)予以顯示等等,所以,只有把登錄成功的用戶(hù)的信息放入到Session中才能夠辦到使所有的Servlet都能訪(fǎng)問(wèn)到用戶(hù)的登錄狀態(tài),

第一是登錄的界面,是HTML的一個(gè)表單,非常的簡(jiǎn)單
<!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=UTF-8"><title>登陸界面</title></head><body><form action="/Web/servlet/LoginServlet" method="post">帳號(hào):<input type="text" name="username"><br>密碼:<input type="passWord" name="password"><br><input type="submit" value="登錄"></form></body></html>
第二是處理登錄信息的LoginServlet
package com.bird.login;    import java.io.IOException;  import java.io.PRintWriter;  import java.util.ArrayList;  import java.util.List;    import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;    public class LoginServlet extends HttpServlet {        /**      * @category 使用Session處理用戶(hù)登陸      * @author Bird      */      private static final long serialVersionUID = 1L;        public void doGet(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {          response.setCharacterEncoding("UTF-8");          response.setContentType("text/html;charset=UTF-8");          PrintWriter out = response.getWriter();                    String username = request.getParameter("username");          String password = request.getParameter("password");                    List<User> list = Db.getAll();          for(User u: list){              if(u.getUsername().equals(username) && u.getPassword().equals(password)){                  request.getSession().setAttribute("user", u);//登錄成功,將用戶(hù)數(shù)據(jù)放入到Session中                  response.sendRedirect("/Web/index.jsp");                  return;//進(jìn)行重定向,并且下面的代碼不再執(zhí)行              }          }                    out.write("您的應(yīng)戶(hù)名或密碼錯(cuò)誤");      }        public void doPost(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {          doGet(request,response);      }    }    class Db{      public static List<User> list = new ArrayList<User>();      static{          list.add(new User("aaa","123"));          list.add(new User("bbb","123"));          list.add(new User("ccc","123"));      }            public static List<User> getAll(){          return list;      }  }  

這里有個(gè)小疑問(wèn),如果用戶(hù)是在數(shù)據(jù)庫(kù)中中,是把用戶(hù)全部讀出來(lái)再遍歷快?還是直接在JDBC是查詢(xún)來(lái)的快

第三,用戶(hù)的信息封裝在User對(duì)象中
package com.bird.login;/*** @category 封裝用戶(hù)的數(shù)據(jù)的對(duì)象* @author Bird**/public class User {private String username;private String password;public User() {}public User(String username, String password) {this.username = username;this.password = password;}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;}}
第四是處理用戶(hù)注銷(xiāo)的Servlet
package com.bird.login;    import java.io.IOException;    import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpSession;    public class LoginOutServlet extends HttpServlet {        /**      * @category 退出登錄的Servlet,注銷(xiāo)      * @author Bird      */      private static final long serialVersionUID = 1L;        public void doGet(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {          HttpSession session = request.getSession(false);//防止創(chuàng)建Session          if(session == null){              response.sendRedirect("/Web/index.jsp");              return;          }                    session.removeAttribute("user");          response.sendRedirect("/Web/index.jsp");      }        public void doPost(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {        }    }  
第五是最終的顯示界面
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'index.jsp' starting page</title></head><body>歡迎您,${user.username} <br><a href="/Web/servlet/LoginOutServlet">退出登錄</a></body></html>


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高平市| 仲巴县| 沭阳县| 文成县| 龙海市| 松江区| 普格县| 西华县| 漾濞| 通江县| 公安县| 清原| 双江| 汶川县| 班戈县| 筠连县| 英吉沙县| 德州市| 德阳市| 旬阳县| 绵阳市| 三河市| 平塘县| 房产| 名山县| 衡水市| 柘城县| 麻江县| 刚察县| 永济市| 株洲县| 乐业县| 冷水江市| 六枝特区| 西盟| 祁阳县| 沧州市| 云安县| 含山县| 关岭| 桓台县|