MVC 模型
Model:DAO獲取數據庫連接
View:JSP呈現數據
Controller:Servlet獲取請求參數
實例:
數據庫中用戶信息的展示和刪除等操作,連接數據庫並在頁面上顯示出來並可以實現刪除操作。
1、創建User及UserDao
public class User {
private int id;
private String Name;
private String pwd;
private String sex;
private String home;
private String info;
public User(int id, String name, String pwd, String sex, String home, String info) {
this.id = id;
Name = name;
this.pwd = pwd;
this.sex = sex;
this.home = home;
this.info = info;
}
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
public class UserDao {
//通過id刪除用戶
public void deleteById(int id){
Connection connection=null;
PreparedStatement preparedStatement=null;
try {
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql:///test";
String user="root";
String password="123456";
Class.forName(driverClass);
connection=DriverManager.getConnection(url,user,password);
String sql="delete from user where id=?";
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setInt(1,id);
preparedStatement.executeUpdate();
}catch (Exception e){
e.printStackTrace();
}finally {
if(preparedStatement!=null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}if(connection!=null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
//獲取所有的用戶信息
public List<User> getAll(){
List<User> users=new ArrayList<>();
Connection connection=null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try {
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql:///test";
String user="root";
String password="123456";
Class.forName(driverClass);
connection=DriverManager.getConnection(url,user,password);
String sql="select id,name,pwd,sex,home,info from user";
preparedStatement=connection.prepareStatement(sql);
resultSet=preparedStatement.executeQuery();
while (resultSet.next()){
int id=resultSet.getInt(1);
String name=resultSet.getString(2);
String pwd=resultSet.getString(3);
String sex=resultSet.getString(4);
String home=resultSet.getString(5);
String info=resultSet.getString(6);
User user1=new User(id,name,pwd,sex,home,info);
users.add(user1);
}
}catch (Exception e){
e.printStackTrace();
}finally {
if(resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}if(preparedStatement!=null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}if(connection!=null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return users;
}
}
2.創建刪除和查詢所需的Servlet
ListAllUsersServlet和DeleteUserServlet
public class ListAllUsersServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserDao userDao=new UserDao();
List<User> users=userDao.getAll();
request.setAttribute("users",users);
request.getRequestDispatcher("/javaweb/users.jsp").forward(request,response);
}
}
public class DeleteUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id=request.getParameter("id");
UserDao userDao=new UserDao();
userDao.deleteById(Integer.parseInt(id));
request.getRequestDispatcher("/javaweb/success.jsp").forward(request,response);
}
}
創建完Servlet後在web.xml中配置如下
<servlet>
<servlet-name>ListAllUsersServlet</servlet-name>
<servlet-class>cn.javaweb2.com.ListAllUsersServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>DeleteUserServlet</servlet-name>
<servlet-class>cn.javaweb2.com.DeleteUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DeleteUserServlet</servlet-name>
<url-pattern>/javaweb/deleteUser</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ListAllUsersServlet</servlet-name>
<url-pattern>/javaweb/listAllUsers</url-pattern>
</servlet-mapping>
3.在web目錄下創建jsp頁面
test.jsp如下所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="listAllUsers">List all Users</a>
</body>
</html>
user.jsp如下所示:
<%@ page import="java.util.List" %>
<%@ page import="cn.javaweb2.com.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
List<User> users=(List<User>) request.getAttribute("users");
%>
<table border="1"cellpadding="10"cellspacing="0">
<tr>
<th>id</th>
<th>name</th>
<th>pwd</th>
<th>sex</th>
<th>home</th>
<th>info</th>
<th>delete</th>
</tr>
<%
for(User user:users){
%>
<tr>
<td><%=user.getId()%></td>
<td><%=user.getName()%></td>
<td><%=user.getPwd()%></td>
<td><%=user.getSex()%></td>
<td><%=user.getHome()%></td>
<td><%=user.getInfo()%></td>
<td><a href="deleteUser?id=<%=user.getId()%>">delete</a></td>
</tr>
<% }%>
</table>
</body>
</html>
success.jsp頁面如下所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
刪除成功
<hr>
<a href="listAllUsers">List all Users</a>
</body>
</html>
一個簡單的MVC模式的示例就完成了。