Java Web之Struts写注册登录

数据库(一个user表,有点简陋只有username和password两个属性)
Java Web之Struts写注册登录
文件结构和用到的一些架包
Java Web之Struts写注册登录
我写方法是用三层架构,各部分负责不同的功能:
下面以注册操作为例子:
register.jsp

<html>
<head>
    <title>Title</title>
</head>
<body>
<h1 style="color: yellow;">注册</h1>
<hr>
<font style="color: red;font-size: 25px;"><s:property value="msg"></s:property> </font>
<form action="${pageContext.request.contextPath}/RegisterAction" method="post">
    用户名:<input type="text" name="username"><br>
    密码: <input type="text" name="password"><br>
    <input type="submit" value="注册">
</form>
</body>
</html>

RegisterAction

package com.fang.web;

import com.fang.domain.User;
import com.fang.service.RegisterService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class RegisterAction extends ActionSupport implements ModelDriven<User> {
    public User user = new User();

    @Override
    public String execute() throws Exception {

        RegisterService registerService = new RegisterService();
        boolean success = registerService.insertUser(user);
        if(success){//判断是否插入成功
            return "success";
        }else{
            ActionContext.getContext().put("msg","用户名重复请重新输入");
            return "error";
        }
    }

    @Override
    public User getModel() {
        return user;
    }
}

RegisterService

package com.fang.service;

import com.fang.dao.UserDao;
import com.fang.domain.User;

import java.sql.SQLException;

public class RegisterService {

    public boolean insertUser(User user) throws SQLException {

        UserDao userDao = new UserDao();
        if(userDao.isExist(user) == null){//如果数据库中没有数据,则插入
            if(userDao.insertUser(user) > 0){//判断插入是否为失败
                return true;//>0表示插入成功,返回true
            }else{
                return false;
            }

        }else{
            return false;//用户名重复返回false
        }

    }

}

UserDao

package com.fang.dao;

import com.fang.domain.User;
import com.yl.lain.utils.C3p0DataSourceUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import java.sql.SQLException;

public class UserDao {

    public User findUser(User user) throws SQLException {//用户登录匹配数据库中是否有用户
        QueryRunner queryRunner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
        String sql = "select * from user where username=? and password=?";
        User u = queryRunner.query(sql,new BeanHandler<User>(User.class),user.getUsername(),user.getPassword());
        return u;

    }

    public  User isExist(User user) throws SQLException {//判断用户名是否重复,是否已经注册
        QueryRunner queryRunner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
        String sql = "select * from user where username=?";
        return queryRunner.query(sql,new BeanHandler<User>(User.class),user.getUsername());
}

    public int insertUser(User user) throws SQLException {//注册操作,插入用户
        QueryRunner queryRunner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
        String sql = "insert into user value(?,?)";
        System.err.println(sql);
//        Object[] params = {user.getUsername(),user.getPassword()};
        int i = queryRunner.update(sql,user.getUsername(),user.getPassword());
        return i;
    }

}

User

package com.fang.domain;

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

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

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

运行效果
Java Web之Struts写注册登录
Java Web之Struts写注册登录
Java Web之Struts写注册登录
Java Web之Struts写注册登录