模拟用户注册功能

1 注册html代码

1 register.jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head></head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>会员注册</title>
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
<script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
<script src="js/bootstrap.min.js" type="text/javascript"></script>
<!-- 引入自定义css文件 style.css -->
<link rel="stylesheet" href="css/style.css" type="text/css" />

<style>
body {
    margin-top: 20px;
    margin: 0 auto;
}

.carousel-inner .item img {
    width: 100%;
    height: 300px;
}

font {
    color: #3164af;
    font-size: 18px;
    font-weight: normal;
    padding: 0 10px;
}
</style>
</head>
<body>

    <!-- 引入header.jsp -->
    <jsp:include page="/header.jsp"></jsp:include>

    <div class="container"
        style="width: 100%; background: url('image/regist_bg.jpg');">
        <div class="row">
            <div class="col-md-2"></div>
            <div class="col-md-8"
                style="background: #fff; padding: 40px 80px; margin: 30px; border: 7px solid #ccc;">
                <font>会员注册</font>USER REGISTER
                <form class="form-horizontal" style="margin-top: 5px;" action="/WEB15/register" method="post">
                    <div class="form-group">
                        <label for="username" class="col-sm-2 control-label">用户名</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" id="username" name="username"
                                placeholder="请输入用户名">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputPassword3" class="col-sm-2 control-label">密码</label>
                        <div class="col-sm-6">
                            <input type="password" class="form-control" id="inputPassword3"  name="password"
                                placeholder="请输入密码">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="confirmpwd" class="col-sm-2 control-label">确认密码</label>
                        <div class="col-sm-6">
                            <input type="password" class="form-control" id="confirmpwd"
                                placeholder="请输入确认密码">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
                        <div class="col-sm-6">
                            <input type="email" class="form-control" id="inputEmail3"  name="email"
                                placeholder="Email">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="usercaption" class="col-sm-2 control-label">姓名</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" id="usercaption" name="name"
                                placeholder="请输入姓名">
                        </div>
                    </div>
                    <div class="form-group opt">
                        <label for="inlineRadio1" class="col-sm-2 control-label">性别</label>
                        <div class="col-sm-6">
                            <label class="radio-inline"> <input type="radio"
                                name="sex" id="inlineRadio1" value="male"></label> <label class="radio-inline"> <input type="radio"
                                name="sex" id="inlineRadio2" value="female"></label>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="date" class="col-sm-2 control-label">出生日期</label>
                        <div class="col-sm-6">
                            <input type="date" class="form-control"  name="birthday">
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="date" class="col-sm-2 control-label">验证码</label>
                        <div class="col-sm-3">
                            <input type="text" class="form-control">

                        </div>
                        <div class="col-sm-2">
                            <img src="./image/captcha.jhtml" />
                        </div>

                    </div>

                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10">
                            <input type="submit" width="100" value="注册" name="submit"
                                style="background: url('./images/register.gif') no-repeat scroll 0 0 rgba(0, 0, 0, 0); height: 35px; width: 100px; color: white;">
                        </div>
                    </div>
                </form>
            </div>

            <div class="col-md-2"></div>

        </div>
    </div>

    <!-- 引入footer.jsp -->
    <jsp:include page="/footer.jsp"></jsp:include>

</body>
</html>

2 footer.jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<div class="container-fluid">
    <div style="margin-top:50px;">
        <img src="img/footer.jpg" width="100%" height="78" alt="我们的优势" title="我们的优势" />
    </div>

    <div style="text-align: center;margin-top: 5px;">
        <ul class="list-inline">
            <li><a href="info.jsp">关于我们</a></li>
            <li><a>联系我们</a></li>
            <li><a>招贤纳士</a></li>
            <li><a>法律声明</a></li>
            <li><a>友情链接</a></li>
            <li><a>支付方式</a></li>
            <li><a>配送方式</a></li>
            <li><a>服务声明</a></li>
            <li><a>广告声明</a></li>
        </ul>
    </div>
    <div style="text-align: center;margin-top: 5px;margin-bottom:20px;">
        Copyright &copy; 2005-2016 传智商城 版权所有
    </div>
