📄 loginservlet.java
字号:
package examples;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
/**
* 登录Servlet
*/
public class LoginServlet extends HttpServlet {
private UserManagerHome userManagerHome;
/*
* 购书车 home 对象
* 用于在客户登录时创建一个新购书车
*/
private CartHome cartHome;
/**
* 初始化 servlet 实例
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
/*
* 获取 JNDI 的初始化参数
*/
String initCtxFactory =
getInitParameter(Context.INITIAL_CONTEXT_FACTORY);
String providerURL =
getInitParameter(Context.PROVIDER_URL);
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, initCtxFactory);
env.put(Context.PROVIDER_URL, providerURL);
/*
* 获取 JNDI 的初始上下文
*/
Context ctx = new InitialContext(env);
/*
* 查找 购书车 Home Objects
* we need via JNDI
*/
userManagerHome = (UserManagerHome)
ctx.lookup("UserManagerHome");
cartHome = (CartHome) ctx.lookup("CartHome");
}
catch (Exception e) {
log(e);
throw new ServletException(e.toString());
}
}
/**
* 回应客户端的 HTTP 请求。
*/
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
/*
* 获取客户的登录名和密码
*/
String loginName = request.getParameter("Login");
String password = request.getParameter("Password");
boolean isLogin=false;
/*
* 如果客户还未登录,则给他显示登录页面
*/
if ((loginName == null) || (password == null)) {
writeForm(request, response, false);
}
else {
/*
* 使用 UserManager 无状态会话 bean 来验证客户身份
*/
try {
UserManager userManager=userManagerHome.create();
isLogin= userManager.validateUser(loginName,password);
}
catch (Exception e) {
writeForm(request, response, true);
e.printStackTrace();
return;
}
/*
* 如果客户身份确认
* 创建一个新的购书车
*/
if (isLogin) {
try {
Cart cart = cartHome.create(loginName);
session.setAttribute("cart", cart);
/*
* 调用主页
*/
RequestDispatcher disp =
this.getServletContext().getRequestDispatcher("/wsf.jsp");
disp.forward(request, response);
return;
}
catch (Exception e) {
log(e);
throw new ServletException(e.toString());
}
}
}
/*
* 如果客户身份无效
* 让他重新登录
*/
writeForm(request, response, true);
}
private void writeForm(HttpServletRequest request,
HttpServletResponse response,
boolean showError)
throws ServletException, IOException {
request.setAttribute("loginFailed", new Boolean(showError));
RequestDispatcher disp =
this.getServletContext().getRequestDispatcher("/login.jsp");
disp.forward(request, response);
}
private void log(Exception e) {
e.printStackTrace();
}
public String getServletInfo() {
return "The Login servlet verifies a user.";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -