JAVAWeb - MVC三层架构 以及 Javabean

一:什么是MVC

Model:模型

view:视图

Controller:控制器

二:早些年的网页模型

早些年的网页模型只有两部风:一个是控制层Contrroller,还有View视图层

控制层的工作是:

  • 1.接收用户的请求
  • 2.响应给客户端内容
  • 3.重定向或者转发

视图层的工作是:

  • 1.展示数据给用户
  • 2.提供一些按钮,供我们操作请求

这两层的工作实际上都需要数据库的支持,它们都有一些自己的方法可以拿到数据库的内容;

早期都是两个层都可以通过javaBean(pojo,entity)实例化类操作JDBC拿到数据库内容或操作数据库;

导致代码十分的臃肿,不利于维护,代码逻辑顺序很紊乱,复杂;

对于大量的数据操作这两层的实现功能太多了,为了减轻压力,衍生出了第三层:model 模型

三:现在的MVC框架

servlet:专注于处理请求,以及控制视图跳转     --   jsp:专注于显示数据

视图层:

  • 展示数据模型
  • 提供用户操作(发起请求:a , from,img...)

控制器:(servlet)

  • 接收用户请求(req:请求信息,session信息)
  • 交给业务层去处理(返回数据)
  • 视图跳转

业务层(model):

  • 为用户提供服务(业务处理):login  ,logout,查询用户
  • 操作数据库Dao(增,删,查,改):通过JDBC操作数据库

常见实例:(登录操作)

登录 ---》接收用户登录请求---》处理用户请求(获取用户的username,password)---》交给业务层处理登录业务(判断用户名,密码是否正确:事务)---》Dao查询用户密码,用户名是否正确---》数据库

四:JavaBean

实体类(实例化类)

Javabean有自己特定的写法:

  • 必须要一个有无参构造
  • 属性私有化
  • 必须要私有化必须要有对应的get/set方法

一般用于和数据库的字段做映射  ORM

ORM:对象关系映射

  • 表---》类
  • 字段---》属性
  • 行记录--》对象
id name age address
1 李白 20 王者大陆
2 孙悟空 21 五行山
3 东方曜 16 稷下学院
class  People{
private int id;
private String name;
private int age;
private String address;

}
claee A{
new people(1,"李白",20,"王者大陆");
}

表格中的数据都会在Java代码中有对应关系,都会有对应的字段

javabean在jsp中的用法:

javabean中的

  • id表示类名--》也是数据库表名
  • class---》文件所在位置
  • scope---》作用域

其它标签对象:

  • setProperty:建立对象的标签
  • name:对象名
  • property:对象的属性
  • value:对象的值
  • getProperty:取出对象的值
<jsp:useBean id="people" class="top.lostyou.jsp.people" scope="page"/>
    <jsp:setProperty name="people" property="id" value="1"/>
    <jsp:setProperty name="people" property="name" value="李白"/>
    <jsp:setProperty name="people" property="age" value="20"/>
    <jsp:setProperty name="people" property="address" value="王者大陆"/>
<%--<%=people.getAdress()%>--%>
id:<jsp:getProperty name="people" property="id"/>
姓名:<jsp:getProperty name="people" property="name"/>
年龄:<jsp:getProperty name="people" property="age"/>
地址:<jsp:getProperty name="people" property="address"/>

 

以上的jsp标签所表达的值,等同于以下的Java代码

people people = new people();
    people.setId(1);
    people.setName("李白");
    people.setAge(20);
    people.setAddress("王者大陆");
    out.print(people.getId());
    out.print(people.getName());
    out.print(people.getAge());
    out.print(people.getAddress());

Java代码通过对象的get/set方法拿值和建立值

 

posted @ 2022-11-03 22:26  回忆也交给时间  阅读(66)  评论(0编辑  收藏  举报