jsp实现登录功能并且将数据传到数据库
2017-10-05 18:14
507 查看
1.新建一个Dynamic Web Project项目,导入要用的jar包,整体的框架如图所示:
2.新建一个数据库,并且创建一个表和几个字段。
3.UserDao.java代码:
4.UserDaoImpl.java代码:
5.User.java代码:
6.UserService.java代码:
7.UserServiceImpl.java代码:
8.RegistServlet.java代码:
9.JdbcUtils.java代码:
10.UUIDUtils.java代码:
11.c3p0-config.xml代码:
12.web.xml代码:
13.regist.jsp代码:
14.在浏览器输入http://localhost:8080/regist/regist.jsp运行得到:
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 { @Override public 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 { @Override public 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运行得到:
相关文章推荐
- jsp连接数据库实现用户登录功能
- 笔记 Java web实现用户登录、数据库数据查询、数据删除等功能
- jsp连接数据库实现用户登录功能
- jsp中将数据库中的数据导入到excel的实现
- 实现jsp页面二级下拉框联动,实时读取数据库数据
- 从数据库中提出数据,实现图片上一页、下一页的翻页功能?
- jsp中将数据库中的数据导入到excel的实现
- 不仅拥有XmlDocument一样简单的XML操作方法,并且实现数据文件安全存储功能——XmlEDocument
- struts2如何取得数据库中的数据并且传到页面
- 【原创】SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- jsp页面某项数据太长用特殊符号代替和全选并删除功能的实现
- C# 将Excel数据导入到数据库(实现SQL2000企业管理器导入EXCEL功能)
- jsp中将数据库中的数据导入到excel的实现
- 一款功能强大并且可以结合html5实现本地存储的数据库 – SQLite学习文档
- DIV+AJAX+JS+JSP实现页面拖动并且保存布局COOKIE值到数据库
- AutoCompleteExtender实现自动完成功能(从数据库中读取数据 )
- jsp从数据库取得数据作为下拉菜单选项的实现
- 在一个jsp页面实现二级下拉框联动,实时读取数据库数据(用javascript实现)
- 用Ajax实现多级联动下拉列表For JSP(无限级别,JSON传输数据,含全国地区数据库
- jsp中将数据库中的数据导入到excel的实现