為什么我保存不了賬戶和密碼呢?
和老師的有些不同,我的dologin是servlet寫的
<%@?page?import="java.net.URLDecoder"?%><%-- ??Created?by?IntelliJ?IDEA. ??User:?lenovo ??Date:?2020/5/19 ??Time:?20:18 ??To?change?this?template?use?File?|?Settings?|?File?Templates. --%> <%@?page?contentType="text/html;charset=UTF-8"?language="java"?%> <html> <head> ????<title>歡迎登錄</title> </head> <body> <h1>用戶登錄</h1> <hr> <% ????request.setCharacterEncoding("utf-8"); ????String?username=""; ????String?password?=?""; ????Cookie[]?cookies?=?request.getCookies(); ????if(cookies!=null&&cookies.length>0) ????{ ????????for(Cookie?c:cookies) ????????{ ????????????if(c.getName().equals("username")) ????????????{ ????????????????username?=??URLDecoder.decode(c.getValue(),"utf-8"); ????????????} ????????????if(c.getName().equals("password")) ????????????{ ????????????????password?=??URLDecoder.decode(c.getValue(),"utf-8"); ????????????} ????????} ????} %> <form?name="loginForm"?action="servlet/Login"?method="post"> ????<table> ????????<tr> ????????????<td?class="label">用戶名:</td> ????????????<td><input?type="text"?name="username"?value="<%=username?%>"/></td> ????????</tr> ????????<tr> ????????????<td?class="label">密碼:</td> ????????????<td><input?type="password"?name="password"?value="<%=password?%>"?/></td> ????????</tr> ????????<tr> ????????????<td?colspan="2"><input?type="checkbox"?name="isUseCookie"?checked="checked"/>十天內(nèi)記住我的登錄狀態(tài)</td> ????????</tr> ????????<tr> ????????????<td?colspan="2"?align="center"><input?type="submit"?value="登錄"/><input?type="reset"?value="取消"/></td> ????????</tr> ????</table> </form> </body> </html>
這是jsp頁面代碼
package?servlet; import?db.Dubtil; import?model.Users; import?javax.servlet.ServletException; import?javax.servlet.http.Cookie; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?java.io.IOException; import?java.net.URLEncoder; import?java.sql.Connection; import?java.sql.PreparedStatement; import?java.sql.ResultSet; public?class?Login?extends?HttpServlet?{ ????Dubtil?dubtil=new?Dubtil(); ????@Override ????public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{ ???????????request.setCharacterEncoding("utf-8"); ???????????response.setContentType("text/html;charset=utf-8"); ???????????Connection?coon=dubtil.getConn(); ???????????String?username=request.getParameter("username"); ???????????String?password=request.getParameter("password"); ????????//首先判斷用戶是否選擇了記住登錄狀態(tài) ????????String[]?isUseCookies?=?request.getParameterValues("isUseCookie"); ????????if(isUseCookies!=null&&isUseCookies.length>0) ????????{ ????????????//把用戶名和密碼保存在Cookie對象里面 ????????????String?username1?=?URLEncoder.encode(request.getParameter("username"),"utf-8"); ????????????//使用URLEncoder解決無法在Cookie當(dāng)中保存中文字符串問題 ????????????String?password1?=?URLEncoder.encode(request.getParameter("password"),"utf-8"); ????????????Cookie?usernameCookie?=?new?Cookie("username",username1); ????????????Cookie?passwordCookie?=?new?Cookie("password",password1); ????????????usernameCookie.setMaxAge(864000); ????????????passwordCookie.setMaxAge(864000);//設(shè)置最大生存期限為10天 ????????????response.addCookie(usernameCookie); ????????????response.addCookie(passwordCookie); ????????} ????????else ????????{ ????????????Cookie[]?cookies?=?request.getCookies(); ????????????if(cookies!=null&&cookies.length>0) ????????????{ ????????????????for(Cookie?c:cookies) ????????????????{ ????????????????????if(c.getName().equals("username")||c.getName().equals("password")) ????????????????????{ ????????????????????????c.setMaxAge(0);?//設(shè)置Cookie失效 ????????????????????????response.addCookie(c);?//重新保存。 ????????????????????} ????????????????} ????????????} ????????}
下面代碼和數(shù)據(jù)庫有關(guān)系,我覺得和cookie應(yīng)該沒有關(guān)系
??try{ ???????????????PreparedStatement?p=coon.prepareStatement ???????????????????????("select?*from?teacherpassword?where?username=??and?password=?"); ???????????????p.setString(1,username); ???????????????p.setString(2,password); ???????????????ResultSet?re=p.executeQuery(); ???????????????if(re.next()) ???????????????{ ???????????????????request.getRequestDispatcher("/teacher.jsp").forward(request,response); ???????????????} ???????????????else ???????????????{ ???????????????????PreparedStatement?p1=coon.prepareStatement("select?*from?studentpassword?where?username=??and?password=?"); ???????????????????p1.setString(1,username); ???????????????????p1.setString(2,password); ???????????????????ResultSet?re1=p1.executeQuery(); ???????????????????if(re1.next()) ???????????????????{ ???????????????????????PreparedStatement?p2=coon.prepareStatement("select?*from?student?where?number=?"); ???????????????????????p2.setString(1,username); ???????????????????????ResultSet?re2=p2.executeQuery(); ???????????????????????re2.next(); ???????????????????????Users?user=new?Users(); ???????????????????????user.setName(re2.getString("name")); ???????????????????????user.setSex(re2.getString("sex")); ???????????????????????user.setNumber(re2.getString("number")); ???????????????????????user.setEmail(re2.getString("email")); ???????????????????????user.setAddress(re2.getString("address")); ???????????????????????user.setPhonenumber(re2.getString("phonenumber")); ???????????????????????user.setMathscore(re2.getDouble("mathscore")); ???????????????????????user.setChinesescore(?re2.getDouble("chinesescore")); ???????????????????????user.setEnglishscore(re2.getDouble("englishscore")); ???????????????????????request.getSession().setAttribute("studentinformation",user); ???????????????????????request.getRequestDispatcher("/student.jsp").forward(request,response); ???????????????????} ???????????????????else ???????????????????{ ???????????????????????request.getRequestDispatcher("/faillogin.jsp").forward(request,response); ???????????????????} ???????????????} ???????????}catch?(Exception?e) ???????????{ ???????????????e.printStackTrace(); ???????????} ????} }
求大佬指點為什么cookie保存不了密碼和賬戶呢?
2020-05-23
沒看出來問題。。。你搞定了沒?啥問題?