JavaWeb 网上书店_注册和登陆功能

工具:Eclipse + Navicat

源码地址:https://github.com/Sunjinhang/JavaWeb

用户实体:简简单单的六个属性,编号、姓名、密码、电话、邮箱、地址。

package Entity;

public class User {
	
	
	public User(String id, String userName, String password, String phone, String email, String address) {
		super();
		this.id = id;
		this.userName = userName;
		this.password = password;
		this.phone = phone;
		this.email = email;
		this.address = address;
	}
	private String id;
	private String userName;
	private String password;
	private String phone;
	private String email;
	private String address;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}

用户实现登陆注册的一些方法:包含注册、登陆、密码MD5加密、编号随机生成

package Service;

import java.security.MessageDigest;
import java.util.UUID;

import Dao.UserDao;
import Entity.User;

public class UserService extends UserDao{

	public void AddUser(User user) {
		user.setId(GetUId());
		user.setPassword(MD5Encode(user.getPassword()));
		Add(user);
	}
	
	public User ValidateLogin(String name,String password) {
	
		User user = Validate(name,MD5Encode(password));
		
		return user;
	}
	
	
	
	//自动给用户生成编号
	public static String GetUId()
	{
		UUID uid = UUID.randomUUID();
		String id = uid.toString();
		id = id.replace("-", "");
		return id;		
	}
	
	//给用户密码进行MD5加密
	public static String MD5Encode(String str)
	{
		StringBuffer code = new StringBuffer();		
		MessageDigest md5 = null;
		
		try {
			md5 = MessageDigest.getInstance("MD5");
		}
		catch(Exception ex) {
			ex.printStackTrace();
		}		
		char[] charArr = str.toCharArray();		
		byte[] byteArr = new byte[charArr.length];		
		for(int i = 0;i < charArr.length; i++) {
			byteArr[i] = (byte)charArr[i];			
		}
		
		byte[] md5Arr = md5.digest(byteArr);
				
		for(int i = 0;i < md5Arr.length; i++) {
			int value = (int)md5Arr[i] & 0xff;
			if(value < 16)
			{
				code.append("0");
			}
			code.append(Integer.toHexString(value));
		}
		
		return code.toString();
	}
}

注册功能实现:

静态页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>注册</title>
  </head>
  <body>
  	<form action="${pageContext.request.contextPath }/RegisterServlet" method="post">
  		<input type="text" placeholder="loginname" required="required" name="name"/>
  		<br/>
  		<br/>
  		<input type ="password" placeholder="password" required="required" name="password"/>
  		<br/>
  		<br/>
  		<input type ="password" placeholder="confirm password" required="required" name="confirmpassword"/>
  		<br/>
  		<br/>
  		<input type ="text" placeholder="phone" required="required" name="phone"/>
  		<br/>
  		<br/>
  		<input type ="text" placeholder="email" required="required" name="email"/>
  		<br/>
  		<br/>
  		<input type ="text" placeholder="address" required="required" name="address"/>
  		<br/>
  		<br/>
  		<input type ="submit" value="提交"/>
  		<input type="button" value="返回登陆" onclick="parent.location.href='${pageContext.request.contextPath }/client/head.jsp'">
  	</form>
  </body>
  

</html>

代码:

package Action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Entity.User;
import Service.UserService;

/**
 * Servlet implementation class RegisterServlet
 */
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String name = request.getParameter("name");
		String password = request.getParameter("password");
		String phone = request.getParameter("phone");
		String email = request.getParameter("email");
		String address = request.getParameter("address");
		
		User user = new User("",name,password,phone,email,address);
		UserService userService = new UserService();
		
		try {
			userService.AddUser(user);		
			request.setAttribute("message", "注册成功");
			request.getRequestDispatcher("/message.jsp").forward(request, response);
		}
		catch(Exception ex) {
			ex.printStackTrace();
		}
	}

}

登陆功能实现:

静态页面:

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>前台首页</title>
  </head>
  
  <frameset rows="25%,*">
  	<frame src="${pageContext.request.contextPath }/client/head.jsp" name="head">
  </frameset>

</html>

head.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>首页头</title>
  </head>
  
  <body style="text-align:center;">
    <h1>网上书店</h1>
    <br/>
    <div>
	    <a href="${pageContext.request.contextPath }/client/IndexServlet?method=getAll" target="body">首页</a>
	    <a href="${pageContext.request.contextPath }/client/listcart.jsp" target="body">查看购物车</a>
	    <a href="${pageContext.request.contextPath }/client/ClientListOrderServlet?userid=${user.id}" target="body"">查看订单</a>
    </div>
    <div style="float:right;">
    	<c:if test="${user==null }"> 
	    <form action="${pageContext.request.contextPath }/LoginServlet" method="post">
	    	用户名:<input type="text" name="username" style="width:60px;">
	    	密码:<input type="password" name="password" style="width:60px;">
	    	<input type="submit" value="登陆">
	    	<input type="button" value="注册" onclick="parent.location.href='${pageContext.request.contextPath }/client/register.jsp'">
	    </form>
	    </c:if>
	    
	    <c:if test="${user!=null }">
	    	欢迎您:${user.getUserName() } <a href="${pageContext.request.contextPath }/client/LoginOutServlet">注销</a>
	    </c:if>
    </div>
  </body>
</html>

代码:

package Action;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Entity.User;
import Service.UserService;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet(description = "处理登陆事项", urlPatterns = { "/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 {
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		UserService service = new UserService();
		User user = service.ValidateLogin(username, password);
		if(user == null){
			request.setAttribute("message", "登陆失败");
			request.getRequestDispatcher("/message.jsp").forward(request, response);
			return;
		}
		request.getSession().setAttribute("user", user);
		request.getRequestDispatcher("/client/head.jsp").forward(request, response);
	}

}

最终实现的效果:

主界面

 注册界面:

登陆成功界面

 

猜你喜欢

转载自blog.csdn.net/sun_jinhang/article/details/88186090