JSP
语法
1. ```<% 代码片段 %>```
2. ```<%! 声明语句 %>```
3. ```<%= 打印到页面的内容 %>```
注释
使用 <%-- --%>
注释JSP脚本
指令
使用 <%@ %>
定义JSP指令
分类:
<%@include file=""%>
<%@page%>
<%@ taglib uri="" prefix="" %>
详解: JSP 指令 | 菜鸟教程
内置对象
变量名 | 真实类型 | 作用 |
---|---|---|
pageContext | PageContext | 域对象,只针对当前页面共享数据 |
request | HttpServletRequest | 域对象,针对单次请求共享数据 |
session | HttpSession | 域对象,针对单次回话共享数据 |
application | servletContext | 域对象,对所有用户共享数据,作用范围最大 |
response | HttpServletResponse | 响应对象 |
page | Object | 当前页面的对象,相当于this关键字,可以获取其他8个内置对象 |
config | ServletConfig | servlet的配置对象 |
out | PrintWriter | 用于将内容打印到页面上 |
exception | Throwable | 异常对象,只有页面通过page指令设置了 isErrorPage=“true” 时才有效 |
MVC
-
Model (JavaBean)
业务逻辑操作
-
View (JSP)
数据展示
-
Controller (Servlet)
获取客户端输入
调用Model来获取数据
将数据交给View展示
EL表达式
作用: 为了实现MVC, 替代和简化JSP中的Java代码
语法: ${表达式}
取消JSP页面中的EL表达式解析方法: page指令指定 isELIgnored="true"
或 在执行的EL表达式中使用\
转义$
符号
获取对象的值
${域对象.对象名.属性名}
获取列表的值
${列表[索引]}
获取Map的值
- ${Map对象.key名称}
- ${Map对象[key名称]}
EL内置对象
常用内置对象: pageContext
可以通过pageContext获取JSP中的其他内置对象, 比如: pageContext.request
JSTL
- c:if (没有else标签)
- c:choose (相当于switch)
- c:foreach
软件开发的三层架构
推荐阅读: 两张图彻底搞懂MVC模型和三层框架以及区别和优缺点
-
表示层
Servlet
-
业务逻辑层
Service
-
数据访问层
Dao
关于三层架构和MVC的个人理解:
三层架构中表示层负责接收用户请求、转发请求、显示数据等;业务层负责组织业务逻辑;数据持久层负责持久化业务对象。
这三个分层中,每一层都有不同的模式,就是架构模式。表示层最常用的架构模式就是MVC。
MVC 是一种框架模式, MVC的作用是使各个模块各司其职
三层架构是为了减轻代码之间的依赖性,避免产生牵一发而动全身的后果