package chapter03.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import chapter03.model.User;
/**
* Servlet implementation class loginServlet
*/
public class loginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public loginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=GBK");
String action = request.getParameter("action");
if ("login".equals(action)){
login(request, response);
}
else if ("check".equals(action)){
check(request, response);
}
else if ("logout".equals(action)){
logout(request, response);
}
else{
unlogin(request, response);
}
}
private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String loginUrl = "/login.html";
String fileUrl = "/login?action=check";
HttpSession session = request.getSession();
String userName = request.getParameter("user_name");
String password = request.getParameter("login_password");
// 验证用户ID和密码是否合法,略...
ServletContext context = getServletContext();
if (userName == null || userName.equals("")) {
RequestDispatcher dispatcher =
context.getRequestDispatcher(loginUrl);
response.setContentType("text/html;charset=GBK");
dispatcher.forward(request, response);
return;
}
// 登录成功,设置session中的属性
else{
User user = new User();
user.setUserName(userName);
session.setAttribute("User", user);
RequestDispatcher dispatcher = context.getRequestDispatcher(fileUrl);
dispatcher.forward(request, response);
}
}
private void check(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User)session.getAttribute("User");
if (user == null) { // 若未登陆,则先跳转到登录页面
response.setContentType("text/html;charset=GBK");
response.setHeader("Refresh", "3; URL=login.html");
PrintWriter out = response.getWriter();
out.println("请先登录!
");
out.println("3秒后跳转到登录页面...");
out.close();
return;
}
else if(user.getUserName().equals("sss"))
{
String loginURL = "login?action=login";
String logoutURL = "login?action=logout";
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("
"); out.println("你的邮箱中有100封邮件"); out.println("
"); out.println("登陆"); out.println("注销"); out.println(""); out.close(); } else { String loginURL = "login?action=login"; response.setContentType("text/html;charset=GBK"); PrintWriter out = response.getWriter(); out.println("
"); out.println("您无权访问邮件系统。"); out.println("
"); out.println("请重新登陆邮件系统!!"); out.println(""); out.close(); } } private void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); User user = (User)session.getAttribute("User"); String name = user.getUserName(); session.invalidate(); String loginURL = "login?action=login"; PrintWriter out = response.getWriter(); out.println("
"); out.println("重新登录邮件系统"); out.println(""); out.close(); } private void unlogin(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { String loginURL = "login?action=login"; response.setContentType("text/html;charset=GBK"); PrintWriter out = response.getWriter(); out.println("
"); out.println("请您先登陆邮件系统!"); out.println(""); out.close(); } }