Java SSH框架系列:用户登录模块的设计与实现思路

本文详细介绍了基于Java SSH框架设计和实现用户登录模块的步骤,包括数据库设计、Java Bean创建、Service接口与实现、Action类的编写、Spring配置以及Struts2拦截器的使用,确保未登录用户无法访问特定页面。最后通过拦截器实现对非登录用户的访问限制,增强系统安全性。
摘要由CSDN通过智能技术生成

1.简介
用户登录模块,指的是根据用户输入的用户名和密码,对用户的身份进行验证等。如果用户没有登录,用户就无法访问其他的一些jsp页面,甚至是action都不能访问。
二、简单设计及实现
本程序是基于Java的SSH框架进行的。
1.数据库设计

我们应该设计一个用户表,其Userinfo表,对应的SQL语句为(Oracle数据库):

  1. create table userinfo  
  2. (  
  3.   id                        varchar2(36) primary key,  
  4.   username                 varchar2(50) not null,  
  5.   password                 varchar2(50) not null,  
  6.   auth_limit               varchar2(10) not null,  
  7.   register_time           varchar2(40),  
  8.   create_time             varchar2(40),  
  9.   remarks                  varchar2(1024)                 
  10. );  
create table userinfo
(
  id                        varchar2(36) primary key,
  username                 varchar2(50) not null,
  password                 varchar2(50) not null,
  auth_limit               varchar2(10) not null,
  register_time           varchar2(40),
  create_time             varchar2(40),
  remarks                  varchar2(1024)               
);


分别是id,也就是UUID,用户名、密码、权限、注册时间、记录插入数据库的时间、备注等几个字段。

2.使用MyEclipse的Hibernate逆向工具,生成对应的Java Bean和相应的hibernate的xml配置文件Userinfo.hbm.xml更多Java进阶教程威我:hua2021ei

  1. package edu.njupt.zhb.bean;  
  2.   
  3. /** 
  4.  * Userinfo entity. @author MyEclipse Persistence Tools 
  5.  */  
  6.   
  7. public class Userinfo implements java.io.Serializable {  
  8.   
  9.     // Fields   
  10.   
  11.     private String id;  
  12.     private String username;  
  13.     private String password;  
  14.     private String authLimit;  
  15.     private String registerTime;  
  16.     private String createTime;  
  17.     private String remarks;  
  18.   
  19.     // Constructors   
  20.   
  21.     /** default constructor */  
  22.     public Userinfo() {  
  23.     }  
  24.   
  25.     /** minimal constructor */  
  26.     public Userinfo(String id, String username, String password,  
  27.             String authLimit) {  
  28.         this.id = id;  
  29.         this.username = username;  
  30.         this.password = password;  
  31.         this.authLimit = authLimit;  
  32.     }  
  33.   
  34.     /** full constructor */  
  35.     public Userinfo(String id, String username, String password,  
  36.             String authLimit, String registerTime, String createTime,  
  37.             String remarks) {  
  38.         this.id = id;  
  39.         this.username = username;  
  40.         this.password = password;  
  41.         this.authLimit = authLimit;  
  42.         this.registerTime = registerTime;  
  43.         this.createTime = createTime;  
  44.         this.remarks = remarks;  
  45.     }  
  46.   
  47.     // Property accessors   
  48.   
  49.     public String getId() {  
  50.         return this.id;  
  51.     }  
  52.   
  53.     public void setId(String id) {  
  54.         this.id = id;  
  55.     }  
  56.   
  57.     public String getUsername() {  
  58.         return this.username;  
  59.     }  
  60.   
  61.     public void setUsername(String username) {  
  62.         this.username = username;  
  63.     }  
  64.   
  65.     public String getPassword() {  
  66.         return this.password;  
  67.     }  
  68.   
  69.     public void setPassword(String password) {  
  70.         this.password = password;  
  71.     }  
  72.   
  73.     public String getAuthLimit() {  
  74.         return this.authLimit;  
  75.     }  
  76.   
  77.     public void setAuthLimit(String authLimit) {  
  78.         this.authLimit = authLimit;  
  79.     }  
  80.   
  81.     public String getRegisterTime() {  
  82.         return this.registerTime;  
  83.     }  
  84.   
  85.     public void setRegisterTime(String registerTime) {  
  86.         this.registerTime = registerTime;  
  87.     }  
  88.   
  89.     public String getCreateTime() {  
  90.         return this.createTime;  
  91.     }  
  92.   
  93.     public void setCreateTime(String createTime) {  
  94.         this.createTime = createTime;  
  95.     }  
  96.   
  97.     public String getRemarks() {  
  98.         return this.remarks;  
  99.     }  
  100.   
  101.     public void setRemarks(String remarks) {  
  102.         this.remarks = remarks;  
  103.     }  
  104.   
  105. }  
package edu.njupt.zhb.bean;

/**
 * Userinfo entity. @author MyEclipse Persistence Tools
 */

public class Userinfo implements java.io.Serializable {

	// Fields

	private String id;
	private String username;
	private String password;
	private String authLimit;
	private String registerTime;
	private String createTime;
	private String remarks;

