文章目录
- JSP介绍
- JSP快速入门
- JSP原理
- JSP脚本
- JSP缺点
- EL表达式
- JSTL标签
- MVC模式和三层架构
- 案例
JSP介绍
- 概念:Java Server Pages,Java服务端页面
- 一种动态的网页技术,其中既可以定义HTML、JS、CSS等静态内容,还可以定义java代码的动态内容
- JSP=HTML+Java
JSP快速入门
javax.servlet.jsp
javax.servlet.jsp-api
2.3.3
provided
JSP原理
- JSP本质上就是一个Servelt
- Java Server Pages
- JSP=HTML+java,用于简化开发
JSP脚本
- JSP脚本用于在jsp页面内定义java代码
- jsp脚本分类
- <%%>内容会直接放到service方法中
- <%=%>:内容会放到out.print()中,作为out.print()的参数
- <%!%>:内容会放到jspService()方法之外,被类直接包含
- 练习:使用jsp脚本展示学生数据
<%
List students = new ArrayList();
students.add(new Student(1, "小黑", "男"));
students.add(new Student(2, "小红", "女"));
students.add(new Student(3, "小新", "男"));
%>
| 学号 |
姓名 |
性别 |
<%
for (Student student:students) {
%>
| <%=student.getIndex()%> |
<%=student.getName()%> |
<%=student.getSex()%> |
<%
}
%>
JSP缺点
- 由于jsp页面内,又可以定义HTML标签,又可以定义java代码,造成了以下问题:
- 书写麻烦:尤其是复杂页面
- 阅读麻烦
- 复杂度高:运行需要依赖各种环境,jre,jsp容器,javaee
- 占内存和磁盘:jsp会自动生成.java和.calss文件占磁盘,运行的是.class文件占内存
- 调试困难:出错后,需要找到自动生成的.java文件调试
- 不利于团队协作:前端人员不会java,后端人员不精html
EL表达式
- expression Language表达式语言,用于简化jsp页面内的java代码
- 主要功能:获取数据
- 语法:${expression}
- JavaWeb中的四大域对象:
- 1、page:当前页面有效
- 2、request:当前请求有效
- 3、session:当前会话有效
- 4、application:当前应用有效
- el表达式获取数据,会依次在这四个范围内寻找,找到为止
* 有的jsp页面会默认忽略el表达式导致jsp页面接收不到参数,需要设置为不忽略<%@ page isELIgnored="false" %>
JSTL标签
- JSP标准标签库(JSP Standarded Tag Library),使用标签取代jsp页面的java代码
- 导入坐标
jstl
jstl
1.2
taglibs
standard
1.1.2
- 在JSP页面上引入JSTL标签库<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 使用
Title
${status}
true
- 使用
- items:被遍历的容器
- var:遍历产生的临时变量
- varStatus:遍历状态(index属性从0开始,index属性从1开始)
- begin:开始数
- end:结束数
- step:步长
Title
| 学号 |
姓名 |
性别 |
| ${student.index} |
${student.name} |
${student.sex} |
MVC模式和三层架构
- MVC是一种分层开发模式,其中
- M:Model,业务模型,处理业务
- V:View,视图,页面展示
- C:Controller,控制器,处理请求,调用模型和试图
- MVC好处
- 三层架构
- 数据访问层:对数据库的CRUD操作
- 业务逻辑层:对业务逻辑进行封装,组合数据访问层中的基本功能,形成复杂的业务逻辑结构
- 表现层:接受请求,封装数据,调用业务逻辑,响应数据
案例
- 准备新的模块brand_demo,引入坐标
- 创建三层架构的包结构
- 数据库表tb_brand
- 实体类Brand
- Mybatis基础环境
- 没有mybatis-config.xml
- BrandMapper.xml
- BrandMapper接口