当前位置 : 主页 > 编程语言 > c++ >

用户注册功能在后台进行的非空校验和各种条件验证

来源:互联网 收集:自由互联 发布时间:2021-06-30
各个参数的非空校验,一个request的生命周期,正则表达式验证邮箱格式是否正确,c3p0数据库连接池进行数据的存储,servlet技术 package cn.tedu.web;import java.io.IOException;import java.sql.Connecti
各个参数的非空校验,一个request的生命周期,正则表达式验证邮箱格式是否正确,c3p0数据库连接池进行数据的存储,servlet技术
package cn.tedu.web;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mchange.v2.c3p0.ComboPooledDataSource;
public class RegistServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		//0.解决乱码
		//>>请求参数乱码
		request.setCharacterEncoding("utf-8");
		//>>响应中文乱码
		response.setContentType("text/html;charset=utf-8");
		
		//1.接受表单数据
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String password2 = request.getParameter("password2");
		String nickname = request.getParameter("nickname");
		String email = request.getParameter("email");
		String valistr = request.getParameter("valistr");
		
		//2.校验数据
		//>非空校验
		if(username == null || "".equals(username)){
			request.setAttribute("msg", "用户名不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		if(password == null || "".equals(password)){
			request.setAttribute("msg", "密码不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		if(password2 == null || "".equals(password2)){
			request.setAttribute("msg", "确认密码不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		if(nickname == null || "".equals(nickname)){
			request.setAttribute("msg", "昵称不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		if(email == null || "".equals(email)){
			request.setAttribute("msg", "邮箱不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		if(valistr == null || "".equals(valistr)){
			request.setAttribute("msg", "验证码不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		//>两次密码是否一致校验
		if(!password.equals(password2)){
			request.setAttribute("msg", "两次密码不一致");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		//>邮箱格式
		//abc123@163.com
		if(!email.matches("^\\w+@\\w+(\\.\\w+)+$")){
			request.setAttribute("msg", "邮箱格式不正确");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		
		//>验证码是否正确校验
		//TODO 验证码是否正确校验
		
		
		//3.注册用户 -- 把数据保存到数据库
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		ComboPooledDataSource pool = new ComboPooledDataSource();
		try {
			conn = pool.getConnection();
			
			//>用户名是否存在校验
			ps = conn.prepareStatement("select * from user where username=?");
			ps.setString(1, username);
			rs = ps.executeQuery();
			if(rs.next()){
				request.setAttribute("msg", "用户名已存在");
				request.getRequestDispatcher("/regist.jsp").forward(request, response);
				return;
			}
			
			ps = conn.prepareStatement("insert into user values(null, ? , ? ,? , ?)");
			ps.setString(1, username);
			ps.setString(2, password);
			ps.setString(3, nickname);
			ps.setString(4, email);
			int rows = ps.executeUpdate();
			if(rows<=0){
				request.setAttribute("msg", "对不起注册失败");
				request.getRequestDispatcher("/regist.jsp").forward(request, response);
				return;
			}
			
			//4.给出提示
			response.getWriter().write("

恭喜您注册成功, 3秒之后跳转到首页....

"); response.setHeader("refresh", "3;url="+ request.getContextPath() +"/index.jsp"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); }finally{ if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ rs = null; } } if(ps != null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ ps = null; } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ conn = null; } } } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
网友评论