注册与登陆
注册:
首先 需要新建web项目,对数据库操作的服务(与需求有关),模型(与数据库表有关),工具包(DBOperator).
servlet 的类用来从前台活取数据,选择要做的事情,然后判断重定向到何处.
主要是doPost方法,和doGet方法
设置编码
request.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
从前台活取数据
String name = request.getParameter("name");
String pwd = request.getParameter("password");
也即从传过来的参数获取数据
将数据写入数据库
user usr = new user();
usr.setName(name);
usr.setPassword(pwd); //建立数据库模型对象即学生对象
StuManager stuM = new StuManagerimplement();//管理数据库
boolean flag=false; //标志,是否成功写入
flag = stuM.add(usr); //注意异常的处理,此处可能抛出异常.
跳转页面(重定向)
response.sendRedirect("index.jsp");
登陆:流程基本类似:
从前台活取数据,
传入数据库管理方法,并且在管理方法内返回是否登陆成功的标志.
根据返回的标志,通过servlet 判断重定向到制定页面.
代码如下:
DBOperator.java 略
stuManagerImplement.java
1 package cn.hpu.service; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 import cn.hpu.model.user; 10 import cn.hpu.util.DBOperator; 11 12 public class StuManagerimplement implements StuManager { 13 14 @Override 15 public boolean add(user usr) { 16 // TODO Auto-generated method stub 17 boolean flag=false; 18 Connection con =null; 19 PreparedStatement pst=null; 20 String sql=null; 21 22 23 try { 24 con=DBOperator.getConnection(); 25 // System.out.println("YES"); 26 // if(con!=null) System.out.println("OKOKO"); 27 sql = "insert into user (name,password) values(?,?)"; 28 pst = con.prepareStatement(sql); 29 pst.setString(1, usr.getName()); 30 pst.setString(2, usr.getPassword()); 31 32 int rows = pst.executeUpdate(); 33 if(rows>0) flag =true; 34 35 } catch (SQLException e) { 36 // TODO Auto-generated catch block 37 System.out.println("insert exception !"); 38 e.printStackTrace(); 39 }finally{ 40 DBOperator.close(pst, con); 41 } 42 return flag; 43 } 44 45 @Override 46 public boolean check(String name, String psw) { 47 // TODO Auto-generated method stub 48 //sql语句指针变量的声明 49 boolean flag =false ; 50 Statement st=null; 51 ResultSet rt = null; 52 user usr=new user(); 53 String sql=null; 54 Connection con = null; 55 56 try { 57 con = DBOperator.getConnection(); //查询 58 sql ="select * from user where name="+name; 59 st= con.createStatement(); 60 rt = st.executeQuery(sql); 61 // System.out.println(rt.getString("name")); 62 if(rt.next()) 63 { 64 usr.setName(rt.getString("name")); 65 usr.setPassword(rt.getString("password")); 66 67 } 68 System.out.println(usr.getName()+usr.getPassword()); 69 String str = usr.getPassword(); 70 if(psw.equals(str)) flag =true; //验证 71 72 } catch (Exception e) { 73 // TODO: handle exception 74 System.out.println("check exception !"); 75 }finally { 76 DBOperator.close(rt, st, con); //关闭 77 } 78 return flag; 79 } 80 81 }
servlet 程序
register.java
1 package cn.hpu.servlet; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import org.apache.catalina.connector.Response; 11 12 import cn.hpu.model.user; 13 import cn.hpu.service.StuManager; 14 import cn.hpu.service.StuManagerimplement; 15 16 /** 17 * Servlet implementation class register 18 */ 19 @WebServlet("/register") 20 public class register extends HttpServlet { 21 private static final long serialVersionUID = 1L; 22 23 /** 24 * @see HttpServlet#HttpServlet() 25 */ 26 public register() { 27 super(); 28 // TODO Auto-generated constructor stub 29 } 30 31 /** 32 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 33 */ 34 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 35 // TODO Auto-generated method stub 36 response.getWriter().append("Served at: ").append(request.getContextPath()); 37 doPost(request, response); 38 } 39 40 /** 41 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 42 */ 43 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 44 // TODO Auto-generated method stub 45 // doGet(request, response); 46 //设置中文 47 request.setCharacterEncoding("UTF-8"); 48 response.setCharacterEncoding("UTF-8"); 49 50 //获取数据 51 String name = request.getParameter("name"); 52 String pwd = request.getParameter("password"); 53 // String code = request.getParameter("code"); 54 55 user usr = new user(); 56 usr.setName(name); 57 // usr.setCode(code); 58 usr.setPassword(pwd); 59 60 StuManager stuM = new StuManagerimplement(); 61 boolean flag= false ; 62 try { 63 flag = stuM.add(usr); 64 if(flag) response.sendRedirect("index.jsp"); 65 66 } catch (Exception e) { 67 // TODO: handle exception 68 } 69 } 70 71 }
login.java
1 package cn.hpu.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 12 import cn.hpu.service.StuManager; 13 import cn.hpu.service.StuManagerimplement; 14 15 /** 16 * Servlet implementation class login 17 */ 18 @WebServlet("/login") 19 public class login extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 /** 23 * @see HttpServlet#HttpServlet() 24 */ 25 public login() { 26 super(); 27 // TODO Auto-generated constructor stub 28 } 29 30 /** 31 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 32 */ 33 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 34 // TODO Auto-generated method stub 35 response.getWriter().append("Served at: ").append(request.getContextPath()); 36 doPost(request, response); 37 } 38 39 /** 40 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 41 */ 42 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 43 // TODO Auto-generated method stub 44 // doGet(request, response); 45 request.setCharacterEncoding("UTF-8"); 46 request.setCharacterEncoding("UTF-8"); 47 48 String name = request.getParameter("name"); 49 String pwd = request.getParameter("password"); 50 51 StuManager stuM = new StuManagerimplement(); 52 boolean flag= false ; 53 54 try { 55 flag = stuM.check(name,pwd); 56 if(flag) response.sendRedirect("loginsuccess.jsp"); 57 } catch (Exception e) { 58 // TODO: handle exception 59 response.setContentType("text/html"); 60 PrintWriter out = response.getWriter(); 61 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); 62 out.println("<HTML>"); 63 out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); 64 out.println(" <BODY>"); 65 out.println("<h1>"); 66 out.println("用户名或密码错误登录失败!!"); 67 out.println("<h1>"); 68 out.println(" </BODY>"); 69 out.println("</HTML>"); 70 out.flush(); 71 out.close(); 72 } 73 } 74 75 }
index.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <form action="login" method="post" align="center"> 11 <cneter><h1>用户信息管理系统</h1></cneter> 12 <b>用户名:</b><input type="text" name="name"><br> 13 <p></p> 14 <b>密 码:</b><input type="password" name="password"><br> 15 16 <font size="+1" > 17 <p> 18 <input name="submit" type="submit" class="button" style="width:200px; height:35px " value="登录" /> 19 </p> 20 <p><font size="-1" color="#000099"> 忘记密码?</font> <font size="-1" color="#000099"><a href="register.jsp">新用户</a> </font> </p> 21 </font> 22 23 </form> 24 25 </body> 26 </html>
register.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <h1 align="center">注册新用户</h1> 11 <hr/> 12 <form action="register" method="post" align="center" > 13 用户名:<input name="name" type="text"/><br/> 14 <p></p> 15 密 码:<input name="password" type="password"/><br/> 16 <p></p> 17 验证码:<input name="code" type="text"><br/> 18 <p></p> 19 <input type="submit" style="width:80px; height:35px "value="注册" /> 20 </form> 21 <a href="index.jsp">返回 </a> 22 </body> 23 </html>
loginsuccess.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <h1>恭喜登录成功!!</h1> 11 </body> 12 </html>