jsp
基本概念
1 jsp 动态网页编程技术, 是 javaweb 服务端的动态资源
2 jsp 的本质就是 servlet, 服务器会将 jsp 编译为 servlet 形式的 java 文件传输给客户端
3 通常将把 servlet 作为 Web 应用中的控制器组件来使用,
JSP 技术作为数据显示模板来使用, 一般编辑在 WebContent 中
4 jsp 的页面格式与 html 一致, 区别只在于其上设置了 page 指令标签
一 jsp 在 eclipse 中的配置
Windows -preferrnces - 搜索 jsp
修改编码格式
JSP File 修改编码格式为 UTF-8
修改默认格式
JSP File-Editor-Templates - 选择 New JSP File(HTML)- 编辑
删除 html4 的声明
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
二 注释
1 显示注释
继承 HTML 风格, 在网页中可见 可能出现失效
<!-- 这是 HTML 的注释 -->
2 隐式注释 网页中不可见
jsp 注释
<%-- jsp 注释 --> 建议使用这个, 不易出错
继承 java 注释 使用在 Scriptlet 中 可能出现失效
<% // 单行注释 /* 多行注释 */ %>
三 Scriptlet 脚本小程序
java 代码必须要 Scriptlet 标记出来
1 脚本段
<% java 代码, 局部变量声明 %>
内容实际是写在 servlet 的 service 方法中, 变量是方法内的局部变量
2 声明全局变量
<%! 声明全局变量, 方法, 类 %>
内容实际是写在 servlet 类中, service 方法外
3 输出表达式
<%=(输出内容, 变量或表达式)%>
直接向页面输出内容
相当于 service 中写入 out.print( 输出内容 );
等同于脚本段 <% out.print(输出内容); %>
四 Page 指令标签
<%@ page 属性名 1="属性值 1" 属性名 2=" 属性值 2%>
设置在首行用于对 jsp 进行属性声明, 错误会导致浏览器不识别而执行下载
属性
language: 当前语言, 目前只支持 java
contentType: 设置响应类型及编码格式 (text/HTML; charset=UTF-8)
pageEncoding: 编码格式 (UTF-8)
编码格式优先级依次为 contentType, pageEncoding, 默认 ISO-8859-1
若未设置依次向后参照
import 导包信息, 可以多次设置 或者一个 import 指定多个导入值
isErrorPage: 是否是处理错误的页面, 默认 false
true 表示当前页面用来处理报错的, 就是可被 errorPage 指向的页面
errorPage: 指定错误跳转页面, 值为错误处理页面的相对 url
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"import="java.util.*" isErrorPage="false"errorPage="error.jsp"%> |
指令集标签还具备静态包含和导入 taglib 标签库的作用
五 inclide 静态包含
<%@incloude file="资源相对 url"%> 单标签
将所需要的 HTML 资源或 jsp 资源加载进来
服务器将资源中的内容以复制粘贴的形式全部复制到 jsp 文件中
两者不能不能有同名变量, 否则会报错
只生成了一个源码文件
优缺点: 运行效率稍高, 但耦合度高, 不灵活
六 incloud 动态包含
<jsp:include page="资源路径相对 url"></jsp:include> 双标签
将所需资源加载到页面中, 实质上是通过引用进行资源加载
1 实际操作中将页面工具栏, 头部信息, 尾部信息都分成各个独立的文件
使用时直接动态导入.
2 动态包含在代码的编译阶段, 包含和被包含部分是两个独立的部分
只有运行时, 才会动态包含进来, 好比方法的调用.
3 源文件和资源文件可以具备同名变量
参数传递
动态包含是双标签, 双标签中间不能加任何内容 / 空格 / 换行
双标签之间只能设置动态参数传递
<jsp:param value="参数值" name="参数名"/>
name 不支持表达式, name 支持表达式
参数是通过 gerParmetrt("name 属性") 进行获取 四大 jsp 域对象都能调用
动作标签
动态包含属于动作标签
<jsp: 动作标签 ...></jsp: 动作标签 >
动作标签会被编译为 java 代码, 执行具体的操作, 是有服务器解释执行的
- pageContext.PAGE_SCOPE (次数只是说明其范围在页面中, 与 page 对象无关)
- pageContext.REQUEST_SCOPE
- pageContext.SESSION_SCOPE
- pageContext.APPLICATION_SCOPE
- pageScope,requestScope,sessionScope,applicatonScope
- ${
- pageScope.key
- }
- ${
- num1> num2
- }
- ${
- num1>10
- }
- ${
- (num1+num2) <= 10
- }
- ${
- (num1+num2)> 10 && aa == ab
- }
- ${
- (num1+num2)> 10 || aa == ab
- }
来源: http://www.bubuko.com/infodetail-3121030.html