1.首先看下已经完成好的项目的目录
用到的是MVC三层架构的思想
以下是代码
User.java
1 package com.zlj.pojos; 2 //一个普通实体类 3 public class User { 4 private String userName; 5 private String passWord; 6 public User(){ 7 8 } 9 public User(String userName,String passWord){ 10 this.userName = userName; 11 this.passWord = passWord; 12 } 13 public String getUserName() { 14 return userName; 15 } 16 public void setUserName(String userName) { 17 this.userName = userName; 18 } 19 public String getPassWord() { 20 return passWord; 21 } 22 public void setPassWord(String passWord) { 23 this.passWord = passWord; 24 } 25 }
DBUtil.java
package com.zlj.util; //连接数据库的工具类 import java.sql.Connection; import java.sql.DriverManager; public class DbUtil { private String dbUrl="jdbc:mysql://localhost:3306/db_test01"; private String dbUserName="root"; private String dbPassWord="19981998"; private String jdbcName="com.mysql.jdbc.Driver"; public Connection getCon()throws Exception{ Class.forName(jdbcName); Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassWord); return con; } public void closeCon(Connection con)throws Exception{ if(con!=null){ con.close(); } } //测试 public static void main(String[] args) { DbUtil dbUtil=new DbUtil(); try { dbUtil.getCon(); System.out.println("数据库连接成功"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("连接失败"); } } }
UserDao.java
package com.zlj.dao; /** * sql语句,dao(数据访问对象) */ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.zlj.pojos.User; public class UserDao { public boolean login(Connection con,User user)throws Exception{ String sql="select * from t_user where username=? and password=?"; PreparedStatement pstmt = con.prepareStatement(sql);//执行sql语句 pstmt.setString(1, user.getUserName()); pstmt.setString(2, user.getPassWord()); ResultSet rs=pstmt.executeQuery(); if(rs.next()){ return true; } return false; } public int register(Connection con,User user)throws Exception{ String sql="insert into t_user value(null,?,?)"; PreparedStatement pstmt = con.prepareStatement(sql);//执行sql语句 pstmt.setString(1, user.getUserName()); pstmt.setString(2, user.getPassWord()); return pstmt.executeUpdate(); } }
LoginServlet.java
package com.zlj.web; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zlj.dao.UserDao; import com.zlj.pojos.User; import com.zlj.util.DbUtil; public class LoginServlet extends HttpServlet { DbUtil dbUtil=new DbUtil(); UserDao userDao=new UserDao(); /** * Constructor of the object. */ public LoginServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName=request.getParameter("userName"); String passWord=request.getParameter("passWord");//客户端的请求 System.out.println(userName); System.out.println(passWord); User user=new User(userName,passWord); Connection con=null; try { con=dbUtil.getCon(); if(!userDao.login(con, user)){ System.out.println("用户密码错误"); response.sendRedirect("Error.jsp"); }else{ System.out.println("登录成功"); response.sendRedirect("Main.jsp");//服务器的响应 } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { dbUtil.closeCon(con); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
RegisterServlet.java
package com.zlj.web; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zlj.dao.UserDao; import com.zlj.pojos.User; import com.zlj.util.DbUtil; public class RegisterServlet extends HttpServlet { DbUtil dbUtil=new DbUtil(); UserDao userDao=new UserDao(); /** * Constructor of the object. */ public RegisterServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName=request.getParameter("userName"); String passWord=request.getParameter("passWord"); System.out.println(userName); System.out.println(passWord); Connection con=null; try { int saveNums=0; con=dbUtil.getCon(); User user=new User(userName,passWord); saveNums=userDao.register(con, user); if(saveNums==0){ System.out.println("fail register"); }else{ System.out.println("victory register"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { dbUtil.closeCon(con); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.zlj.web.LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>RegisterServlet</servlet-name> <servlet-class>com.zlj.web.RegisterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/index</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>RegisterServlet</servlet-name> <url-pattern>/register</url-pattern> </servlet-mapping> </web-app>
不过首先要建一张表哟
下面是jdbc的实际操作说明网址:http://www.runoob.com/w3cnote/jdbc-use-guide.html