</div>

3 header.jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<!-- 登录 注册 购物车... -->
<div class="container-fluid">
    <div class="col-md-4">
        <img src="img/logo2.png" />
    </div>
    <div class="col-md-5">
        <img src="img/header.png" />
    </div>
    <div class="col-md-3" style="padding-top:20px">
        <ol class="list-inline">
            <li><a href="login.jsp">登录</a></li>
            <li><a href="register.jsp">注册</a></li>
            <li><a href="cart.jsp">购物车</a></li>
            <li><a href="order_list.jsp">我的订单</a></li>
        </ol>
    </div>
</div>

<!-- 导航条 -->
<div class="container-fluid">
    <nav class="navbar navbar-inverse">
        <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">首页</a>
            </div>

            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="product_list.htm">手机数码<span class="sr-only">(current)</span></a></li>
                    <li><a href="#">电脑办公</a></li>
                    <li><a href="#">电脑办公</a></li>
                    <li><a href="#">电脑办公</a></li>
                </ul>
                <form class="navbar-form navbar-right" role="search">
                    <div class="form-group">
                        <input type="text" class="form-control" placeholder="Search">
                    </div>
                    <button type="submit" class="btn btn-default">Submit</button>
                </form>
            </div>
        </div>
    </nav>
</div>

4 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>黑马商城首页</title>
        <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
        <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
        <script src="js/bootstrap.min.js" type="text/javascript"></script>
    </head>

    <body>
        <div class="container-fluid">

            <!-- 引入header.jsp -->
            <jsp:include page="/header.jsp"></jsp:include>

            <!-- 轮播图 -->
            <div class="container-fluid">
                <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
                    <!-- 轮播图的中的小点 -->
                    <ol class="carousel-indicators">
                        <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
                        <li data-target="#carousel-example-generic" data-slide-to="1"></li>
                        <li data-target="#carousel-example-generic" data-slide-to="2"></li>
                    </ol>
                    <!-- 轮播图的轮播图片 -->
                    <div class="carousel-inner" role="listbox">
                        <div class="item active">
                            <img src="img/1.jpg">
                            <div class="carousel-caption">
                                <!-- 轮播图上的文字 -->
                            </div>
                        </div>
                        <div class="item">
                            <img src="img/2.jpg">
                            <div class="carousel-caption">
                                <!-- 轮播图上的文字 -->
                            </div>
                        </div>
                        <div class="item">
                            <img src="img/3.jpg">
                            <div class="carousel-caption">
                                <!-- 轮播图上的文字 -->
                            </div>
                        </div>
                    </div>

                    <!-- 上一张 下一张按钮 -->
                    <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
                        <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
                        <span class="sr-only">Previous</span>
                    </a>
                    <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
                        <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
                        <span class="sr-only">Next</span>
                    </a>
                </div>
            </div>
            
            <!-- 热门商品 -->
            <div class="container-fluid">
                <div class="col-md-12">
                    <h2>热门商品&nbsp;&nbsp;<img src="img/title2.jpg"/></h2>
                </div>
                <div class="col-md-2" style="border:1px solid #E7E7E7;border-right:0;padding:0;">
                    <img src="products/hao/big01.jpg" width="205" height="404" style="display: inline-block;"/>
                </div>
                <div class="col-md-10">
                    <div class="col-md-6" style="text-align:center;height:200px;padding:0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/middle01.jpg" width="516px" height="200px" style="display: inline-block;">
                        </a>
                    </div>
                
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small03.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small04.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>

                    <div class="col-md-2 yes-right-border" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small05.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
                    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small03.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small04.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>

                    <div class="col-md-2 yes-right-border" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small05.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small03.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small04.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>

                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small05.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
                </div>
            </div>
            
            <!-- 广告条 -->
            <div class="container-fluid">
                <img src="products/hao/ad.jpg" width="100%"/>
            </div>
            
            <!-- 最新商品 -->
            <div class="container-fluid">
                <div class="col-md-12">
                    <h2>最新商品&nbsp;&nbsp;<img src="img/title2.jpg"/></h2>
                </div>
                <div class="col-md-2" style="border:1px solid #E7E7E7;border-right:0;padding:0;">
                    <img src="products/hao/big01.jpg" width="205" height="404" style="display: inline-block;"/>
                </div>
                <div class="col-md-10">
                    <div class="col-md-6" style="text-align:center;height:200px;padding:0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/middle01.jpg" width="516px" height="200px" style="display: inline-block;">
                        </a>
                    </div>
                
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small03.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small04.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>

                    <div class="col-md-2 yes-right-border" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small05.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
                    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small03.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small04.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>

                    <div class="col-md-2 yes-right-border" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small05.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small03.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
    
                    <div class="col-md-2" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small04.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>

                    <div class="col-md-2 yes-right-border" style="text-align:center;height:200px;padding:10px 0px;">
                        <a href="product_info.htm">
                            <img src="products/hao/small05.jpg" width="130" height="130" style="display: inline-block;">
                        </a>
                        <p><a href="product_info.html" style='color:#666'>冬瓜</a></p>
                        <p><font color="#E4393C" style="font-size:16px">&yen;299.00</font></p>
                    </div>
                </div>
            </div>            
            
            <!-- 引入footer.jsp -->
            <jsp:include page="/footer.jsp"></jsp:include>
            
        </div>
    </body>

