JSP概述:
Java Server Pages(Java 服务器端的页面)
JSP注释:
HTML的注释:<!--注释--> 存在JSP源码中,存在与JSP翻译后的Servlet中,存在与生成的HTML中
Java代码的注释://单行注释 /*多行注释*/ /**文档注释*/ 存在与JSP的源代码中,翻译成Servlet中注释也存在,但是当执行完servlet后产生HTML注释消失
JSP的注释:<%-- --%>只会存在JSP的源代码中,翻译成Servlet后,JSP的注释就消失了
JSP指令:
指令的语法:
<%@ 指令名称 属性名称 = "属性值"......%>
1.page指令
<%@ page%> 设置JSP
ianguage :JSP脚本中使用的语言,现在只能写JAVA
contentType :设置浏览器打开这个JSP的时候采用的默认的字符集的编码
pageEncoding :设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到本地硬盘的编码
import :在JSP中引入类对象,import可以出现很多次
extends :设置JSP翻译成Servlet后继承的类,默认值:org.apache.jasper.runtime.HttpJspBean,这个值要想修改,这个类必须是HttpServlet
autoFlush :设置JSP的缓存会自动刷出 默认自动刷出
buffer :设置JSP的缓冲区的大小,默认8KB
session :设置在JSP中是否可以直接使用session对象,默认是true
isELIgnored :设置在JSP中是否忽略EL表达式,默认值false不忽略
errorPage :出现错误时,可以设置跳转到错误页面,(路径不需要设置工程名
)
isErrorPage :通过这个设置显示JSP的错误信息
设置全局的错误友好页面
在web.xml中设置: <error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
2.include指令 :指示JSP包含其他的页面(静态包含)
3.taglib指令:在JSP中引入标签库
<%@ taglib url ="标签库的URL的路径" prefix = "标签的别名"%>
JSP的内置对象:在JSP中可以直接使用的对象
JSP中有9大内置对象:
request: HttpServletRequest getParameter(),setAttribute(String name,Object value)
response: HttpServletResponse setHeader(String name,String value) getoutputStream();
session: HttpSession setAttribute();getAttribute();
application: ServletContext setAttribute();getAttribute();
page: Object toString();wait
pageContext:PageContext setAttribute();getAttribute(); JSP的域对象
config: ServletConfig getServletName();getServletContext()
out: JspWriter write(),print()
exception : Throwalbe getMessager(),getCause() 需要设置isErrorPage = "true"
page内置对象 : JSP翻译成Servlet后的类的使用
out内置对象 : out和response.getWriter是不是用一个对象?区别是什么
不是 out真实对象JspWriter,response获得Writer是PrintWriter
pageContext内置对象
获得其他的八个内置对象
主要在编写框架,通用性很高代码中
向JSP的四个域中存取数据
JSP的四个域范围
1.PageScope :当前页面中有效 pageContext
2.RequestScope :一次请求范围 Request
3.SessionScope :一次会话范围 session
4.ApplicationScope :整个应用范围 application
方法:findAttribute(""):从四个域中获取值 先从小范围查找
JSP的动作标签:
可以简化代码
<jsp:forward/>:用于页面转发
<jsp:inclued/>:用于页面包含.(动态包含)
<jsp:param/>:用于带有路径的标签下,传递参数
<jsp:userBean/>:用于在JSP中使用JavaBean
<jsp:setProperty/>:用于在JSP中向Java设置属性的
<jsp:getProperty/>:用于在JSP中获得JavaBean属性的
静态包含和动态包含的区别:
静态包含:将包含的代码直接复制过来生成一个class文件
动态包含:将包含的代码运行的结果拿过来,生成多个class文件