在2层架构的基础之上,提取出User类,将添加一层 model & service 层
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
import="java.sql.*, com.ssh.model.*, com.ssh.service.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
String username = request.getParameter("username");
String password = request.getParameter("password");
String password2 = request.getParameter("password2");
User u = new User();
u.setUsername(username);
u.setPassword(password);
Manager m = new Manager();
if(m.exist(u))
{
response.sendRedirect("registerSuccess.jsp");
return ;
}
m.add(u);
response.sendRedirect("registerSuccess.jsp");
%>
<!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>RegisterDeal</title>
</head>
<body>
</body>
</html>
model为实体类层面
package com.ssh.model;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
service层为处理层,本例中只是介绍业务的处理,代码并没有进一步优化,只作为学习
package com.ssh.service;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.ssh.model.User;
public class Manager {
public boolean exist(User u) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost/SSH", "root", "root");
String sqlQuery = "select count(*) from user where username = ?";
PreparedStatement psQuery = (PreparedStatement) conn.prepareStatement(sqlQuery);
psQuery.setString(1, u.getUsername());
ResultSet rs = psQuery.executeQuery();
rs.next();
int count = rs.getInt(1);
if (count > 0) {
psQuery.close();
conn.close();
return true;
}else return false;
}
public void add(User u) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost/SSH", "root", "root");
String sql = "insert into user values (null,?,?)";
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
ps.setString(1, u.getUsername());
ps.setString(2, u.getPassword());
ps.execute();
ps.close();
conn.close();
}
}