jsp实现登录功能并且将数据传到数据库

来源:互联网 发布:装网络摄像头怎么安装 编辑:程序博客网 时间:2024/06/05 00:07

1.新建一个Dynamic Web Project项目,导入要用的jar包,整体的框架如图所示:




2.新建一个数据库,并且创建一个表和几个字段。



3.UserDao.java代码:

package dao;import java.sql.SQLException;import domain.User;public interface UserDao {void regist(User user) throws SQLException;}

4.UserDaoImpl.java代码:

package dao;import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;import utils.JdbcUtils;import domain.User;public class UserDaoImpl implements UserDao {@Overridepublic void regist(User user) throws SQLException {QueryRunner queryRunner = new QueryRunner(JdbcUtils.getDataSource());String sql = "insert into user values (?,?,?,?,?,?,?)";Object[] params = { user.getUid(), user.getUsername(),user.getPassword(), user.getNickname(), user.getEmail(),user.getState(), user.getCode() };queryRunner.update(sql, params);}}

5.User.java代码:

package domain;public class User {private Integer uid;private String username;private String password;private String nickname;private String email;private Integer state;private String code;public Integer getUid() {return uid;}public void setUid(Integer uid) {this.uid = uid;}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 String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Integer getState() {return state;}public void setState(Integer state) {this.state = state;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}}

6.UserService.java代码:

package service;import java.sql.SQLException;import domain.User;public interface UserService {void regist(User user) throws SQLException;}

7.UserServiceImpl.java代码:

package service;import java.sql.SQLException;import dao.UserDao;import dao.UserDaoImpl;import domain.User;public class UserServiceImpl implements UserService {@Overridepublic void regist(User user) throws SQLException {UserDao userDao = new UserDaoImpl();userDao.regist(user);}}

8.RegistServlet.java代码:

package servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.UserService;import service.UserServiceImpl;import utils.UUIDUtils;import domain.User;public class RegistServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {try {request.setCharacterEncoding("utf-8"); String username = request.getParameter("username");String password = request.getParameter("password");String nickname = request.getParameter("nickname");String email = request.getParameter("email");User user = new User();user.setUsername(username);user.setPassword(password);user.setNickname(nickname);user.setEmail(email);user.setState(0);String code = UUIDUtils.getUUID() + UUIDUtils.getUUID();user.setCode(code);UserService userService = new UserServiceImpl();userService.regist(user);} catch (Exception e) {e.printStackTrace();throw new RuntimeException();}}}

9.JdbcUtils.java代码:

package utils;import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class JdbcUtils {private static DataSource ds = new ComboPooledDataSource();private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();public static DataSource getDataSource() {return ds;}public static Connection getConnection() throws SQLException {Connection con = tl.get();if (con != null)return con;return ds.getConnection();}public static void beginTransaction() throws SQLException {Connection con = tl.get();if (con != null)throw new SQLException("已经开启了事务,不能重复开启!");con = ds.getConnection();con.setAutoCommit(false);tl.set(con);}public static void commitTransaction() throws SQLException {Connection con = tl.get();// 获取当前线程的事务连接if (con == null)throw new SQLException("没有事务不能提交!");con.commit();con.close();con = null;tl.remove();}public static void rollbackTransaction() throws SQLException {Connection con = tl.get();if (con == null)throw new SQLException("没有事务不能回滚!");con.rollback();con.close();con = null;tl.remove();}public static void releaseConnection(Connection connection)throws SQLException {Connection con = tl.get();if (connection != con) {if (connection != null && !connection.isClosed()) {connection.close();}}}}

10.UUIDUtils.java代码:

package utils;import java.util.UUID;public class UUIDUtils {public static String getUUID() {return UUID.randomUUID().toString().replace("-", "");}}

11.c3p0-config.xml代码:

<c3p0-config>      <default-config>          <property name="jdbcUrl">jdbc:mysql://localhost:3306/regist_web          </property>          <property name="driverClass">com.mysql.jdbc.Driver</property>          <property name="user">root</property>          <property name="password">root</property>            <property name="checkoutTimeout">30000</property>          <property name="idleConnectionTestPeriod">30</property>          <property name="initialPoolSize">10</property>          <property name="maxIdleTime">30</property>          <property name="maxPoolSize">100</property>          <property name="minPoolSize">10</property>          <property name="maxStatements">200</property>      </default-config>  </c3p0-config>  

12.web.xml代码:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID" version="3.1"><display-name>regist</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>RegistServlet</servlet-name><servlet-class>servlet.RegistServlet</servlet-class></servlet><servlet-mapping><servlet-name>RegistServlet</servlet-name><url-pattern>/RegistServlet</url-pattern></servlet-mapping></web-app>

13.regist.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><h1>用户注册的界面</h1><form action="RegistServlet" method="post"><table width="600" border="1"><tr><td>用户名:</td><td><input type="text" name="username"/></td></tr><tr><td>密码:</td><td><input type="password" name="password"/></td></tr><tr><td>昵称:</td><td><input type="text" name="nickname"/></td></tr><tr><td>邮箱:</td><td><input type="text" name="email"/></td></tr><tr><td colspan="2"><input type="submit" value="注册"/></td></tr></table></form></body></html>

14.在浏览器输入http://localhost:8080/regist/regist.jsp运行得到:



阅读全文
0 0
原创粉丝点击