下载地址:http://download.csdn.net/detail/qq_33599520/9777172
项目结构图:
代码:
package com.mstf.action;
import java.util.List;
import com.mstf.entiity.User;
import com.mstf.service.UserBiz;
public class UserAction { // 控制器
private UserBiz userBiz;
private User user;
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
List users;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users = users;
}
// 用户登录的方法
public String login(){
userBiz = new UserBiz();
if(userBiz.validateUser(user))
return "welcome";
else{
msg = "请重新登陆";
return "error";
}
}
// 用户注册的方法
public String regist(){
userBiz = new UserBiz();
if(userBiz.registUser(user))
return "sucess";
else{
msg = "注册失败,请重新登陆";
return "fall";
}
}
// 显示所有注册用户的方法
public String showUsers(){
userBiz = new UserBiz();
users = userBiz.findAllUsers();
return "welcome";
}
}
package com.mstf.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mstf.db.DbHelper;
import com.mstf.entiity.User;
public class UserDAO { // 用户的dao
// 用户登录
public boolean checkUser(User user){
Connection conn = DbHelper.getConnection();
String sql = "select * from admin where `userName`=? and `passWord`=?";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassWord());
ResultSet rs = pstmt.executeQuery();
if(rs.next())
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
// 用户注册
public boolean saveUser(User user){
Connection conn = DbHelper.getConnection();
String sql = "insert into admin values(null,?,?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassWord());
int num = pstmt.executeUpdate();
if(num>0)
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
// 显示所有注册用户
public List findAllUsers(){
Connection conn = DbHelper.getConnection();
String sql = "select * from admin";
List users = new ArrayList();
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
user.setUserName(rs.getString("userName"));
user.setPassWord(rs.getString("passWord"));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
}
package com.mstf.db;
import java.sql.Connection;
import java.sql.DriverManager;
public class DbHelper {
private static String url = "jdbc:mysql://localhost:3306/test"; //数据库地址
private static String userName = "root"; //数据库用户名
private static String passWord = "root"; //数据库密码
private static Connection conn;
private DbHelper(){
}
public static Connection getConnection(){
if(null == conn){
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, userName, passWord);
} catch (Exception e) {
e.printStackTrace();
}
}
return conn;
}
public static void main(String[] args) { //测试数据库是否连通
System.err.println(getConnection());
}
}
package com.mstf.entiity;
public class User { // 实体类
private int id;
private String userName;
private String passWord;
public int getId() {
return id;
}
public void setId(int 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 User(){
}
}
package com.mstf.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginFilter extends HttpServlet implements Filter { // 登录过滤器
private static final long serialVersionUID = 1L;
public void destroy() {
}
public void doFilter(ServletRequest srq, ServletResponse srp, FilterChain filterChain) throws IOException, ServletException{
HttpServletRequest request = (HttpServletRequest) srq;
HttpServletResponse response = (HttpServletResponse) srp;
HttpSession session = request.getSession();
String url=request.getServletPath();
String contextPath=request.getContextPath();
if(url.equals("")) url+="/";
if((url.startsWith("/")&&!url.startsWith("/index.jsp"))){//若访问后台资源 过滤到login
String userName=(String)session.getAttribute("userName");
if(userName==null){//转入管理员登陆页面
response.sendRedirect(contextPath+"/index.jsp");
return;
}
}
filterChain.doFilter(srq, srp);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
package com.mstf.service;
import java.util.List;
import com.mstf.dao.UserDAO;
import com.mstf.entiity.User;
public class UserBiz { // 业务层(服务层/逻辑处理层)
private UserDAO userDao;
// 验证用户登录是否合法
public boolean validateUser(User user){
userDao = new UserDAO();
// 业务层调用DAO的具体方法
return userDao.checkUser(user);
}
// 用户用户注册
public boolean registUser(User user){
userDao = new UserDAO();
return userDao.saveUser(user);
}
// 获得所有注册用户
public List findAllUsers(){
userDao = new UserDAO();
return userDao.findAllUsers();
}
}
/p>
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
showUsers
/error.jsp
/sucess.jsp
/fall.jsp
/welcome.jsp
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
index.jsp
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
loginFilter
com.mstf.filter.LoginFilter
loginFilter
/error.jsp
/fall.jsp
/sucess.jsp
/welcome.jsp
pageEncoding="UTF-8"%>
登录失败用户名或密码错误!请重新登录。
pageEncoding="UTF-8"%>
注册失败很遗憾,注册失败!
pageEncoding="UTF-8"%>
后台管理帐号: | |
密码: | |
pageEncoding="UTF-8"%>
用户注册帐号: | |
输入密码: | |
pageEncoding="UTF-8"%>
注册成功恭喜您,${user.userName }注册成功!
pageEncoding="UTF-8"%>
欢迎登录欢迎${user.userName }登录成功!
已经注册的用户:
ID: | 用户名: | 密码: |
${user.id } | ${user.userName } | ${user.passWord } |
下载地址:http://download.csdn.net/detail/qq_33599520/9777172