注册成功后,重定向(response.sendRedirect)到登录页面


``` # Servlet ``` package com.zrgj.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.util.List; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zrgj.util.DbUtils; @WebServlet(urlPatterns="/reg2") public class RegServlet2 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html; charset=UTF-8"); req.setCharacterEncoding("UTF-8"); PrintWriter out=resp.getWriter(); String username=req.getParameter("username"); String password=req.getParameter("password"); String password2=req.getParameter("password2"); String sex=req.getParameter("sex"); String phone=req.getParameter("phone"); // req.getParameterValues() 返回的是字符串数组,所以需要用字符串数组来接收 String[] likes=req.getParameterValues("likes"); String jiguan=req.getParameter("jiguan"); String jieshao=req.getParameter("jieshao"); //处理爱好 StringBuilder likeStr=new StringBuilder();//cj,dy,wzry,用逗号分隔开 String likeDb=""; if(likes!=null){ for(String item : likes){ likeStr.append(item+","); } //字符串截取,会返回一个字符串 likeDb=likeStr.substring(0, likeStr.length()-1); } //判断密码和确认密码是否一致,不一致给出提示 //如何判断2个字符串内容是否相同,如果相同返回true,不同返回false //!表示取反,如果相同返回false,不同返回true,相当于女生说不要,其含义是“要”; if( ! password.equals(password2) ){//所以不相同时(女生说不要),返回的是true(就是要),才执行{} 里面的部分 out.write("密码与确认密码不同,请重新输入"); return;//当前表示不再执行下面的代码 } DbUtils s=new DbUtils(); try { //try代码块,写可能抛异常的代码 s.connect("com.mysql.jdbc.Driver" , "jdbc:mysql://127.0.0.1:3308/scott?useSSL=false&useUnicode=true&characterEncoding=utf-8" ,"root" ,""); } catch (ClassNotFoundException e) {//e就是抛出异常的对象(将报错的信息封装到给对象中) // TODO Auto-generated catch block e.printStackTrace();//将异常的详细信息打印到控制台 } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //判断登录名是否重复 try{ Object[] paras=new Object[1]; paras[0]=username; List list=s.query("select uid,username,password from user where username=?", paras); if(list.size()>0){ out.write(username+" 已经存在,请重新输入!"); s.close(); return; } }catch(SQLException e){ e.printStackTrace(); } //登录的sql String sql="INSERT INTO user (uid,username,PASSWORD,sex,jiguan,phone,likes,jieshao) VALUES (?,?,?,?,?,?,?,?)"; Object[] paras=new Object[8]; paras[0]= UUID.randomUUID() // 创建UUID的对象,此处是通过另一种方式创建的对象,静态方法 .toString()// 将对象转换成字符串 .replace("-", ""); paras[1]=username; paras[2]=password; paras[3]=sex; paras[4]=jiguan; paras[5]=phone; paras[6]=likeDb; //将StringBuilder转成String paras[7]=jieshao; try { int i=s.update(sql, paras);//影响的行数 System.out.println("影响的行数:"+i); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { s.close();//数据库资源非常宝贵,用完之后,要及时关闭掉。否则,长时间连接数据库不断开,会导致数据库无响应,再也连不上 } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //注册成功后,重定向(跳转)到login.html resp.sendRedirect("login.html"); } } ```

原文出处:http://malaoshi.top/show_1IX2kNQbTY8w.html