【Java学习】Javaweb-05|JSP、JavaBean、MVC、Filter

72 阅读2分钟

前言

由于JSP已经是公认过时的技术了,所以这里只了解一下原理。

什么是JSP

Java Server Pages:Java服务端页面,也和Servlet一样,用于动态Web技术。

特点:

  • JSP = HTML + JAVA
    • HTML只给用户提供静态的数据
    • JSP页面中可以嵌入JAVA代码,为用户提供动态数据

JSP原理

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet。

JSP最终也会被转换为JAVA类。

JSP本质上就是一个Servlet。

截屏2023-03-28 20.52.59.png

在JSP页面中:只要是JAVA代码就会原封不动地输出;如果是HTML代码,就会被转换为以下格式,并输出到前端。

out.write("<html>\r\n");

内置对象

exception

  • request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻;
  • session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;
  • application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据。

JavaBean

JavaBean是实体类,一般用来和数据库的字段做映射(ORM)。

JavaBean有特定的写法:

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

ORM:对象关系映射 object rational mapping

  • 表-->类
  • 字段-->属性
  • 行记录-->对象

MVC

MVC:Model View Controller 模型(字段)、视图(jsp页面)、控制器(Servlet负责跳转页面)

早年架构

用户直接访问控制层,控制层可以直接操作数据库

  • 程序十分臃肿,不利于维护
  • Servlet代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码 截屏2023-03-28 21.29.16.png

三层架构

截屏2023-03-28 21.38.14.png Model

  • 业务处理:业务逻辑(Service)
  • 数据持久层:CRUD(Dao) View
  • 展示数据
  • 提供链接发起Servlet请求 Controller(Servlet)
  • 接收用户的请求:(req:请求参数、Session信息...)
  • 交给业务层处理对应的代码
  • 控制视图的跳转
登录---->接收用户的登录请求---->处理用户的请求(获取用户登录的参数,username,password)---->交给业务层处理登录业务(判断用户名密码是否正确)---->Dao层查询用户名和密码是否正确---->数据库

Filter

Filter:过滤器,用来过滤网站的数据。

  • 处理中文乱码
  • 登录验证

截屏2023-03-28 21.50.57.png

截屏2023-03-28 22.09.34.png Filter开发步骤:

  • 导包
  • 编写过滤器
    • 导包不要错
    • 实现Filter接口,重写对应的方法
  • 在web.xml中配置Filter过滤器

总结

  • 初始化:Web服务器启动,就已经初始化了,随时等待过滤对象
  • 过滤器中的所有代码,在过滤特定请求的时候都会执行
  • 必须要让过滤器继续通行
  • 小会:Web服务器关闭的时候,过滤会销毁