慕侠3382504
2020-05-21 17:35
和老师的有些不同,我的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"/>十天内记住我的登录状态</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");
//首先判断用户是否选择了记住登录状态
String[] isUseCookies = request.getParameterValues("isUseCookie");
if(isUseCookies!=null&&isUseCookies.length>0)
{
//把用户名和密码保存在Cookie对象里面
String username1 = URLEncoder.encode(request.getParameter("username"),"utf-8");
//使用URLEncoder解决无法在Cookie当中保存中文字符串问题
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);//设置最大生存期限为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); //设置Cookie失效
response.addCookie(c); //重新保存。
}
}
}
}下面代码和数据库有关系,我觉得和cookie应该没有关系
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保存不了密码和账户呢?
没看出来问题。。。你搞定了没?啥问题?
JAVA遇见HTML——JSP篇
248272 学习 · 3215 问题
相似问题