前言
由于JSP已经是公认过时的技术了,所以这里只了解一下原理。
什么是JSP
Java Server Pages:Java服务端页面,也和Servlet一样,用于动态Web技术。
特点:
- JSP = HTML + JAVA
- HTML只给用户提供静态的数据
- JSP页面中可以嵌入JAVA代码,为用户提供动态数据
JSP原理
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet。
JSP最终也会被转换为JAVA类。
JSP本质上就是一个Servlet。
在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、处理业务代码、处理逻辑代码
三层架构
Model
- 业务处理:业务逻辑(Service)
- 数据持久层:CRUD(Dao) View
- 展示数据
- 提供链接发起Servlet请求 Controller(Servlet)
- 接收用户的请求:(req:请求参数、Session信息...)
- 交给业务层处理对应的代码
- 控制视图的跳转
登录---->接收用户的登录请求---->处理用户的请求(获取用户登录的参数,username,password)---->交给业务层处理登录业务(判断用户名密码是否正确)---->Dao层查询用户名和密码是否正确---->数据库
Filter
Filter:过滤器,用来过滤网站的数据。
- 处理中文乱码
- 登录验证
Filter开发步骤:
- 导包
- 编写过滤器
- 导包不要错
- 实现Filter接口,重写对应的方法
- 在web.xml中配置Filter过滤器
总结
- 初始化:Web服务器启动,就已经初始化了,随时等待过滤对象
- 过滤器中的所有代码,在过滤特定请求的时候都会执行
- 必须要让过滤器继续通行
- 小会:Web服务器关闭的时候,过滤会销毁