JSP内置对象:
1. request客户端的请求,dopost和doget信息存在这里
2. response服务器传回客户端的应答
3. session 会话
4. out 想客户端传输内容的输出
5. page页面对应的对象,Object下的类的实例
6. application服务器级储存对象,可以理解为超大号的session和request,在服务器运行的时候一直存在
7. exception异常
8. pageContext超小型的存储对象,request可以在页面间存在,这个只能在本页面中存在.
9. Context初始化servlet时传输信息的对象
page指令,格式:<%@ 指令名 属性名= 属性 ; 属性名=属性 ; .........%>,page指令可以有多个
JSP中的page指令:
1. pageEncoding:当前页面中的编码格式.
例:pageEncoding=”utf-8”
2. language使用语言,只能用java,其实可以不写…
例:language=”java”
3. contentType也是当前页面的编码格式,和pageEncoding差不多,只不过contentType可以设置文本格式,pageEncoding是默认的text/html
例:contentType=”text/html; charset=”UTF-8”
contentType=”text/xml”; charset=”UTF-8”
一般用一个就行,不能设置冲突
4.import指令:
Java代码块中需要使用某些Java类的时候,有时候需要导入类,再import中就是导入类的作用.
例:imopry=”java.util.Date”
5.错误页跳转errorPage,当页面发生异常时跳转到某个指定页面
errorPage指令中,目标页面的路径,写在页面动态部分中,以”/”开头代表工程根目录
在错误页面的page指令中,可设置isErrorPage=”true”属性,这样在错误页面编译成servlet的时候,再service中会显示exception属性.(正常excepiton内置对象是不显示的)
然后再页面中,使用表达式<%=exception.getMessage()%>,可以在页面中输出这个异常原因
6.Session指令,可以设置session=”false”
在页面中使用内置对象session时,若当前页面有以前的session对象,则会继续读取之前的session对象,但是若会话曾经关闭,原有session对象已经销毁的情况下,会自动新建一个request的session对象供使用.
平时,生成新session和读取旧session的动作都是Java代码自动实现的,也可以再指令中进行手动设置是否自动生成.
Session=”false”;
该命令会阻止页面在没有旧session的情况下生成新的session,但是在使用的时候就会视为null.
另外,在java代码中,也可以设置是否新生成session:
request.getSession(true);或不带参数 ---自动生成,存放数据时使用,防止空指针
request.getSession(false); ----不自动生成
7. Include指令:
可以将另一个jsp页作为指令编写入一个jsp中.
例如:jspA jspB
jspA中任意地方插入<%@include=”/TestWeb/jspB.jsp”%>,则会将jspB页面插入该位置.(由于是动态部分,路径使用相对路径”/”).
虽然此时有2个jsp,但是访问jspA时,不生成jspB的.java和.class文件,程序会将2个jsp全部编译进一个servlet的service方法中.所以之间的变量也可以互相访问.比如在jspB种声明一个变量,那么在jspA中也可以使用.但是使用时要注意先后顺序,不然在jspA中先调用include jspB,然后再在A中声明一哥变量x ,此时就不能在先前的jspB中使用 x,显然因为java代码中还未声明变量x
另外,在2个jsp中,不能定义2个同名的局部变量,否则就相当于在service方法中声明2个同名变量,显然是不允许的.
在网页上可以实现类似frame框架的功能,使页面上显示不同的部分互补干扰.