Servlet实现注册

1、Servlet实现注册的思路:

 2、工程结构

 3、功能实现:

(1)html实现对数据的收集:

<body bgcolor="aqua">
<center>
    <h3>注册</h3>
    <form action="/Register_servlet_war_exploded/register" method="post">
      用户名:<input type="text" name="account" size="12"><br><br>
        密码:<input type="password" name="password" size="12">
        <input type="submit" value="注册">
        <input type="reset" value="取消">
    </form>
</center>
</body>

(2)Servlet:获取表单提交的数据,并将他们封装到Map集合中(可以减少代码量)

public class ServletRegister extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        Map<String, String[]> properties=request.getParameterMap();//将表单中的数据封装到Map中
        Login log= new Login();
        try {
            BeanUtils.populate(log, properties);
        } catch (IllegalAccessException|InvocationTargetException e) {
            e.printStackTrace();
        }
        try {
            regist(log);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        response.sendRedirect(request.getContextPath()+"/log.html");//重定向
    }
    public void regist(Login log) throws SQLException{//数据库
        Connection con=null;
        try {
            con = C3p0Utils.getConnection();
            QueryRunner qr = new QueryRunner();
            String sql = "insert into Login values(?,?)";
            Object[] insert = {log.getAccount(), log.getPassword()};
            qr.update(con, sql, insert);
        }
        catch (SQLException e){
            throw new RuntimeException(e);
        }
    }

4、get和post提交方式乱码问题:

(1)post提交:

request.setCharacterEncoding("UTF-8");

直接高数服务器编码的格式。

(2)get提交:

采用request.setCharacterEncoding("UTF-8");的方法已经不能解决中文乱码的问题了。需要从底层改变编码格式:

name = new String(name,getBytes("ISO-8859-1"),"UTF-8");

 post提交的请求在请求体中,可以通过设置编码解决乱码。而get提交的数据在请求行中,通过设置编码的方式是不行的。

猜你喜欢

转载自www.cnblogs.com/zhai1997/p/11610207.html