用javaweb学到的知识简单的做个简单的注册登录

先看下成果图:

 

再来说说,用到哪些东西。

先是用了struts2来写一个action用来实现管理员页面的各种功能,代码如下:

package cn.action;

import beans.user;

import beans.userDAO;
import java.util.*;

import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;

public class UserAction extends ActionSupport {
	private user user;
	private userDAO userdao=new userDAO();

	public void setUser(user user) {
		this.user = user;
	}

	public user getUser(){
		return user;
	}
	
	//用户登录Action的方法
		public String userLogin() throws Exception{
			String forward=null;
			user user2=userdao.find(user);
			if(user2!=null){			
				if("abc".equals(user2.getUsername().trim())) {//这里的user2.getUsername()会带有空格,所以要用trim()去除,		
					forward="manager";                        //不然会报错
				}else {
					forward="success";
				}				
			}else{
				forward="failure";
				}
			return forward;
		}
		//用户注册Action的方法
		public String userRegister() throws Exception{
			String forward="error";
			int flag=0;
			user user2=(userdao.find(user));
			if(user2!=null){forward="error_user";}
			else{
				flag=userdao.create(user);
				if(flag==1){forward="success";}
			}
			return forward;
		}
		//查询所有用户
		public String userAll() throws Exception{
			HttpServletRequest request=ServletActionContext.getRequest();
			 List<user> user = new ArrayList(); 
			 user = userdao.findAll();
			 request.setAttribute("list", user);
			 return "all";			   
		}
		//用户删除
		public String userDelete()throws Exception{
			String forward=null;
			user user2=userdao.find1(user);
			if(user2!=null){
				try {
					userdao.remove(user);
					forward="success";
				}catch (Exception e) {
					forward="failure";
				}
			}else{
				forward="failure";
			}			
			return forward;
		}
		//用户修改
		public String userUpdate()throws Exception{
			String forward=null;
			user user2=userdao.find1(user);
			if(user2!=null){
				try {
					userdao.update(user);
					forward="success";
				}catch (Exception e) {
					forward="failure";
				}
			}else{
				forward="failure";
			}			
			return forward;
		}
		//查询单个用户
		public String userFind()throws Exception{
			String forward=null;
			HttpServletRequest request=ServletActionContext.getRequest();//设置request
			user user2=userdao.find2(user);			
			if(user2!=null){
				try {
					forward="success";
					request.setAttribute("userpwd", user2.getUserpwd());//利用requset将数据库中的值赋值给userpwd
				}catch (Exception e) {                                   //这样,才能传递给jsp页面
					forward="failure";
				}
			}else{
				forward="failure";
			}			
			return forward;			
		}
}

接着是创建对象类:

package beans;

public class user {
	private String username;
	private String userpwd;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserpwd() {
		return userpwd;
	}
	public void setUserpwd(String userpwd) {
		this.userpwd = userpwd;
	}
	
}

 然后是数据库连接类:

package beans;

import java.sql.*;
public class DbConnect {
	private static String userName = "sa"; // 默认用户名
	private static String userPwd = "123456"; // 密码				
	private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	//加载JDBC驱动
	private	static String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zero";	

