用户注册

用户注册

   使用servlet+jdbc+mysql完成

代码部分分为

    页面HTML代码 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>表单</title>
    </head>
    <body>
        <form  action="http://localhost:8080/webfive/regist" method="post">
            <table width="330" height="300" bgcolor="white">
                <th>
                    <font >用户登录</font>
                </th>
                <tr>
                    <td align="center">身份</td>
                    <td>
                        <select>
                            <option selected="selected">学生</option>
                            <option>老师</option>
                            <option>管理人员</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td align="center">学号</td>
                    <td><input name="username"></td>
                </tr>
                <tr>
                    <td align="center">密码</td>
                    <td><input name="password"></td>
                </tr>
                <tr>
                    <td align="center">验证码</td>
                    <td><input></td>
                </tr>
                <tr>
                    <td><input align="right" type="submit" value="注册"></td>
                    <td><input type="button" value="忘记密码"></td>
                </tr>
            </table>
        </form>
    </body>
</html>

   XMLServlet代码 

  <servlet-mapping>
    <servlet-name>RegistServlet</servlet-name>
    <url-pattern>/regist</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>MsgServlet</display-name>
    <servlet-name>MsgServlet</servlet-name>
    <servlet-class>com.feizhuwebthree.MsgServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MsgServlet</servlet-name>
    <url-pattern>/msg</url-pattern>
  </servlet-mapping>

   RegisServlet类代码  

package com.feizhuwebthree;

import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import com.feichu.domain.User;
import com.feizhuweb_service.UserService;

/**
 * 用户注册
 */
public class RegistServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码
        request.setCharacterEncoding("utf-8");   
        
        //封装数据
        //创建一个 user  调用user.setXxx()一个个封装不推荐
        //使用beanutils封装对象
        User user =new User();
        try {
            BeanUtils.populate(user, request.getParameterMap());
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException();
        }
        
        //调用userservice.regist(user) 返回值是int
           int i;
        try {
            i = new UserService().regist(user);
            //判断int值 讲信息请求转发到msgservlet
               if(i==1) {
                   request.setAttribute("msg","增加成功");
                   request.getRequestDispatcher("/msg").forward(request, response);
               }else {
                   request.setAttribute("msg","增加失败");
                   request.getRequestDispatcher("/msg").forward(request, response);
               }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        doGet(request, response);
    }

}

   MsgServlet类代码 

package com.feizhuwebthree;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 展示信息
 */
public class MsgServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置编码
         response.setContentType("text/html;charset=utf-8");
    //从request域种获取内容msg
        
         String s=(String) request.getAttribute("msg");
    //将信息打印到页面上
        
        response.getWriter().print(s);
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        doGet(request, response);
    }

}

   User类代码

package com.feichu.domain;

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;
    }
    
    
}

  UserDao代码

package com.feizhu_dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;

import com.feichu.domain.User;

public class UserDao {

    /**
     * 登录
     *
     * @param username
     *            用户名
     * @param password
     *            密码
     * @return 返回用户
     */
    // @Test
    public User getUserByUsernameAndPwd(String username, String password) throws Exception {

        User user = null;
        // 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?characterEncoding=utf8&useSSL=false", "root", "root");
        // 编写sql
        String sql = "select * from user where username=? and password=?";
        // 创建语句执行者
        PreparedStatement st = conn.prepareStatement(sql);
        // 设置参数
        st.setString(1, username);
        st.setString(2, password);
        // 执行语句
        ResultSet rs = st.executeQuery();
        if (rs.next()) {
               user=new User();
               user.setUsername(rs.getString("username"));
               user.setPassword(rs.getString("password"));
        }
        // 释放资源
        rs.close();
        st.close();
        conn.close();
        return user;
    }
   /**
    * 添加用户
    * @param user  用户信息
    * @return
 * @throws Exception
    */
    public int addUser(User user) throws Exception {
        // 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?characterEncoding=utf8&useSSL=false", "root", "root");
        //编写sql
        String  sql="insert into user(username,password) values(?,?)";
        //创建语句执行者
        PreparedStatement st = conn.prepareStatement(sql);
        // 设置参数
        st.setString(1, user.getUsername());
        st.setString(2,user.getPassword());
        // 执行语句
        int rs = st.executeUpdate();
        
        st.close();
        conn.close();
        return rs;
    }

}

效果图片