实验要求:
- 错误回显
- 用户名密码自动保存(cookie或session实现)
我是写了2个页面实现
- 一个登录界面 login.jsp
- 一个登录处理界面 loginservlet.java
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录表单</title>
<style>
div.biaodan {
border: 1px solid #1f07a7;
width: 280px;
height: 180px;
text-align: center;
position: absolute;
left: 40%;
top: 130px;
}
</style>
</head>
<body>
<div class="biaodan">
<form method="POST" name="login" action="loginservlet" >
<br/>
<%-- value="${sessionScope.Name }" 这样处理界面保存session数据才能输出 --%>
管理员用户名:<input type="text" size="12px" name="loginName" value="${sessionScope.Name }"/><br/><br/>
管理员密 码:<input type="password" size="12px" name="password"
value="${sessionScope.Pass }"
/><br/><br/>
<input type="submit" name="submit" value="提交"/>
<input type="reset" name="reset" value="重置"/>
<br/> <br/>
<%
//用于处理界面的错误回显
if(request.getAttribute("message")!= null){
out.print(request.getAttribute("message"));
}
%>
</form>
</div>
</body>
</html>
loginservlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/loginservlet")
public class loginservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public loginservlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String msg="";
doGet(request, response);
request.setCharacterEncoding("GBK");
//设置响应的文本类型为html,编码字符为GBK
response.setContentType("text/html;charset=GBK");
PrintWriter out=response.getWriter();
//获取表单数据
//获取表单里用户名文本框信息
String username=request.getParameter("loginName");
//获取表单里用户密码文本框信息
String password=request.getParameter("password");
//获取当前Session
HttpSession session = request.getSession();
//保存当前的username,password
session.setAttribute("Name", username);
session.setAttribute("Pass", password);
//处理:
//用户名密码都对 输出成功。
//并且如果按 返回键 回到初始界面,用户名和密码自动填写。(上面用了session,处于同一会话中,session数据都保存到服务端)
//有错误就跳转到登录界面,输出错误。
if("admin".equals(username)&&"123456".equals(password)){
out.println("登陆成功!");
} else {
msg="登录失败:用户名或密码错误";
request.setAttribute("message", msg);
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
}