java_MVC三层架构

1、mvc的概述

     MVC是Model-View-Controller的简称 即 模型 - 视图 - 控制器

model:(模型)

   1、模型是应用程序的主体部分,模型表示业务数据和业务逻辑

   2、一个模型能为多个视图提供数据

   3、由于应用于模型的代码只需写一次就可以被多个视图重用,所有提高了代码的可重用性

view:(视图)

     视图是用户看到并与之交互的界面 作用如下:

     1.视图向用户显示相关的数据

     2.接收用户的输入

    3.不进行任何实际的业务处理

controller:(控制器)

   1.控制器接收用户的输入并调用模型和视图去完成用户的需求

   2.控制器接收请求并确定调用哪个模型组件去处理请求,然后确定哪个视图来显示模型处理返回的数据


实例:

JavaEE_MVC案例(模糊查询)

需要的jar包

DbUtils数据库连接工具

c3p0连接池

mysql.jdbc


所需的jar

在项目中创建一个名为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>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容