欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaWeb 網(wǎng)上書店 注冊(cè)和登陸功能案例詳解

 更新時(shí)間:2019年08月17日 09:23:49   作者:sun_jinhang  
這篇文章主要介紹了JavaWeb 網(wǎng)上書店 注冊(cè)和登陸功能,結(jié)合具體案例形式詳細(xì)分析了JavaWeb 網(wǎng)上書店 注冊(cè)和登陸功能具體實(shí)現(xiàn)步驟、操作技巧與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JavaWeb 網(wǎng)上書店 注冊(cè)和登陸功能。分享給大家供大家參考,具體如下:

工具:Eclipse + Navicat

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

用戶實(shí)體:簡簡單單的六個(gè)屬性,編號(hào)、姓名、密碼、電話、郵箱、地址。

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;
    }
}

用戶實(shí)現(xiàn)登陸注冊(cè)的一些方法:包含注冊(cè)、登陸、密碼MD5加密、編號(hào)隨機(jī)生成

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;
    }
    //自動(dòng)給用戶生成編號(hào)
    public static String GetUId()
    {
        UUID uid = UUID.randomUUID();
        String id = uid.toString();
        id = id.replace("-", "");
        return id;
    }
    //給用戶密碼進(jìn)行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();
    }
}

注冊(cè)功能實(shí)現(xiàn):

靜態(tài)頁面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>注冊(cè)</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="返回登陸" οnclick="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", "注冊(cè)成功");
            request.getRequestDispatcher("/message.jsp").forward(request, response);
        }
        catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

登陸功能實(shí)現(xiàn):

靜態(tài)頁面:

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>前臺(tái)首頁</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>網(wǎng)上書店</h1>
  <br/>
  <div>
      <a href="${pageContext.request.contextPath }/client/IndexServlet?method=getAll" rel="external nofollow" target="body">首頁</a>
      <a href="${pageContext.request.contextPath }/client/listcart.jsp" rel="external nofollow" target="body">查看購物車</a>
      <a href="${pageContext.request.contextPath }/client/ClientListOrderServlet?userid=${user.id}" rel="external nofollow" 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="注冊(cè)" οnclick="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" rel="external nofollow" >注銷</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 = "處理登陸事項(xiàng)", 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);
    }
}

最終實(shí)現(xiàn)的效果:

主界面

 注冊(cè)界面:

登陸成功界面

 

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 自定義spring mvc的json視圖實(shí)現(xiàn)思路解析

    自定義spring mvc的json視圖實(shí)現(xiàn)思路解析

    這篇文章主要介紹了自定義spring mvc的json視圖的實(shí)現(xiàn)思路解析,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • 一次 Java 內(nèi)存泄漏的排查解決過程詳解

    一次 Java 內(nèi)存泄漏的排查解決過程詳解

    這篇文章主要介紹了一次 Java 內(nèi)存泄漏的排查過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Jackson 反序列化時(shí)實(shí)現(xiàn)大小寫不敏感設(shè)置

    Jackson 反序列化時(shí)實(shí)現(xiàn)大小寫不敏感設(shè)置

    這篇文章主要介紹了Jackson 反序列化時(shí)實(shí)現(xiàn)大小寫不敏感設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MyBatis通用的10種寫法總結(jié)大全

    MyBatis通用的10種寫法總結(jié)大全

    這篇文章主要給大家介紹了關(guān)于MyBatis通用的10種寫法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Springmvc和ajax如何實(shí)現(xiàn)前后端交互

    Springmvc和ajax如何實(shí)現(xiàn)前后端交互

    這篇文章主要介紹了Springmvc和ajax如何實(shí)現(xiàn)前后端交互,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏

    Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏

    這篇文章主要介紹了利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏,首先在需要進(jìn)行脫敏的VO字段上面標(biāo)注相關(guān)脫敏注解,具體實(shí)例代碼文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • spring中使用Mockito解決Bean依賴樹問題方法

    spring中使用Mockito解決Bean依賴樹問題方法

    在本篇文章里小編給各位整理了關(guān)于spring中使用Mockito解決Bean依賴樹問題方法,有需要的朋友們可以參考下。
    2020-01-01
  • Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼

    Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼

    這篇文章主要介紹了Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Java中Objects.equals踩坑記錄

    Java中Objects.equals踩坑記錄

    最近在工作中發(fā)現(xiàn)一個(gè)問題,覺著還是挺有必要記錄下的,這篇文章主要給大家介紹了關(guān)于Java中Objects.equals踩坑的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 教你怎么在IDEA中創(chuàng)建java多模塊項(xiàng)目

    教你怎么在IDEA中創(chuàng)建java多模塊項(xiàng)目

    這篇文章主要介紹了教你怎么在IDEA中創(chuàng)建java多模塊項(xiàng)目,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評(píng)論