	public static Connection getConnect() throws SQLException,ClassNotFoundException{
		Connection dbConn = null;
	try {
		Class.forName(driverName);
		dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		return dbConn;
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
	}
	public static void closeDB(Connection con,PreparedStatement pstmt,ResultSet rs) {
		try {
			if(rs!=null) rs.close();
			if(pstmt!=null) pstmt.close();
			if(con!=null) con.close();
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

再来就是关于DAO的部分:

这是接口

package beans;

import java.util.List;

public interface InterUser {
	public abstract int create(user user) throws Exception;//添加,也就是注册用户
	public abstract void remove(user user) throws Exception;//删除用户
	public abstract List<user> findAll() throws Exception;//列出所有用户
	public abstract void update(user user) throws Exception;//修改用户
	public abstract user find(user user) throws Exception;//查询用户,实际就是登录
	public abstract user find1(user user) throws Exception;//查询用户名
	public abstract user find2(user user) throws Exception;//通过查询用户名,得知密码
}

这是实现接口

package beans;

import java.util.*;

import java.sql.*;
import beans.DbConnect;
import beans.user;

public class userDAO implements InterUser {
	protected static final String FIELDS_INSERT =" uname,upassword";
	protected static String INSERT_SQL="insert into user_b ("+FIELDS_INSERT+")"+"values(?,?)";
	protected static  String UPDATE_SQL="update user_b set "+" uname=?,upassword=? where uname=?";
	protected static  String DELETE_SQL="delete from user_b where uname=?";
	protected static  String SELECT_SQL="select "+FIELDS_INSERT+" from user_b where (uname=? and upassword=?)";
	protected static  String SELECT_SQL2="select "+FIELDS_INSERT+" from user_b where uname=?";
	
	public  int create(user user) throws Exception{//添加记录的方法,用户注册
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		try {
			con=DbConnect.getConnect();
			pstmt=con.prepareStatement(INSERT_SQL);
			pstmt.setString(1, user.getUsername());
			pstmt.setString(2, user.getUserpwd());
			pstmt.executeUpdate();
		}catch (Exception e) {			
		}finally {
			DbConnect.closeDB(con, pstmt, rs);
		}
		return 1;
	}
	
	public user find(user user) throws Exception{//用户登录
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		user user2=null;

		try {
			con=DbConnect.getConnect();
			pstmt=con.prepareStatement(SELECT_SQL);
			pstmt.setString(1, user.getUsername());
			pstmt.setString(2, user.getUserpwd());
			rs=pstmt.executeQuery();
			if(rs.next()) {
				user2=new user();
				user2.setUsername(rs.getString(1));
				user2.setUserpwd(rs.getString(2));
			}
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DbConnect.closeDB(con, pstmt, rs);
		}
		return user2;
	}
	
	public void remove(user user) throws Exception {//用户删除
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		user user2=new user();
		try {
			con=DbConnect.getConnect();
			pstmt=con.prepareStatement(DELETE_SQL);
			pstmt.setString(1, user.getUsername());
			pstmt.executeUpdate();
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DbConnect.closeDB(con, pstmt, rs);
		}
		
	}

	public List<user> findAll() throws Exception {//用户全部
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		List<user> user=new ArrayList<user>();
		con=DbConnect.getConnect();
		pstmt=con.prepareStatement("select * from user_b");
		rs=pstmt.executeQuery();
		while(rs.next()) {
			user user2=new user();
			user2.setUsername(rs.getString(1));
			user2.setUserpwd(rs.getString(2));
			user.add(user2);
		}
			DbConnect.closeDB(con, pstmt, rs);
		
		return user;
	}
	
	public user find1(user user) throws Exception{//查询用户名
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		user user2=null;

		try {
			con=DbConnect.getConnect();
			pstmt=con.prepareStatement(SELECT_SQL2);
			pstmt.setString(1, user.getUsername());
			rs=pstmt.executeQuery();
			if(rs.next()) {
				user2=new user();
				user2.setUsername(rs.getString(1));
			}
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DbConnect.closeDB(con, pstmt, rs);
		}
		return user2;
	}
	
	public  user find2(user user) throws Exception{
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		user user2=null;

		try {
			con=DbConnect.getConnect();
			pstmt=con.prepareStatement(SELECT_SQL2);
			pstmt.setString(1, user.getUsername());
			rs=pstmt.executeQuery();
			if(rs.next()) {
				user2=new user();
				user2.setUsername(rs.getString(1));
				user2.setUserpwd(rs.getString(2));
			}
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DbConnect.closeDB(con, pstmt, rs);
		}
		return user2;
	}
	

	public void update(user user) throws Exception {//用户修改
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		try {
			con=DbConnect.getConnect();
			pstmt=con.prepareStatement(UPDATE_SQL);
			pstmt.setString(1, user.getUsername());
			pstmt.setString(2, user.getUserpwd());
			pstmt.setString(3, user.getUsername());
			int rowCount=pstmt.executeUpdate();
				if(rowCount==0) {
					throw new Exception("Update Error:Usesr name:" + user.getUsername());
				}
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DbConnect.closeDB(con, pstmt, rs);
		}


	}

}

关于XML的编写,其实可以用到通配符的,但是我是写完后才想到,就懒得改了。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
	 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 	"http://struts.apache.org/dtds/struts-2.3.dtd" >

<struts>
<constant value="false" name="struts.enable.DynamicMethodInvocation"/>
<constant value="true" name="struts.devMode"/>
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.convention.action.mapallmatches" value="true"/>


<package name="struts2" namespace="/" extends="struts-default">

<action name="register" class="cn.action.UserAction" method="userRegister">
<result name="success">/register_success.jsp</result>
<result name="error">/register_failure.jsp</result>
<result name="error_user">/register_failure_user.jsp</result>
</action>

<action name="logincheck" class="cn.action.UserAction" method="userLogin">
<result name="success">/login_success.jsp</result>
<result name="failure">/loginfailure.jsp</result>
<result name="manager">/managerIndex.jsp</result>
</action>

<action name="all" class="cn.action.UserAction" method="userAll">
<result name="all">/Userall.jsp</result>
</action>

<action name="delete" class="cn.action.UserAction" method="userDelete">
<result name="success">/delete_s.jsp</result>
<result name="failure">/delete_f.jsp</result>
</action>

<action name="update" class="cn.action.UserAction" method="userUpdate">
<result name="success">/update_s.jsp</result>
<result name="failure">/update_f.jsp</result>
</action>

<action name="find" class="cn.action.UserAction" method="userFind">
<result name="success">/find_success.jsp</result>
<result name="failure">/find_f.jsp</result>
</action>

</package>




</struts>

 剩下的就是JSP页面的设计了,这个太多了,已经上传到资源库,如有需要的可以去下载,谢谢观看。

链接:https://download.csdn.net/download/weixin_42059543/10819099

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值