JSP
1. 概念:
JSP(Java Server Page),java服务器端页面,可以同时定义HTML标价,又可以定义java代码,JSP本质上就是一个Servlet,.jsp文件在转化成.java文件时,生成的.java文件继承了 org.apache.jasper.runtime.HttpJspBase
,而HttpJspBase继承了HTTPServlet,因此说jsp本质上就是一个Servlet,JSP的执行的过程如下:
- 服务器解析请求消息,找到是否有index.jsp资源
- 如果有就将index.jsp转换为.java文件
- 编译.java文件生成.class字节码文件
2. JSP指令
-
作用:用于配置JSP页面,导入资源文件等
-
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2....... %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-
分类(指令名称):
-
page:配置jsp页面
-
contentType:设置文件的MEMI文件类型以及字符集编码
-
pageEncoding:当前文件的编码方式
-
import:导入java资源包
-
errorPage:当前页面发生异常后指定转到的页面
-
iserrorPage:值为true可以使用内置对象exception,值为false或者不标注该属性不可以使用内置对象exception
-
-
include:用来包含页面,导入页面的资源文件
-
taglib:导入资源,比如导入jstl标签库
-
3. JSP注释
<%-- code here --%>
4. JSP脚本
JSP定义java代码的方式,不同的JSP脚本最后转换为java文件的位置不一样
- <% java代码 %>:定义的java代码在service方法中,service方法中可以定义什么,就可以在这里定义什么
- <%! java代码 %>:这种方式定义的java代码,转换后变为java类的成员变量
- <%= java代码 %>:这种方法定义的java代码,会输出到页面,输出语句可以定义什么,这种脚本就可以定义什么
3. JSP的内置对象
在JSP页面中不用创建,不用获取就可以直接使用的对象,JSP一共有9个内置对象
-
Request对象
-
Response对象
-
out对象:字符输出流对象,可以将数据输出到页面,与Response.getWriter()类似,但是二者之间还有区别:
- 在Tomcat服务器真正给客户端作出响应之前,会先找到response对象的缓冲区数据,再找out的缓冲区数据,也就是response的数据先于out输出
- response.getWriter()的数据总是先于out.writer的数据被输出
变量名 真实的类型 作用 pageContext PageContext 当前页面共享数据,还可以用来获取其他的八个内置对象 request HttpServletRequest 一次请求访问多个资源(转发) session HttpSession 一次会话的多个请求间共享数据 application ServletContext 所有用户间共享数据 response HttpServletResponse 响应对象 page Object 当前页面(Servlet)的对象,this out JSPWriter 输出对象,数据输出到页面 config ServletConfig Servlet的配置对象 exception Throwable 异常对象