JavaWeb_(session和application)用戶登錄注冊模板_進階版


 

 

  用戶登錄注冊模板_基礎版  傳送門

 

用戶登錄注冊模板進階版

  添加了獲得獲得當前登錄用戶信息及存儲登錄人數

  用戶登錄后,在首頁、注冊頁、登錄頁顯示登錄用戶信息和存儲登錄人數信息

 

  目錄結構  

 

 

<%@page import="com.Gary.model.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>

<%
Object o = session.getAttribute("user");
if(o!=null){
    User user = (User)o;
    out.println("當前登錄用戶:"+user.getUsername()+"<br/>");
}
%>

<%
Object o2 = application.getAttribute("userNumber");
if(o2!=null){
    out.println("當前登錄用戶"+o2+"個<br/>");
}
%>

<a href="login.jsp">登錄</a>
<a href="register.jsp">注冊</a>

</body>
</html>
index.jsp

 

<%@page import="com.Gary.model.User"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
Object o = session.getAttribute("user");
if(o!=null){
    User user = (User)o;
    out.println("當前登錄用戶:"+user.getUsername()+"<br/>");
}
%>

<%
Object msg = request.getAttribute("message");
if(msg!=null)
    out.println(msg);
%>

登錄<hr>
<form action="login_do.jsp" methon="post">
用戶名:<input type="text" name="username" /><br/>
密碼    :<input type="password" name="password" /><br/>

<input type="submit" value="登錄"/>
</form>
</body>
</html>
login.jsp

 

<%@page import="com.Gary.util.DBUtil" %>
<%@page import="com.Gary.model.User" %>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");

User user = DBUtil.verifyAccount(username,password);
if(user==null){
//    out.println("登錄失敗,用戶名或密碼錯誤");
    request.setAttribute("message","登錄失敗,用戶名或密碼錯誤");
    request.getRequestDispatcher("login.jsp").forward(request,response);
}else{
//    out.println("登錄成功");
    int number = 0;
    
    //第一次登錄用戶時if不瞞住,number=0
    if(application.getAttribute("userNumber")!=null){
        number = (Integer)application.getAttribute("userNumber");
    }
    
    //登錄過一個用戶后在原基礎number上進行++
    number++;

    application.setAttribute("userNumber",number);
    
    //通過seesion的setAttribute傳遞數據
    session.setAttribute("user", user);
    //登錄請求的轉發,將數據傳遞給personCenter.jsp頁面
    request.getRequestDispatcher("personCenter.jsp").forward(request,response);
}
%>
</body>
</html>
login_do.jsp

 

<%@page import="com.Gary.model.User"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
Object o = session.getAttribute("user");
if(o!=null){
    User user = (User)o;
    out.println("當前登錄用戶:"+user.getUsername()+"<br/>");
}
%>

<%
Object msg = request.getAttribute("message");
if(msg!=null)
    out.println(msg);
%>

<form action="register_do.jsp" methon="post">
用戶名:<input type="text" name="username" /><br/>
密碼:    <input type="password" name="password" /><br/>
年齡:    <input type="text" name="age" /><br/>
性別:男<input type="radio" name="sex" value="男" /><input type="radio" name="sex" value="女"/><br/>

<input type="submit" value="注冊"/>
</form>

</body>
</html>
register.jsp

 

<%@ page import="com.Gary.util.DBUtil" %>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%

String username = request.getParameter("username");
String password = request.getParameter("password"); 
int age = Integer.parseInt(request.getParameter("age"));
String sex = request.getParameter("sex");

boolean isSuccess = DBUtil.addUser(username,password,age,sex);

//使用請求轉發
if(isSuccess){
    request.setAttribute("message", "注冊成功,請登錄");
    //通過getRequestDispatcher傳遞路徑將請求轉發給login.jsp
    request.getRequestDispatcher("login.jsp").forward(request,response);
}else{
    request.setAttribute("message", "注冊失敗,用戶名重復");
    //通過getRequestDispatcher傳遞路徑將請求轉發給login.jsp
    request.getRequestDispatcher("register.jsp").forward(request,response);
}

