用户登录注册模板_基础版 传送门
用户登录注册模板进阶版
添加了获得获得当前登录用户信息及存储登录人数
用户登录后,在首页、注册页、登录页显示登录用户信息和存储登录人数信息
目录结构
Objecto=session.getAttribute("user");if(o!=null){
User user=(User)o;
out.println("当前登录用户:"+user.getUsername()+"
");
}%>
Objecto2=application.getAttribute("userNumber");if(o2!=null){
out.println("当前登录用户"+o2+"个
");
}%>
登录
注册
index.jsp
Objecto=session.getAttribute("user");if(o!=null){
User user=(User)o;
out.println("当前登录用户:"+user.getUsername()+"
");
}%>
Objectmsg=request.getAttribute("message");if(msg!=null)
out.println(msg);%>登录
用户名:
密码 :
login.jsp
Stringusername=request.getParameter("username");Stringpassword=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("登录成功");intnumber= 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);
}%>
login_do.jsp
Objecto=session.getAttribute("user");if(o!=null){
User user=(User)o;
out.println("当前登录用户:"+user.getUsername()+"
");
}%>
Objectmsg=request.getAttribute("message");if(msg!=null)
out.println(msg);%>
用户名:
密码:
年龄:
性别:男女
register.jsp
Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");intage= Integer.parseInt(request.getParameter("age"));Stringsex=request.getParameter("sex");booleanisSuccess=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("注册成功");//}else{//out.println(username);//out.println("注册失败");//}%>
register_do.jsp
//通过session的getAttribute进行访问
User user=(User)session.getAttribute("user");%>用户名:
年龄:
性别:
personCenter.jsp
packagecom.Gary.model;public classUser {privateString username;privateString password;private intage;privateString sex;public User(String username, String password, intage, String sex) {super();this.username =username;this.password =password;this.age =age;this.sex =sex;
}publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}publicString getSex() {returnsex;
}public voidsetSex(String sex) {this.sex =sex;
}
}
User.java
packagecom.Gary.util;importjava.util.HashMap;importjava.util.Map;importcom.Gary.model.User;public classDBUtil {private static Mapdb = new HashMap();public static boolean addUser(String username,String password,intage,String sex) {//TODO
if(db.containsKey(username)) {return false;
}else{
User user=newUser(username,password,age,sex);
db.put(username, user);return true;
}
}//账号校验
public staticUser verifyAccount(String username,String password) {if(db.containsKey(username)) {
User user=db.get(username);if(user.getPassword().equals(password)) {returnuser;
}else{return null;
}
}return null;
}
}
DBUtil.java
获得当前用户登录
注册时通过session的setAttribute传递数据
Stringusername=request.getParameter("username");Stringpassword=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会话获得当前登录用户
Objecto=session.getAttribute("user");if(o!=null){
User user=(User)o;
out.println("当前登录用户:"+user.getUsername()+"
");
}%>
存储登录人数
当用户web启动的时候会创建application内置对象,当用户关闭web时销毁application内置对象
application存放的数据通常是所有客户端所共享的数据
当用户注册时,login_do.jsp中定义一个number变量用来存储登录人数,每次有用户进行登录时,使number数量+1
Stringusername=request.getParameter("username");Stringpassword=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("登录成功");intnumber= 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应用
Objecto2=application.getAttribute("userNumber");if(o2!=null){
out.println("当前登录用户"+o2+"个
");
}%>