</html>

2 RegisterServlet 代码

package register;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.Map;
import java.util.UUID;

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 org.apache.commons.dbutils.QueryRunner;

import com.ithiema.utils.DataSourceUtils;

public class RegisterServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //设置request的编码---只适合post方式
        request.setCharacterEncoding("UTF-8");
        
        //get方式乱码解决
        //String username = request.getParameter("username");//乱码
        //先用iso8859-1编码 在使用utf-8解码
        //username = new String(username.getBytes("iso8859-1"),"UTF-8");
        
        
        //1、获取数据
        //String username = request.getParameter("username");
        //System.out.println(username);
        //String password = request.getParameter("password");
        //.....

        //2、将散装的封装到javaBean
        //User user = new User();
        //user.setUsername(username);
        //user.setPassword(password);

        //使用BeanUtils进行自动映射封装
        //BeanUtils工作原理:将map中的数据 根据key与实体的属性的对应关系封装
        //只要key的名字与实体的属性 的名字一样 就自动封装到实体中
        Map<String, String[]> properties = request.getParameterMap();
        User user = new User();
        try {
            BeanUtils.populate(user, properties);
        } catch (IllegalAccessException | InvocationTargetException e) {
            e.printStackTrace();
        }

        //现在这个位置 user对象已经封装好了
        //手动封装uid----uuid---随机不重复的字符串32位--java代码生成后是36位
        user.setUid(UUID.randomUUID().toString());

        //3、将参数传递给一个业务操作方法
        try {
            regist(user);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        //4、认为注册成功跳转到登录页面
        response.sendRedirect(request.getContextPath()+"/login.jsp");
        

    }

    //注册的方法
    public void regist(User user) throws SQLException{
        //操作数据库
        QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
        String sql = "insert into user values(?,?,?,?,?,?,?,?,?,?)";
        
        runner.update(sql,user.getUid(),user.getUsername(),user.getPassword(),user.getName(),
                user.getEmail(),null,user.getBirthday(),user.getSex(),null,null);
    }

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



}

3 User类

package register;

public class User {

    private String uid;
    private String username;
    private String password;
    private String name;
    private String email;
    private String sex;
    private String birthday;
    public String getUid() {
        return uid;
    }
    public void setUid(String 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 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 getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    @Override
    public String toString() {
        return "User [uid=" + uid + ", username=" + username + ", password=" + password + ", name=" + name + ", email="
                + email + ", sex=" + sex + ", birthday=" + birthday + "]";
    }  
}

 

posted @ 2018-01-19 18:31  Jepson6669  阅读(363)  评论(0编辑  收藏  举报