什么是jsp?
本质是一个servlet,是一种动态网页的开发技术,它可以使用jsp标签在html网页中插入java代码
格式:格式<% %>
jsp的执行原理
1、翻译阶段,将jsp文件翻译成java文件
2、编译阶段,将java文件编译成class文件
3、执行阶段,将class就插入到html页面职工,并且返回给浏览器
jsp脚本
<% java代码 %>: java代码
<%= java代码或者数据 %> 在网页上输出
<%! %> 定义成员(成员变量 成员方法)
eg:循环打印表格
<table border="1px" width="80%">
<tr>
<td>name</td>
<td>age</td>
<td>gender</td>
</tr>
<% for(int i = 0;i<5;i++){ %>
<tr>
<td><%=i%></td>
<td><%=i%></td>
<td><%=i%></td>
</tr>
<% } %>
</table>
jsp指令
声明jsp页面的一些属性和动作
格式:<%@指令名称 属性= 值 %>
指令:
page:
contentType:设置文件的mime类型 设置对应的响应流的编码
language:当前页面支持的语言 java
pageEncoding:当前页面的编码格式
如果以上两个编码同时设置,就各用个的
如果出现一个,就共同使用
如果不出现,使用服务器默认的编码(tomcat8以后:utf-8,tomcat7以及以前ISO8859-1)
import:导入java的jar包
errorPage:错误页面,入股当前页面出现错误 就跳转
isErrorPage:标注当前页面是否是 错误页面默认是false
include:静态包含(包含其他页面的源码)
只会产生一个java文件和一个class文件
taglib:导入jsp的标签库
jsp9个内置对象
out:页面输出
request:请求
response:响应
session:会话
application:全局管理者
config:servletConfig
page:Object类型 代表当前对象
pageContext:当前页面的上下文对象(jsp才有)
exception:只有当前jsp页面设置为一个 错误页面才会有这个对象
4个域对象:
applicction:整个工程
session:一次会话(从浏览器打开到关闭)
request:一次请求
pageContext:当前页面
1、域对象
2、获取其他的内置对象
getXxx()
3、操作其他域对象
scope:用来描述要存储到哪个域中
setAttribute(key,value,scope)
getAttribute(key,scope)
scope的取值:
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
4、便捷查找
findAttribute()
根据域的范围从小到大进行排查,如果查询到就返回结果 并且停止查询
jsp的动作标签
<jsp:include>:动态包含
如果有对各界面,会产生多个java源文件和class文件
<jsp:forward>:请求转发
扩展: 在web.xml中配置 通用的错误页面
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/404.jsp</location>
</error-page>