	// Constructors

	/** default constructor */
	public Userinfo() {
	}

	/** minimal constructor */
	public Userinfo(String id, String username, String password,
			String authLimit) {
		this.id = id;
		this.username = username;
		this.password = password;
		this.authLimit = authLimit;
	}

	/** full constructor */
	public Userinfo(String id, String username, String password,
			String authLimit, String registerTime, String createTime,
			String remarks) {
		this.id = id;
		this.username = username;
		this.password = password;
		this.authLimit = authLimit;
		this.registerTime = registerTime;
		this.createTime = createTime;
		this.remarks = remarks;
	}

	// Property accessors

	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getUsername() {
		return this.username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getAuthLimit() {
		return this.authLimit;
	}

	public void setAuthLimit(String authLimit) {
		this.authLimit = authLimit;
	}

	public String getRegisterTime() {
		return this.registerTime;
	}

	public void setRegisterTime(String registerTime) {
		this.registerTime = registerTime;
	}

	public String getCreateTime() {
		return this.createTime;
	}

	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}

	public String getRemarks() {
		return this.remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

}


3.新建一个UserInfoService接口

  1. /* 
  2.  * $filename: VideoInfoService.java,v $ 
  3.  * $Date: 2014-1-2  $ 
  4.  * Copyright (C) ZhengHaibo, Inc. All rights reserved. 
  5.  * This software is Made by Zhenghaibo. 
  6.  */  
  7. package edu.njupt.zhb.service;  
  8.   
  9. import edu.njupt.zhb.bean.Userinfo;  
  10.   
  11. /* 
  12.  *@author: ZhengHaibo   
  13.  *web:     http://blog.csdn.net/nuptboyzhb 
  14.  *GitHub   https://github.com/nuptboyzhb 
  15.  *mail:    zhb931706659@126.com 
  16.  *2014-1-2  Nanjing,njupt,China 
  17.  */  
  18. public interface UserInfoService {  
  19.   
  20.     String getUserInfoList(int page, int rows);  
  21.   
  22.     String addUser(Userinfo userinfo);  
  23.   
  24.     String deleteUser(String userId);  
  25.   
  26.     String editUser(Userinfo userinfo);  
  27.   
  28.     Userinfo getUserInfoByName(String username);  
  29.   
  30.   
  31. }  
/*
 * $filename: VideoInfoService.java,v $
 * $Date: 2014-1-2  $
 * Copyright (C) ZhengHaibo, Inc. All rights reserved.
 * This software is Made by Zhenghaibo.
 */
package edu.njupt.zhb.service;

import edu.njupt.zhb.bean.Userinfo;

/*
 *@author: ZhengHaibo  
 *web:     http://blog.csdn.net/nuptboyzhb
 *GitHub   https://github.com/nuptboyzhb
 *mail:    zhb931706659@126.com
 *2014-1-2  Nanjing,njupt,China
 */
public interface UserInfoService {

	String getUserInfoList(int page, int rows);

	String addUser(Userinfo userinfo);

	String deleteUser(String userId);

	String editUser(Userinfo userinfo);

	Userinfo getUserInfoByName(String username);


}


4.新建一个UserInfoServiceImpl类

  1. /* 
  2.  * $filename: VideoInfoServiceImpl.java,v $ 
  3.  * $Date: 2014-1-2  $ 
  4.  * Copyright (C) ZhengHaibo, Inc. All rights reserved. 
  5.  * This software is Made by Zhenghaibo. 
  6.  */  
  7. package edu.njupt.zhb.service.impl;  
  8.   
  9. import java.util.ArrayList;  
  10. import java.util.List;  
  11.   
  12. import net.sf.json.JSONObject;  
  13.   
  14. import edu.njupt.zhb.bean.Userinfo;  
  15. import edu.njupt.zhb.dao.BaseDao;  
  16. import edu.njupt.zhb.service.UserInfoService;  
  17. import edu.njupt.zhb.utils.DataGrid;  
  18. import edu.njupt.zhb.utils.Tips;  
  19. import edu.njupt.zhb.view.ViewUser;  
  20.   
  21. /* 
  22.  *@author: ZhengHaibo   
  23.  *web:     http://blog.csdn.net/nuptboyzhb 
  24.  *GitHub   https://github.com/nuptboyzhb 
  25.  *mail:    zhb931706659@126.com 
  26.  *2014-1-2  Nanjing,njupt,China 
  27.  */  
  28. public class UserInfoServiceImpl implements UserInfoService{  
  29.     private BaseDao<Userinfo> userinfoBaseDao;  
  30.     public BaseDao<Userinfo> getUserBaseDao() {  
  31.         return userinfoBaseDao;  
  32.     }  
  33.     public void setUserBaseDao(BaseDao<Userinfo> userinfoBaseDao) {  
  34.         this.userinfoBaseDao = userinfoBaseDao;  
  35.     }  
  36.     @Override  
  37.     public String getUserInfoList(int page, int rows) {  
  38.         // TODO Auto-generated method stub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值