JSP与EL&JSTL详解:指令、注释与标签库
需积分: 0 102 浏览量
更新于2024-08-05
收藏 7KB MD 举报
"这篇资源是关于EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的笔记,主要涵盖了JSP的基础知识,包括JSP的指令、注释、内置对象,以及MVC开发模式,EL表达式,JSTL标签,并简单提及了三层架构的概念。"
### JSP 指令
JSP 指令用于配置JSP页面,分为三种类型:page、include和taglib。
1. **page** 指令:用来配置整个JSP页面的属性。例如,`contentType`属性用于设置响应体的MIME类型和字符集,`import`用于导入Java类,`errorPage`指定错误页面,而`isErrorPage`则标记页面是否处理错误。
2. **include** 指令:用于包含其他资源文件,如HTML、JSP或其他静态或动态内容。这有助于代码重用和结构化布局。
3. **taglib** 指令:导入自定义或标准标签库,例如JSTL。通过指定`prefix`(前缀)和`uri`(统一资源标识符),我们可以定义如何在JSP页面中引用这些标签。
### JSP 注释
JSP提供了两种注释方式:
1. **HTML注释**:`<!---->`,只适用于注释HTML代码。
2. **JSP注释**:`<%----%>`,可以注释JSP中的任何内容,包括脚本和标签。
### JSP 内置对象
JSP提供9个内置对象,无需手动创建,可以直接使用:
- **pageContext**:用于存储页面范围的数据,同时可以访问其他所有内置对象。
- **request**:`HttpServletRequest`实例,覆盖一次HTTP请求的所有资源(转发)。
- **session**:`HttpSession`,跨多个请求(一次会话)存储数据。
- **application**:`ServletContext`,全局共享数据,适用于所有用户。
- **response**:`HttpServletResponse`,负责向客户端发送响应。
- **page**:表示当前Servlet实例,类型为`Object`。
- **out**:`JspWriter`,用于输出数据到响应。
- **config**:`ServletConfig`,提供了关于Servlet的配置信息。
- **exception**:如果`isErrorPage`设为`true`,则表示当前页面处理异常,可以访问。
### MVC 开发模式
MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、数据模型和用户界面。在Web开发中,JSP通常作为View,负责显示数据;Servlet或控制器处理请求和业务逻辑;Model则存储和处理数据。
### EL 表达式
EL(Expression Language)是JSP 2.0引入的一种轻量级的脚本语言,用于简化数据访问。它允许开发者直接在JSP页面上通过表达式获取和设置数据,如`${var}`,减少了脚本元素的使用。
### JSTL 标签
JSTL是一组标准标签库,包括核心标签库(core)、SQL标签库、XML标签库等,提供了更丰富的控制流和数据处理功能,使得JSP页面更加简洁,易于维护。例如,`<c:forEach>`用于循环遍历集合,`<c:if>`进行条件判断。
### 三层架构
三层架构是一种软件设计模式,通常包括表现层(View)、业务逻辑层(Business Logic Layer,BLL)和数据访问层(Data Access Layer,DAL)。在Web开发中,JSP页面作为表现层展示信息,Servlet或控制器作为业务逻辑层处理请求和调用服务,数据库操作则在数据访问层完成。这种分层设计有助于提高代码的可维护性和可扩展性。
2020-04-30 上传
2022-09-23 上传
2021-07-01 上传
2022-08-27 上传
2024-04-05 上传
2024-04-26 上传
2024-10-23 上传
余年level0
- 粉丝: 0
- 资源: 9
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践