更新時間:2022-04-28 11:31:19 來源:動力節點 瀏覽1894次
Java登錄頁面要怎樣實現?動力節點小編來告訴大家。首先準備好對應的資料,之前的頁面、連接數據庫的配置文件和日志的配置文件。
實體類,登錄用到的用戶表字段:設置get和set方法:
private Integer UserID;private Integer EmployeeID;// 員工ID
private String UserName;// 用戶名private String Password;// 密碼
private String UserCode;// 用戶編碼private String UserState;// 用戶狀態
private String UnifiedVerificationCode;// 統一驗證碼
public Integer getUserID() { return UserID; }
public void setUserID(Integer userID) {UserID = userID;}......
Java封裝實現類繼承接口后實現,用于實現登錄分方法,查詢登錄的用戶名、密碼和驗證碼:
Sql查詢語句:
@Override public User findByName(String name) {
User user = null;
try {conn =DBUtils.getConnection();ps = conn.prepareStatement(findByName);//調用sql語句
ps.setString(1, name);rs = ps.executeQuery();
while (rs.next()) {
user = new User();//調用實體類的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;}
在創建一個用于Servlet調用的Service實現類匹配獲取加密的密碼數據庫對比(使用封裝好的加密的工具類)MD5Util:
@Overridepublic User login(String name, String password) {
User user=null; User dbUser=userDao.findByName(name);
if (dbUser!=null) {password=MD5Util.getMD5(password);
//設置為MD5密碼與數據庫對比等于則返回user=dbUser
if (password.equals(dbUser.getPassword().trim())) {user=dbUser;}
} return user;}
Servlet調用用戶登錄的方法:
doGet方法調用doPost使用doPost請求數據
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response);}
doPost方法:判斷要登錄的頁面或請求數據進行跳轉的方法
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);//登錄請求數據}
else {login(request, response);//重定向}}
獲取驗證碼:
private void identity(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//調用生成驗證碼工具類方法
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();}
跳轉登錄頁面:
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();//調用登錄方法的實現類
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("參數錯誤");}
PrintWriter out=response.getWriter();
JSONObject jObject=JSONObject.fromObject(jsonReturn);//轉成json字符串
out.write(jObject.toString());
out.close(); }
通過上述介紹,相信大家對實現Java登錄頁面的步驟已經有所了解,大家如果對此比較感興趣,想了解更多相關知識,不妨來關注一下動力節點的Java在線學習,里面的課程從入門到精通,通俗易懂,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習