// if(isSuccess){
//     out.println(username);
//      out.println("<font color='green'>注冊成功</font>");
// }else{
//     out.println(username);
//     out.println("<font color='red'>注冊失敗</font>");
// }
%>
</body>
</html>
register_do.jsp

 

<%@ page import="com.Gary.model.User" %>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
//通過session的getAttribute進行訪問
User user = (User)session.getAttribute("user");
%>

用戶名:<%=user.getUsername()%><br/>
年齡:<%=user.getAge()%><br/>
性別:<%=user.getSex()%><br/>
</body>
</html>
personCenter.jsp

 

package com.Gary.model;

public class User {
    private String username;
    private String password;
    private int age;
    private String sex;
    public User(String username, String password, int age, String sex) {
        super();
        this.username = username;
        this.password = password;
        this.age = age;
        this.sex = sex;
    }
    
    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 int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    
    
    
}
User.java

 

package com.Gary.util;

import java.util.HashMap;
import java.util.Map;

import com.Gary.model.User;


public class DBUtil {
    
    private static Map<String ,User>db = new HashMap<String,User>();
    
    public static boolean addUser(String username,String password,int age,String sex) {
        //TODO
        
        if(db.containsKey(username)) {
            return false;
        }else {
            User user=new User(username,password,age,sex);
            db.put(username, user);
            return true;
        }
    }
    
    //賬號校驗
    public static User verifyAccount(String username,String password) {
        if(db.containsKey(username)) {
            User user = db.get(username);
            if(user.getPassword().equals(password)) {
                return user;
            }else {
                return null;
            }
        }
        return null;
    }
}
DBUtil.java

 

 

獲得當前用戶登錄

  注冊時通過session的setAttribute傳遞數據

<%
String username = request.getParameter("username");
String password = request.getParameter("password");

User user = DBUtil.verifyAccount(username,password);
if(user==null){
//    out.println("登錄失敗,用戶名或密碼錯誤");
    request.setAttribute("message","登錄失敗,用戶名或密碼錯誤");
    request.getRequestDispatcher("login.jsp").forward(request,response);
}else{
//    out.println("登錄成功");
    //通過seesion的setAttribute傳遞數據
    session.setAttribute("user", user);
    //登錄請求的轉發,將數據傳遞給personCenter.jsp頁面
    request.getRequestDispatcher("personCenter.jsp").forward(request,response);
}
%>

 

  personCenter中通過Session對存儲user鍵值進行訪問

<%
//通過session的getAttribute進行訪問
User user = (User)session.getAttribute("user");
%>

 

  index.jsp、login.jsp、register.jsp中添加session會話獲得當前登錄用戶

<%
Object o = session.getAttribute("user");
if(o!=null){
    User user = (User)o;
    out.println("當前登錄用戶:"+user.getUsername()+"<br/>");
}
%>

 

 

存儲登錄人數

  當用戶web啟動的時候會創建application內置對象,當用戶關閉web時銷毀application內置對象

  application存放的數據通常是所有客戶端所共享的數據

  

  當用戶注冊時,login_do.jsp中定義一個number變量用來存儲登錄人數,每次有用戶進行登錄時,使number數量+1

<%
String username = request.getParameter("username");
String password = request.getParameter("password");

User user = DBUtil.verifyAccount(username,password);
if(user==null){
//    out.println("登錄失敗,用戶名或密碼錯誤");
    request.setAttribute("message","登錄失敗,用戶名或密碼錯誤");
    request.getRequestDispatcher("login.jsp").forward(request,response);
}else{
//    out.println("登錄成功");
    int number = 0;
    
    //第一次登錄用戶時if不瞞住,number=0
    if(application.getAttribute("userNumber")!=null){
        number = (Integer)application.getAttribute("userNumber");
    }
    
    //登錄過一個用戶后在原基礎number上進行++
    number++;

    application.setAttribute("userNumber",number);
    
    //通過seesion的setAttribute傳遞數據
    session.setAttribute("user", user);
    //登錄請求的轉發,將數據傳遞給personCenter.jsp頁面
    request.getRequestDispatcher("personCenter.jsp").forward(request,response);
}
%>

 

  在index.jsp中添加application應用

<%
Object o2 = application.getAttribute("userNumber");
if(o2!=null){
    out.println("當前登錄用戶"+o2+"個<br/>");
}
%>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM