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

📄 loginservlet.java

📁 一套购物车项目。电子商务系统。实现了前台和后台的业务逻辑。
💻 JAVA
字号:
package com.softfz.jn0708.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.Vector;
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 com.softfz.jn0708.bean.UserBean;
import com.softfz.jn0708.dao.UserDAO;

/**
 * 注册用户登录Servlet
 * @author student
 *
 */
public class LoginServlet extends HttpServlet {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 4347118155746500091L;

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log

	}


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request,response);

	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String loginname = request.getParameter("loginname");
		String password = request.getParameter("password");
		String task = request.getParameter("task");	
		//获取session对象
		HttpSession session = request.getSession();		
		int loginCount = 0 ;		
		//从会话中获取登录次数
		String lgcount = (String) session.getAttribute("loginCount");
				
//		从上下文对象中取出用户列表
		ServletContext context = this.getServletContext();
		Vector online =  (Vector) context.getAttribute("online");		
		
		if(lgcount==null){
			
			lgcount="1";
		}

		loginCount = Integer.parseInt(lgcount);		
		//验证码
		String rand = (String)session.getAttribute("rand");
		String input = request.getParameter("rand");
		
		//取得当前会话用户
		String username = (String)session.getAttribute("uname");
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
//		String contextPath = request.getContextPath();		
		
		boolean bool = false;
		
		if(online!=null){
			for (Iterator iter = online.iterator(); iter.hasNext();) {
				String element = (String) iter.next();
				if(element!=null){
					if(element.equals(loginname)){
						bool = true;
					}
				}							
			}
		}			
				
		if(loginCount == 3 ){
			out.println("<script>");			
			out.println("alert('三次错误,系统将提示退出!');");
			out.println("top.window.close();");
			out.println("window.location.href='./shop/login.jsp';");
			out.println("</script>");
			out.flush();
			out.close();
		}else
		
		if(task!=null&&task.equals("login")&&username==null){
			
			UserDAO dao = new UserDAO();	
			UserBean user = dao.getUser(loginname,0);	
			
			if (!rand.equals(input)) {
				out.println("<script>");			
				out.println("alert('验证码错误!');");
				out.println("history.back();");		
				out.println("</script>");
				out.flush();
				out.close();
			}else if(user==null){				
				out.println("<script>");			
				out.println("alert('用户名不存在');");
				out.println("history.back();");		
				out.println("</script>");					
				out.flush();
				out.close();
			}else if(user.getUpassword()== null || !(user.getUpassword().equals(password))){
				out.println("<script>");			
				out.println("alert('密码错误!');");
				out.println("history.back();");		
				out.println("</script>");
				out.flush();
				out.close();			
			}else if(user.getIslocked().equals("1")){
				out.println("<script>");			
				out.println("alert('您已被冻结');");
				out.println("history.back();");		
				out.println("</script>");					
				out.flush();
				out.close();			
			}else {
				
				if(bool){
					out.println("<script>");			
					out.println("alert('该用户已在线,不能重复登录!');");
					out.println("history.back();");		
					out.println("</script>");					
					out.flush();
					out.close();				
				}else{
					
					//用户名添加到当前会话
					session.setAttribute("uname",loginname);
					session.setAttribute("user",user);//登录成功之后,添加用户的详细信息到当前的会话
					
					//开始添加在线用户 ServletContext 上下文对象 全局对象						
					if(online==null){
						online = new Vector();					
						context.setAttribute("online",online);
						online.add(loginname);
					}else{
						online.add(loginname);
					}
					
					out.println("<script>top.topFrame.location.href='./shop/top.jsp';</script>");
					
					String uri = request.getParameter("uri");
					if(uri!=null&&!uri.equals("")){
						out.print("<script>location.href='"+uri+"'</script>");
					}else{
						out.println("<script>window.location.href='itemServlet'</script>;");
					}					
					out.flush();
					out.close();
				}				
			}
				
		}else if((task!=null&&task.equals("loginout"))&&username==null){			

			if(username==null){
				out.println("<script>");			
				out.println("alert('您没有登录系统');");
				out.println("window.location.href='./shop/login.jsp';");		
				out.println("</script>");					
				out.flush();
				out.close();				
			}
					
		}else if((task!=null&&task.equals("loginout"))&&username!=null){
			//注销
			session.removeAttribute("uname");
			
			if(online!=null){
				if(username!=null){					
					//从在线用户中删除该用户
					online.remove(username);						
					out.println("<script>");			
					//out.println("alert('您已经注销登录!');");
					out.println("window.top.topFrame.location.href='./shop/top.jsp';");
					out.println("window.location.href='itemServlet';");		
					out.println("</script>");					
					out.flush();
					out.close();	
				}
			}
		}else if(task!=null&&task.equals("exit")){
			
			//注销
			session.removeAttribute("uname");
			session.removeAttribute("user");
			if(online!=null){
				if(username!=null){					
//					从在线用户中删除该用户
					online.remove(username);					
;	
				}
			}
			out.print("<script>window.close();</script>");
			out.flush();
			out.close();

		}
	}

	public void init() throws ServletException {
		// Put your code here
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -