使用c3p0与Dbutils开发用户注册功能:

   用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息  

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="css/login.css" />
<link rel="stylesheet" href="css/head.css" />
<link rel="stylesheet" type="text/css" href="css/login.css" />
</head> <body>
<div class="dvhead">
<div class="dvlogo"><a href="index.html">你问我答</a></div>
<div class="dvsearch">10秒钟注册账号,找到你的同学</div>
<div class="dvreg">
已有账号,立即&nbsp;<a href="login.html">登录</a>
</div>
</div>
<section class="sec">
<form action="${pageContext.request.contextPath }/UserAction_register" method="post">
<div class="register-box">
<label for="username" class="username_label">
用 户 名
<input maxlength="20" name="username" type="text"
placeholder="您的用户名和登录名" />
</label>
<div class="tips"> </div>
</div>
<div class="register-box">
<label for="username" class="other_label">
设 置 密 码
<input maxlength="20" type="password" name="password"
placeholder="建议至少使用两种字符组合" />
</label>
<div class="tips"> </div>
</div>
<div class="register-box">
<label for="username" class="other_label">
确 认 密 码
<input maxlength="20" type="password" placeholder="请再次输入密码" />
</label>
<div class="tips"> </div>
</div>
<div class="register-box">
<label for="username" class="username_label">
真实姓名
<input maxlength="20" name="name" type="text"
placeholder="您的真实姓名" />
</label>
<div class="tips">
</div>
</div> <div class="register-box">
<label for="username" class="username_label">
邮箱
<input maxlength="20" name="email" type="text"
placeholder="您的邮箱" />
</label>
<div class="tips">
</div>
</div>
<div class="register-box">
<label for="username" class="username_label">
手机号
<input maxlength="20" name="telephone" type="text"
placeholder="您的手机号" />
</label>
<div class="tips">
</div>
</div> <div class="arguement">
<input type="checkbox" id="xieyi" />
阅读并同意
<a href="javascript:void(0)">《错题用户注册协议》</a>
<a href="login.html">已有账号,立即登录</a>
<div class="tips">
</div>
</div>
<div class="submit_btn">
<button type="submit" id="submit_btn">
立 即 注 册
</button>
</div>
</form>
</section>
<script src="js/index.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

register.jsp

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts> <constant name="struts.devMode" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <package name="forum" namespace="/" extends="struts-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="UserAction_*" class="com.Gary.web.UserAction" method="{1}">
<result name="toLogin" type="redirect">/login.html</result>
</action>
</package> </struts>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config> <default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///hibernatest</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config> <named-config name="oracel">
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="jdbcUrl">jdbc:oracle:thin:@//192.168.40.128/orcl</property>
<property name="user">scott</property>
<property name="password">scott</property>
</named-config> </c3p0-config>

c3p0-config.xml

package com.Gary.dao;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;

import com.Gary.domain.User;
import com.yl.lain.utils.C3p0DataSourceUtils; public class UserDao { public void addUser(User user) throws SQLException {
System.out.println("456");
QueryRunner runner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
String sql = "insert into user values(?,?,?,?,?,?)";
runner.update(sql,user.getId(),user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),user.getTelephone());
} }

UserDao.java

package com.Gary.domain;

public class User {

    private String id;
private String username;
private String password;
private String name;
private String email;
private String telephone; public String getId() {
return id;
}
public void setId(String 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;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
} }

User.java

package com.Gary.service;

import java.sql.SQLException;

import com.Gary.dao.UserDao;
import com.Gary.domain.User; public class UserService { public void addUser(User user) throws SQLException {
UserDao userDao = new UserDao();
userDao.addUser(user); } }

UserService.java

package com.Gary.web;

import java.util.UUID;

import com.Gary.domain.User;
import com.Gary.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven; public class UserAction extends ActionSupport implements ModelDriven<User>{ public User user = new User(); public String register() throws Exception { //自动封装User
//没有的手动封装
user.setId(UUID.randomUUID().toString());
//传递数据
UserService userService = new UserService();
userService.addUser(user);
System.out.println("123");
return "toLogin";
} @Override
public User getModel() {
// TODO Auto-generated method stub
return user;
} }

UserAction.java

  数据库表hibernatest.user

  

  【项目结构】

注册表单页面register.jsp

<form action="UserRegServlet" method="post">
<div class="register-box">
<label for="username" class="username_label">
用 户 名
<input maxlength="20" name="userName" type="text"
placeholder="您的用户名和登录名" />
</label>
<div class="tips"> </div>
</div>
<div class="register-box">
<label for="username" class="other_label">
设 置 密 码
<input maxlength="20" type="password" name="pwd"
placeholder="建议至少使用两种字符组合" />
</label>
<div class="tips"> </div>
</div>
<div class="register-box">
<label for="username" class="other_label">
确 认 密 码
<input maxlength="20" type="password" placeholder="请再次输入密码" />
</label>
<div class="tips"> </div>
</div> <div class="register-box">
<label for="username" class="username_label">
邮箱
<input maxlength="20" name="userName" type="text"
placeholder="您的邮箱" />
</label>
<div class="tips">
</div>
</div> <div class="register-box">
<label for="username" class="username_label">
真是姓名
<input maxlength="20" name="userName" type="text"
placeholder="您的真是姓名" />
</label>
<div class="tips">
</div>
</div> <div class="register-box">
<label for="username" class="username_label">
手机号
<input maxlength="20" name="telephone" type="text"
placeholder="您的手机号" />
</label>
<div class="tips">
</div>
</div> <div class="arguement">
<input type="checkbox" id="xieyi" />
阅读并同意
<a href="javascript:void(0)">《错题用户注册协议》</a>
<a href="login.html">已有账号,立即登录</a>
<div class="tips">
</div>
</div>
<div class="submit_btn">
<button type="submit" id="submit_btn">
立 即 注 册
</button>
</div>
</form>

  

  用户实体层

    private String id;
