当用户登录了,则要将用户的信息保存下来。这样当他进入另外的网页的时候需要验证是否登录了。
登录的html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/Demo2/LoginServlet" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="登陆">
</form>
</body>
</html>
LoginServlet 界面
/**
* 登录的servlet
* 从 登录的 html中过来的数据
*/
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String username=request.getParameter("username");
String password=request.getParameter("password");
User user=DB.find(username, password);
if(user==null)
{
out.write("登录账号密码错误");
return;
}
//接下里是进行保存到本地
request.getSession().setAttribute("user", user); //向用户session中存一个登陆标记,也就是让用户登陆成功
//重定向 指向刚才的 登录html
response.sendRedirect("/Demo2/Login.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
//数据库 模拟
static class DB{
private static List<User> list = new ArrayList<User>();
static{
list.add(new User("aaa","123"));
list.add(new User("bbb","123"));
list.add(new User("ccc","123"));
}
public static User find(String username ,String password){
for(User user : list){
if(user.getName().equals(username) && user.getPassword().equals(password)){
return user;
}
}
return null;
}
}
}
Login.jsp界面
<%@page import="jemo.com.logindemo.User"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>登录</title>
</head>
<body>
欢迎您:
<%
User user=(User)session.getAttribute("user");
if(user!=null)
{
out.write(user.getName());
}
%>
<br/>
<a href="/Demo2/Login.html">登录</a>
</body>
</html>