用session写了一个实现用户登录,但是输入用户名和密码后,却返回还没登录。我个人认为是属性值没有传过去。但是不知道哪里有错。希望大神指点。谢谢
Login1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name = "reg" action = "/TheSixSection/LoginServlet" method = "post">
用户名:<input name = "username" type = "text"/><br>
密 码:<input name = "password" type = "password"/><br>
<input type = "submit" value = "登录" id = "bt"/>
</form>
</body>
</html>
IndexServlet1.java
//这个是欢迎页面,把doGet 方法贴出
//防止乱码
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//创建一个session对象
HttpSession session = request.getSession();
User user = (User)session.getAttribute("user");
if(user == null){
out.print("您还没有登录,请<a href = '/TheSixSection/Login1.html'>登录</a>");
}else{
out.println("欢迎登录"+user.getUsername()+"!");
out.println("<a href = '/TheSixSection/LogoutServlet'>退出</a>");
//创建cookie存放session标识符
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(60*30);
cookie.setPath("/TheSixSection");
response.addCookie(cookie);
}
LoginServlet.java
//显示doGet方法
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
//假设正确的用户名是:youli,密码是123
if(("youli").equals(username)&&("123").equals(password)){
User user = new User();
user.setUsername(username);
user.setPassword(password);
request.setAttribute("user", user);
response.sendRedirect("/TheSixSection/IndexServlet1");
}else{
out.write("用户名或密码错误,请重新登录");
}
能把code贴好吗?这样看的人比较多,被解决的概率也比较高!也就我有耐心看你的code了!还有问问题时可以在底下打上标签,是java?C#?c++? C?
我是新手,第一次提问,不太会呀
不过还是谢谢提醒
截错图了,圈起来的是两个按钮,一个是插入代码,一个是插入HTML,我还一直想说,这样一个图标,一个HTML字,感觉好像是一个按钮一样。。。
下次问问题的时候注意抓住重点.这样我都不知道是什么语言啊 也懒得看
哦,我是用的java语言呀。写的是Java web程序。
好像是我所赋值的对象并没有传到HttpSession对象中去。但是我不知为什么。
应该在接收值时,把值set到session里吧。我感觉应该是这样,希望能帮到你!
谢谢,我再看一下吧