声明一个JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
JSP的运行原理
先将JSP解析为.java文件,该.java就是一个Servlet类,然后编译为.class文件运行
JSP的9大内置对象
request 用户端请求,此请求会包含来自GET/POST请求的参数
Response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。
response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)
out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息
applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息
config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。
page表示从该页面产生的一个servlet实例
JSP脚本:
<% %> :写在这个里面的内容相当于写在方法(_JspService(参数1,参数2))中的代码
<%! %> :写在这个里面的内容相当于写在类(当前jsp翻译成的java类)中的代码
<%= %> :写在这个里面的内容相当于response.getWriter.write();向浏览器输出内容
JSP注释:
<%-- --%> :JSP注释,它会影响整个页面的最终结果
// :java注释,它会影响整个页面的最终结果
:HTML注释,它不会影响整个页面的最终结果
EL表达式中11个内置对象
param
paramValues
header
headerValues
initParam
cookie
pageContext
pageScope
requestScope
sessionScope
applicationScope
取值时,page_scope的作用?
pageContext.getAttribute("book",pageContext.REQUEST_SCOPE);
明确指出从哪个域范围中获取属性值!!!!!上面这个它不会从page域中获取数据,而是从request域中。
如果没有指定scope,那么会根据你使用的这个域对象来找
pageContext.getAttribute("book"); //从page域中查找
如果没有指定scope,调用的是findAttribute();它会从最小的访问依次向大范围查找直到找到为止,如果找到不去更大的范围找,如果连最大范围都没找到,返回null
pageContext域对象的使用
作用域为当前页面
提供了获得其他8内置对象的方法 getXXX()
域对象方法有点特别
pageContext设置了四个int类型的属性值scope
1.PAGE_SCOPE
2.REQUEST_SCOPE
3.SESSION_SCOPE
4.APPLICATION_SCOPE
域中值的操作与其他与类似,不过多了一个参数 int scope
多了一个findAttribute(name)方法,若有多个相同name,则根据域的范围大小由小至大返回
JSP指令
静态包含
<%@ include file="src" %> --- 将指定位置的文件数据直接添加到此处,合并为一个.jsp文件
动态包含
flush表示是否刷新out.print数据
动态包含:先解析为.java再编译为.class文件,在合并为一个html文件
page指令:
<%@ page 属性名1:属性值1 属性名2=属性值2 %>
常用属性:
contentType: 指定MIME类型以及页面的编码
pageEncoding:指定页面编码(它和contentType至少写出一个来,那么另外一个默认就和这个的值一样,如果写2个值必须一致)
isErrorPage: 我们可以通过设置该属性来查看9大内置对象的Exception对象!
language:指定语言 java
import:当我们在jsp页面中书写了java代码,使用的 包可以使用这个属性来引入