基本思路:
一個Regist.jsp注冊頁面,用於收集用戶信息,發送請求給控制器Servlet;控制器層Servlet封裝模型層對象 jBean,並調用其方法regiser實現用戶信息的保存;模型層JavaBean.java 接收控制器層的對象,完成對數據庫的操作。
話不多說,上代碼。
首先有個數據庫訪問公共類,以后凡是操作數據庫的頁面都可以調用。不容多說:
Unilt.java

/** * */ package javaBeanServlet; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * @author Administrator * */ public class Unilt { private static final String URL = "jdbc:mysql://localhost:3306/userdb"; private static final String USER = "root"; private static final String PASSWORD = "111111"; protected static Statement s = null; protected static ResultSet rs = null; protected static Connection coon = null; public static synchronized Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { coon = DriverManager.getConnection(URL, USER, PASSWORD); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return coon; } public static int executeUpdate(String sql) { int result = 0; try { s = getConnection().createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { result = s.executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public static ResultSet executeQuery(String sql) { try { s = getConnection().createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { rs = s.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs ; } public static PreparedStatement executePreparedStatement(String sql) { PreparedStatement ps = null; try { ps = getConnection().prepareStatement(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ps; } public static void rollback() { try { getConnection().rollback(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void close() { if (rs != null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (s != null) { try { s.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (coon != null) { try { coon.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
接下來是一個簡單的注冊頁面:
Register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action = "/ch1/Servelt" method = "post"> <input type ="text" value = "username" name = "username"/> <input type ="password" value = "password" name = "password"/> <input type = "submit" value = "提交" name = "submit" /> </form> </body> </html>
Servlet.java

package javaBeanServlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Servelt */ @WebServlet("/Servelt") public class Servelt extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Servelt() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 設置編碼格式 response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset = utf-8"); /* 實例化JavaBean 的一個對象 jBean ,並通過request.getParameter()獲取Regist表單提交的 username、password值 */ JavaBean jBean = new JavaBean(); jBean.setFd_username(request.getParameter("username")); jBean.setFd_password(request.getParameter("password")); jBean.register(jBean); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
JavaBean.java

/** * */ package javaBeanServlet; import java.sql.*; import javaBeanServlet.*; import javaBeanServlet.Unilt; /** * @author Administrator * */ public class JavaBean { // 依據數據表結構聲明成員變量 private String fd_username ; private String fd_password ; // 為屬性提供setter和getter方法 public String getFd_username() { return fd_username; } public void setFd_username(String fd_username) { this.fd_username = fd_username; } public String getFd_password() { return fd_password; } public void setFd_password(String fd_password) { this.fd_password = fd_password; } public boolean register(JavaBean javaBean){ String sql = "insert into users(username ,password) values (?,?)"; int result = 0; PreparedStatement ps = Unilt.executePreparedStatement(sql); try { ps.setString(1,javaBean.fd_username); ps.setString(2,javaBean.fd_password); result = ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 注冊成功,返回true;注冊失敗,返回false if (result > 0) { System.out.println("注冊成功"); return true; } else { System.out.println("注冊失敗"); return false; } } }
下面是運行的效果:
新手上路,請多指教!