服务器渲染技术-JSP
1.初识JSP
java Servlet Pages:java的服务器页面
JSP= html + Java片段 + 标签 + Javascript + css
jsp技术基于Servlet,jsp就是对Servlet的包装,其本质上就是一个Servlet在加了一些自己的功能对象
JSP运行原理:Tomcat(服务器):xx.jsp 解析——> xx-jsp.java 编译 ——>xx-jsp.class,由此可以看出jsp实际上就是一个Java程序,其性能与java关联
JSP是服务器渲染技术,服务器渲染技术还有thymeleaf,之后学习。
jsp注释(JSP= html + Java片段 + 标签 + Javascript + css),自然的,jsp文件中可以有java注释,html注释,以及jsp本身的注释(例子:<%--注释内容--%> )
2.jsp中常用的Page指令
contentType:表示jsp文件返回数据的形式
pageEncoding:表示当前jsp页面文件本身的字符集(编码)
language:语言
import:同java,导入包、类、接口
3.Jsp三种常用的脚本
3.1声明脚本
<%! 声明的java代码%>
声明,给类定义属性,方法,静态变量
3.2表达式脚本
<%= 表达式%>
在jsp页面输出信息,表达式结尾不加;后面可以用EL(Expression Language)表达式语言来简化代替
3.3代码脚本
<%java代码%>
后面可以使用JSTL(jsp标准标签库进行简化-需要导入jar包)
4.Jsp内置对象
inbulid:内置,
服务器(tomcat)将jsp翻译成Servlet后,会内置九大内置对象,可以直接使用
5.Jsp域对象
作用域内(多个页面之间)进行存取数据
作用域(ASC)
pageContext:只有本文件内有效
request:一次请求有效(eg:请求转发)
session:一个会话,只要会话没有变就有效(eg:多次http请求的请求重定向)
application:整个web运行期间有效
6.Jsp请求转发标签
为了简化
eg:aa.jsp请求转发到bb.jsp <jsp:forward page="/bb.jsp"></jsp:forward>
7.EL表达式语言
简化表达式脚本,基本语法:${key1}
eg:<%= request.getAttribute("key1")%> 简化为${key1}
小小区别:当get结果为空时,<%= request.getAttribute("key1")%>取出来是null,${key1}底层做了优化,结果为""(空串)
eg:${ empty key1},判断是否为空,返回true/flase
8.JSTL-jsp标准标签库
<%java代码%>简化为<c:set></c:set >
if语句--------- c:if switch语句--------c:choose for语句----------c:foreach