注册成功后,重定向(response.sendRedirect)到登录页面 作者:马育民 • 2022-02-09 15:41 • 阅读:10123 # 注册成功流程 [](https://www.malaoshi.top/upload/pic/jsp/11370083-f279314aef6741dbkaldjsfl2.jpg) # 注册页面 ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 注册<br> <form action="reg2" method="post"> 用户名:<input type="text" name="username"><br/> 密码:<input type="text" name="password"><br/> 确认密码:<input type="text" name="password2"><br/> 性别:<input type="radio" name="sex" checked value="0"> 女 <input type="radio" name="sex" value="1"> 男 <br/> 手机号:<input type="text" name="phone"><br/> 爱好:<input type="checkbox" name="likes" value="wzry">王者荣耀 <input type="checkbox" name="likes" value="cj">吃鸡 <input type="checkbox" name="likes" checked value="dy">刷抖音<br/> 籍贯:<select name="jiguan"> <option>请选择籍贯</option> <option value="beijing">北京</option> <option value="jilin">吉林省</option> </select> <br/> 自我介绍:<textarea name="jieshao" rows="8" cols="60"></textarea> <br/> <input type="submit" value="注册"> </form> </body> </html> ``` # 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"); } } ``` 原文出处:/show_1IX2kNQbTY8w.html