更新時間:2022-04-28 11:31:19 來源:動力節(jié)點 瀏覽2236次
Java登錄頁面要怎樣實現(xiàn)?動力節(jié)點小編來告訴大家。首先準備好對應的資料,之前的頁面、連接數(shù)據(jù)庫的配置文件和日志的配置文件。
實體類,登錄用到的用戶表字段:設置get和set方法:
private Integer UserID;private Integer EmployeeID;// 員工ID
private String UserName;// 用戶名private String Password;// 密碼
private String UserCode;// 用戶編碼private String UserState;// 用戶狀態(tài)
private String UnifiedVerificationCode;// 統(tǒng)一驗證碼
public Integer getUserID() { return UserID; }
public void setUserID(Integer userID) {UserID = userID;}......
Java封裝實現(xiàn)類繼承接口后實現(xiàn),用于實現(xiàn)登錄分方法,查詢登錄的用戶名、密碼和驗證碼:
Sql查詢語句:
@Override public User findByName(String name) {
User user = null;
try {conn =DBUtils.getConnection();ps = conn.prepareStatement(findByName);//調(diào)用sql語句
ps.setString(1, name);rs = ps.executeQuery();
while (rs.next()) {
user = new User();//調(diào)用實體類的set、get方法獲取用戶名和用戶信息
user.setUserID(rs.getInt("UserID")); user.setUserName(rs.getString("UserName"));
user.setPassword(rs.getString("Password")); ......
}} catch (SQLException e) {e.printStackTrace();}
finally {DBUtils.close(rs, conn, ps);}//關流return user;}
在創(chuàng)建一個用于Servlet調(diào)用的Service實現(xiàn)類匹配獲取加密的密碼數(shù)據(jù)庫對比(使用封裝好的加密的工具類)MD5Util:
@Overridepublic User login(String name, String password) {
User user=null; User dbUser=userDao.findByName(name);
if (dbUser!=null) {password=MD5Util.getMD5(password);
//設置為MD5密碼與數(shù)據(jù)庫對比等于則返回user=dbUser
if (password.equals(dbUser.getPassword().trim())) {user=dbUser;}
} return user;}
Servlet調(diào)用用戶登錄的方法:
doGet方法調(diào)用doPost使用doPost請求數(shù)據(jù)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response);}
doPost方法:判斷要登錄的頁面或請求數(shù)據(jù)進行跳轉(zhuǎn)的方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//解決亂碼問題
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String strfun=request.getParameter("fun");
if ("login".equals(strfun)) {login(request, response);//登錄頁面
}else if ("identity".equals(strfun)) {identity(request, response);//驗證碼
}else if ("userLogin".equals(strfun)) {userLogin(request, response);//登錄請求數(shù)據(jù)}
else {login(request, response);//重定向}}
獲取驗證碼:
private void identity(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//調(diào)用生成驗證碼工具類方法
GifCaptcha captcha=new GifCaptcha(290, 35, 5);
ServletOutputStream out= response.getOutputStream();
String identityKey= captcha.out(out);
request.getSession().setAttribute("identityKey", identityKey);
out.flush();
out.close();}
跳轉(zhuǎn)登錄頁面:
private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);}
//登錄驗證private void userLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JsonReturn jsonReturn=new JsonReturn();
IUserService userService=new UserServiceImpl();//調(diào)用登錄方法的實現(xiàn)類
String userName=request.getParameter("username");//用戶名
String password=request.getParameter("password");//密碼
String identityKey=request.getParameter("identityKey");//驗證碼
HttpSession session=request.getSession();
try {
String sessionIdentityKey=session.getAttribute("identityKey").toString();
if(Tools.isNotNull(identityKey)&&identityKey.equalsIgnoreCase(sessionIdentityKey)) {User user=userService.login(userName, password);
if (user!=null) {
session.setAttribute("SESSION_USER", user);
jsonReturn.setState(true);jsonReturn.setMsg("登錄成功");
}else {jsonReturn.setState(false); jsonReturn.setMsg("輸入用戶或密碼錯誤");}
}else {jsonReturn.setState(false); jsonReturn.setMsg("驗證碼錯誤");
}} catch (Exception e) { jsonReturn.setState(false);
jsonReturn.setMsg("參數(shù)錯誤");}
PrintWriter out=response.getWriter();
JSONObject jObject=JSONObject.fromObject(jsonReturn);//轉(zhuǎn)成json字符串
out.write(jObject.toString());
out.close(); }
通過上述介紹,相信大家對實現(xiàn)Java登錄頁面的步驟已經(jīng)有所了解,大家如果對此比較感興趣,想了解更多相關知識,不妨來關注一下動力節(jié)點的Java在線學習,里面的課程從入門到精通,通俗易懂,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。