private String username;
private String password;
private String name;
private String email;
private String telephone;

  用户提交表单,发送请求UserAction_register到Web层userService.java

    public String register() throws Exception {

        //自动封装User
//没有的手动封装
user.setId(UUID.randomUUID().toString());
//传递数据
UserService userService = new UserService();
userService.addUser(user);
System.out.println("123");
return "toLogin";
}

  Service层接收到WeB层发送过来的请求后,进行处理,并发送到Dao层UserDao.java进行数据处理

    public void addUser(User user) throws SQLException {
System.out.println("456");
QueryRunner runner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
String sql = "insert into user values(?,?,?,?,?,?)";
runner.update(sql,user.getId(),user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),user.getTelephone());
}

  使用c3p0链接MySQL数据库在c3p0-config.xml中进行配置

    <default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///hibernatest</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>

  

JavaWeb_(Hibernate框架)使用c3p0与Dbutils开发用户注册功能的更多相关文章

  1. JavaWeb_(Hibernate框架)Hibernate与c3p0与Dbutils的区别

    JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能 传送门 JavaWeb_(Hibernate框架)使用c3p0与Dbutils开发用户注册功能 传送门 Hiberna ...

  2. JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能

    使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...

  3. JavaWeb_(Hibernate框架)Hibernate中创建实体

    Hibernate中创建实体 创建实体五个基本规则 --提供无参的构造器 --成员变量的私有化,提供get.set方法,提供属性 --尽量使用包装类型 --主键(一定要有) --不要加final(hi ...

  4. JavaWeb_(Hibernate框架)Hibernate中事务

    Hibernate中事务 事务的性质 事物的隔离级别 配置事务的隔离级别 事务的性质 原子性:原子,不可再分,一个操作不能分为更小的操作,要么全都执行,要么全不执行. 一致性:事务在完成时,必须使得所 ...

  5. JavaWeb_(Hibernate框架)Hibernate配置文件hibernate.cfg.xml

    hibernate.cfg.xml配置文件——链接数据库 hibernate.cfg.xml一定要配置在/src文件目录下 --数据库驱动,url,用户名,密码 --方言org.hibernate.d ...

  6. JavaWeb_(Hibernate框架)Hibernate论坛项目中多对多案例

    基于SSH论坛小型项目 传送门 用户和发帖进行举例 多对多关系:多个用户可以回复多个帖子 因此引入了一张回复表,用来保存用户id和帖子id CREATE TABLE `hforum`.`answer` ...

  7. JavaWeb_(Hibernate框架)Hibernate论坛项目中一对多案例

    基于SSH论坛小型项目 传送门 用户和发帖进行举例 一对多关系:一个用户可以发表多个帖子 一对一关系:一个帖子属于一个用户发布 创建数据库用户user表 CREATE TABLE `hforum`.` ...

  8. JavaWeb_(Hibernate框架)Hibernate中数据查询语句SQL基本用法

    本文展示三种在Hibernate中使用SQL语句进行数据查询基本用法 1.基本查询 2.条件查询 3.分页查询 package com.Gary.dao; import java.util.List; ...

  9. JavaWeb_(Hibernate框架)Hibernate中数据查询语句Criteria基本用法

    Criteria进行数据查询与HQL和SQL的区别是Criteria完全是面向对象的方式在进行数据查询,将不再看到有sql语句的痕迹,使用Criteria 查询数据包括以下步骤: 1. 通过sessi ...

随机推荐

  1. mark ubuntu 16.04 64bit + cpu only install mtcnn

    大神代码链接 称之为MTCNN人脸检测算法,同时有大神已经GitHub上开源了其基于caffe的C++ API 的源代码,https://github.com/DaFuCoding/MTCNN_Caf ...

  2. ubuntu下安装python-selenuim自动化测试的谷歌浏览器驱动安装的位置

    谷歌插件下载地址 https://npm.taobao.org/mirrors/chromedriver selenium下载地址 https://pypi.org/simple/selenium/ ...

  3. git clone ssh 时出现 fatal: Could not read from remote repository

    一.问题及解决办法参考: 在 ubuntu 中,要把 GitHub 上的储存库克隆到计算机上时,执行如下命令: git clone git@github.com:USER-NAME/REPOSITOR ...

  4. vue中keep-alive路由缓存

    <keep-alive> <component v-bind:is="view"></component> </keep-alive> ...

  5. 销售订单(SO)-API-登记销售订单

    登记销售订单可以在新增订单的时候就登记:并不是去修改 flow_status 为booked,而是赋值action request:就下面两句 l_action_request_tbl(l_actio ...

  6. 几种常用的java 实现反转的方法———reverse

    1.最简单的方法 public static String reverse1(String str) return new StringBuffer(str).reverse().toString() ...

  7. 公司最喜欢问的Java集合类

    java.util包中包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection Collection是最基本的集合接口,一个Coll ...

  8. Solr集群的搭建概述(非教程)

    1.什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不 ...

  9. php基本变量

    结构体和联合体 struct(结构体) 和 union(联合体) 结构体是8字节对齐,不够8字节的部分则空出来: 联合体共用一个8字节,共享这8字节的内存,后使用的会覆盖先使用的 结构体和联合体在形式 ...

  10. 怎么提高U盘传输文件的性能?

    U盘使用时间久了,其传输复制文件速度就可能会变得有些慢.出现这个问题的原因有很多,除了U盘本身的问题外,也可能会有电脑设置方面的因素在影响.好系统下面就来告诉大家解决U盘传输复制文件速度慢的几个小技巧 ...