一、今日内容
1. jsp概念
2. jsp原理
3. jsp内置对象
二、JSP
1. jsp概念
1. 概念:
* Java Server Pages: java服务器端页面
* 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
* 作用:用于简化书写!!!
* 因为客户端的页面有服务器端回写资源,servlet需要将动态资源和静态资源通过getWriter或getOutputStream将所有消息通过响应体写到客户端的浏览器上。而使用jsp页面不需要我们手动将资源写回浏览器,它回自动将资源写回
2. 指令
* 作用:用于配置JSP页面,导入资源文件
* 格式:
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
* 分类:
1. page : 配置JSP页面的
* 重要属性:
* contentType:等同于response.setContentType()
1. 设置响应体的mime类型以及字符集
2. 设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
* import:导包
* errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
* isErrorPage:标识当前也是是否是错误页面。
* true:是,可以使用内置对象-exception
* false:否。默认值。不可以使用内置对象-exception
2. include : 导入其他页面,作为子界面
* <%@include file="top.jsp"%>
3. taglib : 导入资源
* <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
* prefix:前缀,自定义的,一般用c
3. 注释:
1. html注释:
<!-- -->:只能注释html代码片段
2. jsp注释:推荐使用
<%-- --%>:可以注释所有
2. jsp原理
* 原理
* JSP本质上就是一个Servlet,它继承了HttpServlet
[图片上传失败...(image-4284da-1584450403568)]
下图可以看见,其将资源回写给浏览器:
3.jsp内置对象
JSP的内置对象:
* 在jsp页面中不需要获取和创建,可以直接使用的对象
* jsp一共有9个内置对象。
变量名 真实类型 作用
1. pageContext--\ PageContext 当前页面共享数据,还可以获取其他八个内置对象
2. request ---|这四个都是域对象 HttpServletRequest 一次请求访问的多个资源(转发)
3. session ---| HttpSession 一次会话的多个请求间
4. application--/ ServletContext 所有用户间共享数据
5. response HttpServletResponse 响应对象
6. page Object 当前页面(Servlet)的对象 this
7. out JspWriter 输出对象,数据输出到页面上
8. config ServletConfig Servlet的配置对象
9. exception Throwable 异常对象
* out:字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
* response.getWriter()和out.write()的区别:
* 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。所以---response.getWriter()数据输出永远在out.write()之前
* 推荐使用out,因为service方法内部使用的是out输出,统一使用比较好。