1、mvc的概述
MVC是Model-View-Controller的简称 即 模型 - 视图 - 控制器
model:(模型)
1、模型是应用程序的主体部分,模型表示业务数据和业务逻辑
2、一个模型能为多个视图提供数据
3、由于应用于模型的代码只需写一次就可以被多个视图重用,所有提高了代码的可重用性
view:(视图)
视图是用户看到并与之交互的界面 作用如下:
1.视图向用户显示相关的数据
2.接收用户的输入
3.不进行任何实际的业务处理
controller:(控制器)
1.控制器接收用户的输入并调用模型和视图去完成用户的需求
2.控制器接收请求并确定调用哪个模型组件去处理请求,然后确定哪个视图来显示模型处理返回的数据
实例:
JavaEE_MVC案例(模糊查询)
需要的jar包
DbUtils数据库连接工具
c3p0连接池
mysql.jdbc

在项目中创建一个名为com.it999.mvcapp的包 有几个文件夹
dao
domain
db
dao.impl
servlet

正文:
index.jsp中编程一个超链接
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JAVAMVC模糊查询</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/userServlet">用户查询</a>
</body>
</html>
user.java 作为一个数据模块
package com.it999.javaMvc;
public class User {
private Integer id;
private String addname;
private String addId;
private String addP;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAddname() {
return addname;
}
public void setAddname(String addname) {
this.addname = addname;
}
public String getAddId() {
return addId;
}
public void setAddId(String addId) {
this.addId = addId;
}
public String getAddP() {
return addP;
}
public void setAddP(String addP) {
this.addP = addP;
}
//构造函数
public User(Integer id, String addname, String addId, String addP) {
this.id = id;
this.addname = addname;
this.addId = addId;
this.addP = addP;
}
//空构造函数
public User(){}
}
[3] UserDao.java 作为连接数据库的模块
package com.it999.javaMvc;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
public List<User> getAll(){
//定义一个集合 用来管理user数据
List<User> users = new ArrayList<User>();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
//设置mysql驱动连接路径 唯一格式
String Driver = "com.mysql.jdbc.Driver";
//连接mysql的路径
String url = "jdbc:mysql://localhost:3306/day30";
//数据库用户名
String user = "root";
//数据库密码
String password = "zan980708...";
//注册驱动
Class.forName(Driver);
//连接数据库
connection = DriverManager.getConnection(url, user, password);
//mysql 查询语句
String sql = "SELECT id,addname,addId,addP From adduser";
//查询数据
preparedStatement = connection.prepareStatement(sql);
//查询
resultSet = preparedStatement.executeQuery();
//遍历resultSet集合的值
while(resultSet.next()){
int id = resultSet.getInt(1);
String addname = resultSet.getString(2);
String addId = resultSet.getString(3);
String addP = resultSet.getString(4);
//放入到user中
User user1 = new User(id,addname,addId,addP);
//把查询的user放入的list<User>集合中
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;
}
}
[4] UserServlet.java 作为index.jsp中请求的servlet
package com.it999.javaMvc;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "userServlet")
public class UserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("来了");
//创建userDao对象
UserDao userDao = new UserDao();
//调用userDao中的getAll()方法
List<User> users = userDao.getAll();
//设置Attribute的值
request.setAttribute("users",users);
//设置转发路径使用forward()方法转发
request.getRequestDispatcher("/user.jsp").forward(request,response);
}
}
user.jsp 作为转发的页面
<%@ page import="com.it999.javaMvc.User" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>查询结果</title>
</head>
<body>
<%
List<User> userList = (List<User>)request.getAttribute("users");
%>
<table>
<tr>
<th>ID</th>
<th>addname</th>
<th>addId</th>
<th>addP</th>
</tr>
<% for (User user : userList){%>
<tr>
<td><%=user.getId()%></td>
<td><%=user.getAddname()%></td>
<td><%=user.getAddId()%></td>
<td><%=user.getAddP()%></td>
</tr>
<% }%>
</table>
</body>
</html>
[6] web.xml 作为配置项
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<!--请求路径名-->
<servlet-name>userServlet</servlet-name>
<servlet-class>com.it999.javaMvc.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<!--请求路径名-->
<servlet-name>userServlet</servlet-name>
<url-pattern>/userServlet</url-pattern>
</servlet-mapping>
</web-app>
