java web利用分层结构能够很好的提高项目的复用以及扩展性,下面讨论一下基本的分层结构。
第一层action(structs里面的)如果是servlet的话也可以。这里的一层就是mvc里面的Controler控制器。这一层主要负责后台代码和前段的交互,以及各种复杂的关系。之后比较常见的是dao层,这一层负责持久化数据库对象,orm模型。
还有service层,通过service来实现具体的业务逻辑。这里注意的是dao和service最好是面向接口进行编程,这样能够提高扩展性。一些工具类的话可以单独放在一起,这样比较容易管理。
最基本的要有domain层,可以理解成域模型,通俗的来说就是实体化的类。
package com.zhao.util;
import java.sql.DriverManager;
import com.mysql.jdbc.Connection;
public class jdbc {
public Connection getconn()
{
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/project1", "root","19660309zhao");
} catch (Exception e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
// TODO: handle exception
}
return conn;
}
}
这是一段连接mysql数据库的代码。
package com.zhao.domain;
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;
}
}
package com.zhao.dao;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.zhao.domain.User;
import com.zhao.util.jdbc;
public class Userdao {
public void insert(User user)
{
jdbc jdbc = new jdbc();
Connection conn = jdbc.getconn();
String sqlString = "insert into user(username,password) values(?,?)";
PreparedStatement psPreparedStatement;
try {
psPreparedStatement = (PreparedStatement) conn.prepareStatement(sqlString);
psPreparedStatement.setString(1, user.getUsername());
psPreparedStatement.setString(2, user.getPassword());
//int row =
psPreparedStatement.executeUpdate();
// if(row>0)
// {
// System.out.println("插入数据成功");
// }
// else{
// System.out.println("插入数据失败");
// }
// psPreparedStatement.close();
//
// conn.close();
//
} catch (Exception e) {
System.out.println("插入数据失败");
e.printStackTrace();
}
}
public void select()
{
jdbc jdbc = new jdbc();
Connection conn = jdbc.getconn();
String sqlString = "select * from user where username=? and password=?";
PreparedStatement psPreparedStatement;
}
}
package com.zhao.action;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Path;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhao.dao.Userdao;
import com.zhao.domain.User;
public class UserServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
User u = new User();
u.setUsername(username);
u.setPassword(password);
Userdao ud = new Userdao();
ud.insert(u);
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
}