jsp简介:
jsp 技术,也要可以完成 Servlet 中动态展示网页内容的功能,必然,也要可以书写 java 代码。
JSP 是什么?
简化书写页面标签,前端工程师也能看的懂这个页面
Jsp 是为了同时满足动态生成网页和简化页面书写的需求诞生的
jsp运行机制
浏览器请求服务器上的.jsp文件->服务器将jsp文件翻译成.java文件(即servelt文件存放在服务器上)->编译成.class文件->执行
第一次运行 把jsp文件转换为.java源文件;
如果 index.jsp 源文件: index_jsp.java 就是一个Servlet源文件编译 .java 源文件 ,产生一个 .class字节码文件容器实例化,执行 请求和响应
总结:
jsp 技术最终还是用 java 类,执行网页内容, jsp 说到底还是一个 Servlet.
既然是 servlet,那么必然可以书写 java 代码,因此, JSP 中提供了书
写 java 代码的三种定义格式:(为了区别页面上的 html 代码)
jsp中java 代码的语法:
脚本元素有三种类型:声明,脚本段和表达式。
将书写的代码翻译在了类的成员位置。
代码翻译在_jspService 方法中,脚本片段,即使分开书写,也能最终组合在一起
源代码:代码翻译在_jspService 方法中,而且,被输出流输出
jsp中的注释
html 注释: !—注释 --(前端能看见的注释)
java 注释: Java 的注释必须嵌入在上面介绍的三个脚本中, 不能在 jsp 其他位置书写。
jsp 自己的注释: %-- 注释--%(程序员的注释)
jsp的指令元素
page指令
<@ page 属性名="value" %>
属性名:
language: 声明当前 jsp 使用的编程语言,默认值是java(它现在也只支持java)(工作的时候也是写 java)
import:导入要使用的包(工作的时候,需要导入类的时候使用)
contentType: 设 置 浏 览 器 解 析 html 的 编 码 表 , 有pageEncoding 的情况可以不设置。
相当于:Response.setcontentType(“text/html;charset=utf-8”) (工作的时候,不写这个属性)
当设置过 pageEncoding="UTF-8"之后,浏览器解析的时候,默认使用 UTF-8,所以不再重新设置编码表。
pageEncoding:设置当前 jsp 源文件的编码表 (工作的时候,就使用 UTF-8)
extends: 用于jsp转换后的Servlet类的父类
session: 设置在当前的页面中是否可以直接使用session 对象(工作时候一般不设置,默认为true)
buffer: 指定jsp隐含对象out使用的缓冲区大小,如果设置为none,表示不使用缓冲区。属性值只能为kb为单位
autoFlush: 指定缓冲区满的时候是否刷新
isThreadSafe: 是否线程安全
info: 指定页面的相关信息,可以通过Servlet接口getServletInfo()获取
errorPage:设置在当前 jsp 页面(jsp3.jsp)发生异常(int I= 1/0;)后, 跳转那个页面( 500.jsp)。
(工作的时候,如果页面有可能发生错误)
isErrorPage:设置当前的 JSP 页面(500.jsp),是否是显示错误信息页面( 500.jsp),如果是错误页面
可以看到错误的信息(使用 exception 对象——jsp 中的对象)
isELlgnored:是否解析 jsp 中的 EL 表达式(工作的时候,一般不写,使用默认的,默认为 false 解析
El 表达式)
deferredSyntaxAllowedAsListeral: 是否出现字符序列"#"(不包含引号)
trimDriectiveWhiteSpaces: 页面无关空白是否删除
补充:一般开发的时候,会把整个项目中的常见的错误处理配置到 web.xml 文件中
测试统一错误配置的时候,需要将 jsp page 指令中 errorPage 属性去掉(不然会跳转)
!-- 配置统一的错误页面 --
error-page
!-- 服务器的错误响应码 --
error-code500 /error-code
!-- 跳转那个页面 --
location /500.jsp /location
/error-page
!-- 服务器的错误对象 --
error-page
exception-type java.security.AccessControlException /exception-type
location/ace.html/location
/error-page
taglib指令
taglib 指令作用: taglib 指令在 jsp 导入已经定义好的标签库或者函数库(与类库( java 对象,一个一
个类)不是一个概念),方便程序员使用定义好的标签和函数
翻译:
将已经定义好的对象(标签和函数), 导入到当前的 jsp 文件中, 让我们可以使用。(相
当于使用 import 关键字,可以导入其他已经定义好的 java 类)
如;
(责任编辑:范老师)