⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginservlet.java

📁 JAVA 光盘操作说明 是解压包,直接解压就可以了
💻 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 + -