动态⻚⾯技术(JSP/EL/JSTL )
JSP的发展
1 JSP技术
1.1 jsp的概念
Java Server Pages: java 服务器端⻚⾯
- 可以理解为:⼀个特殊的⻚⾯,其中既可以指定定义 html 标签,⼜可以定义 java 代码
- ⽤于简化书写!!!
本质:
- JSP本质上就是⼀个Servlet ,JSP在第⼀次被访问时会被Web容器翻译成servlet,再执⾏,
- 过程:
- 第⼀次访问 → helloServlet.jsp → helloServlet_jsp.java → 编译运⾏
(翻译后的java文件保存在tomcate的worck文件件里面)
- 第⼀次访问 → helloServlet.jsp → helloServlet_jsp.java → 编译运⾏
- PS:被翻译后的servlet在 Tomcat 的 work ⽬录中可以找到。
1.2 JSP脚本和注释
JSP的脚本:JSP定义Java代码的⽅式
- 1 < % java代码 %>:内部的Java代码翻译后,在service⽅法中。service⽅法中可以定义什么,该 脚本中就可以定义什么。
- 2 < %! java代码 %>:内部的Java代码翻译后,在jsp转换后的java类的成员位置。
- 3 < %= java代码 %>:内部的Java代码翻译后,会输出到⻚⾯上【out.print()】。输出语句中可以 定义什么,该脚本中就可以定义什么。
JSP注释: 不同的注释可⻅范围是不同
- 1. html注释:<!-- --> :可⻅范围 JSP源码、翻译后的servlet、⻚⾯显示html源码
- 2. java注释://单⾏注释 /*多⾏注释*/ :可⻅范围 JSP源码、翻译后的servlet
- 3. JSP注释:<%-- --%>:可⻅范围 JSP源码
1.3 JSP原理
JSP: Java server page html中嵌入java代码
本质就是一个Servlet
脚本: <%java代码%>
<%=表达式%>
<%!类的成员 %>
注释: //java注释(java脚本中) jsp中可见, java中可见
<!--html注释--> jsp中可见, java中可见, html可见
<%-- jsp注释 --%> jsp中可见
原理: demo6.jsp 翻译成 demo6_jsp.java(间接继承HttpServlet),
再编译成 demo6_jsp.class, 最后由响应写出到客户端作为html显示
翻译后的java文件在work文件夹中, 修改jsp需要刷新页面才能重新翻译
jsp java
html元素 out.write("html元素")
<%%> service方法中的java代码
<%=表达式%> out.print(表达式);
<%!类的成员 %> 类的成员
1.4 指令: <%@指令 %>
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 属性名3=属性值3 ... %>
作用:JSP的指令是指导JSP翻译和运⾏的命令,⽤于配置JSP⻚⾯,导⼊资源⽂件
- 分类:分三大类
- page: -- 配置JSP⻚⾯,根据不同的属性,指导整个⻚⾯特性
- language - 只支持java extends
- isELIgnored - 是否忽略EL表达式,false-不忽略
- errorPage:当前⻚⾯发⽣异常后,会⾃动跳转到指定的错误⻚⾯- 相当于出现异常后转发
- contentType:等同于response.setContentType()
- 1. 设置响应体的mime类型以及字符集 2. 设置当前jsp⻚⾯的编码
- pageEncoding:当前JSP⽂件的本身编码,内部可以包含contentType
- import:导⼊java的包
- session
- page: -- 配置JSP⻚⾯,根据不同的属性,指导整个⻚⾯特性