美文网首页Java web
JavaWeb MVC设计模式

JavaWeb MVC设计模式

作者: dawsonenjoy | 来源:发表于2018-12-30 11:55 被阅读0次

开发模式

1.C/S

客户端/服务器,需要安装客户端软件,称为胖客户端

2.B/S

浏览器/服务器,只要有浏览器即可,称为瘦客户端

MVC设计模式

即Model+View+Controller,在JavaWeb中分别对应:JavaBean/JSP/Servlet
注:
JavaBean:一个带有无参构造方法、属性私有,并带有公共的getter和setter方法的类

常用目录分层

1.Bean:用于存放JavaBean对象
2.DAO:Data Access Object,定义数据访问接口
3.DAO.IMPL:DAO接口的实现类
4.Service:定义业务逻辑操作接口
5.Service.IMPL:Service接口的实现类
6.Servlet:用于处理网络业务
7.Util:用于存放数据库等配置,配置信息一般从.properties文件中读取

MVC示例

1.xxx.properties

主要存放一些数据库的配置信息

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/database
username=xxx
password=xxx
2.Util

主要读取资源文件和进行数据库参数配置,并向外提供连接和关闭数据库方法

public class DBUtil {
    private static String driver;
    private static String url;
    private static String username;
    private static String password;

    static {
        ResourceBundle rb = ResourceBundle.getBundle("xxx");  //读取资源文件,不用加后缀
        driver = rb.getString("driverClass");  //设置基本配置信息
        url = rb.getString("url");
        username = rb.getString("username");
        password = rb.getString("password");
        try {
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection open() {  //提供连接数据库方法
        return DriverManager.getConnection(url, username, password);
    }

    public static void close(ResultSet rs, Statement stmt, Connection conn) {  //提供关闭连接方法
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
            stmt = null;
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
            conn = null;
    }
}

3.Bean

主要定义一些JavaBean对象

public class User {
    private int id;
    private String name;
    private String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}
4.DAO

定义一些数据操作的接口

public interface UserDao {
    public void addUser(User user);  //添加用户接口
    public void selectUser(String name, String password);
}
5.DAO.IMPL

实现数据操作接口的类

public class UserDaoImpl implements UserDao {

    public void addUser(Stu stu) {
        Connection conn = null;
        PreparedStatement p = null;
        ResultSet rs = null;
        try {
            conn = DBUtil.open();
            p = conn.prepareStatement("xxx");
            rs = p.executeQuery();
            ...
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, p, conn);
        }
    }

    public void selectUser(String name, String password) {
        sql操作...
    }
}
6.Service

定义具体的逻辑操作接口

public interface UserService {
    public void regist(String name, String password);  //注册功能接口
    public void login(String name, String password);
}
7.Service.IMPL

实现逻辑操作接口类

public class UserServiceImpl implements UserService{
    UserDao userDao = new UserDaoImpl();

    public void regist(String name, String password) {  //具体注册功能操作
        User user = new User();
        user.setName(name);
        user.setPassword(password);
        userDao.addUser(user);
        ...
    }

    public void login(String name, String password) {
        userDao.selectUser(name, password);
        ...
    }
}
8.Servlet

实现一些网络请求处理

public class UserServlet extends HttpServlet {  //处理注册请求Servlet

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        Stu stu = new Stu();
        String name = (String) request.getParameter("name");
        String password = (String) request.getParameter("password");
        UserServiceImpl usi = new UserServiceImpl();
        usi.regist(name, password);
        ...
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

相关文章

  • 浅谈Javaweb经典三层架构和MVC框架模式

    一、MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件...

  • SpringMVC - 基础知识

    第一章: 回顾JavaWeb中的MVC设计模式 MVC这种设计模式,不光运用于Web领域,而且也能用于非Web领域...

  • JavaWeb MVC设计模式

    开发模式 1.C/S 客户端/服务器,需要安装客户端软件,称为胖客户端 2.B/S 浏览器/服务器,只要有浏览器即...

  • JavaWeb(八)MVC设计模式

    1、MVC的概念 MVC是Model-View-Controller的简称,即模型-视图-控制器。 MVC是一种设...

  • javaweb之MVC设计模式

    1.MVC简介 MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是一种设计模...

  • javaweb_3_MVC设计模式

    MVC设计模式 Jsp(处理用户请求) + JavaBean(数据封装和处理) 简单web程序Servle...

  • 游戏开发中的MVVM设计模式

    mvc设计模式 说到mvvm设计模式不得不先说说mvc设计模式。mvc其实不是一个模式,而是几个模式结合使用的结果...

  • 浅析 MVC

    一、 MVC 设计模式 1. 设计模式 设计模式,是通用代码(组织方式)的一种统称 2. MVC 是什么 MVC ...

  • iOS开发之MVVM+RAC架构模式

    在说MVVM之前,首先要了解我们最常用的MVC设计模式⬇️ 1.MVC设计模式 苹果官方将MVC设计模式作为iOS...

  • 浅析 MVC

    一、MVC是什么? MVC是一种设计模式(那设计模式又是什么呢?简单粗暴的说好用的东西就是设计模式),MVC能够使...

网友评论

    本文标题:JavaWeb MVC设计模式

    本文链接:https://www.haomeiwen.com/subject/nglulqtx.html