指令标签
<%@ 指令名 属性1="属性值1" 属性2="属性值2"...%>
参数:
指令名:jsp中有page,include和taglib三条属性;
1、page指令
<%@ page attr1="value1" ... %> 常用属性:
①language:目前只支持java
②extends:
③import:
④pageEncoding:
⑤contentType:设置jsp页面的MIME类型和字符编码
contentType="text/html;charset=utf-8"
⑥session:默认值true,允许使用session对象
⑦buffer:设置jsp的out输出对象使用的缓冲区大小,默认8KB,单位只能为kb;
⑧autoFlash:设置jsp页面缓存满时,是否自动刷新缓存。默认true。
⑨isErrorPage:设置成错误处理页面。
10)errorPage:对应url字符串,必须设置isErrorPage为true
2、include
静态包含;
被包含文件所有内容原样包含,在包含时不会被编译执行;
使用include指令,最终生成一个文件,因此不能有相同名称变量。
语法:
<%@ include file="path" %>
3、taglib
声明该页面中使用的标签库,同时引用标签库,并制定标签的前缀。
语法:
<%@ taglib prefix="tagPrefix" url="tagURI"%> 参数:
prefix:用于指定标签的前缀。不能命名为jsp、jspx、java、javax、sun、servlet和sunw。
uri:用于指定标签库文件的存放位置。
脚本标签
1、JSP表达式
<%= 表达式 %>
2、声明标识
用于定义全部变量或方法。
语法:
<%! 声明全局变量或方法 %>
3、代码片段标签
<% java代码或脚本代码 %>
动态标签
1、文件包含标签<jsp:include>
被包含的文件可以是动态文件或者静态文件,在编译执行后返回结果。
语法:
<jsp:include page="url" flush="fasle|true"/>
或
<jsp:include page="url" flush="false|true">
子动态标签<jsp:param>
</jsp:include>
参数:
page:用于指定被包含文件的<b>相对路径</b>。例如:top.jsp,表示包含的是与当前JSP文件相同文件夹中的top.jsp文件。
flush:可选,用于设置是否刷新缓冲区。默认false,如果设置true,在当前页面输出使用缓冲区的情况下,先刷新缓冲区,然后执行包含工作。
子动态标签<jsp:param>:用于向被包含的动态页面中传递参数。
include标签和<jsp:include>标签的区别:
1)include通过file属性指定,并且file属性不支持任何表达式;
<jsp:include>通过page属性指定,并且page属性支持jsp表达式。
2)<jsp:include>被执行时,程序会将请求<b>转发</b>(不是请求重定向)到被包含页面,并将执行结果输出到浏览器中,然后返回包含也继续执行后面的代码。
3)include不能有重名,<jsp:include>可以包含重名变量和方法。
2、请求转发标签<jsp:forward>
语法:
<jsp:forward page="url"/>
或
<jsp:forward page="url">
子动态标签<jsp:param>
</jsp:forward>
参数:
page:指定请求转发的目标页面。
<jsp:param>:向转向的目标文件中传递参数。
3、传递参数标签<jsp:param>
<jsp:param name="name" value="value"/>
JSP内置对象
1、request
request.setAttribute(String name,Object object);
request.getAttribute(String name);
2、response
1)重定向网页
response.sendRedirect(String path);
url:相对路径,或者是不同主机的url地址。
可以重定向。
重定向支持重定向到不同主机上。
用户可以从浏览器的地址栏中看到跳转后的地址。
重定向后,request中的属性全部失效,开始一个新的request对象。
3、session会话 session.setAttribute(String name,Object obj); session.getAttribute(String name); removeAttribute(String name);//移除指定对象 session.invalidate();//销毁session 设置会话生命周期: getLastAccessedTime():返回客户端最后一次与会话相关联的请求时间; getMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔; setMaxInactiveINterval():以秒为单位设置session的有效时间。 4、application 用于保存所有应用程序中的公有数据。 在服务器启动时创建,在服务器停止时销毁。 当application没有被销毁时,所有用户都可以共享该对象。 与session相比,application生命周期长,类似于系统的全局变量。 1)访问应用程序初始化参数 初始化参数在web.xml中配置,web.xml位于WEB-INF目录下,通过<context-param>标签配置。 方法名: application.getInitParameter(String name); 返回已命名的参数值 application.getAttributeNames(); 返回所有已定义的初始化参数名的枚举 2)管理应用程序环境属性 getAttributeNames():返回所有application对象使用的属性名; getAttribute(String name): setAttribute(String key,Object obj):使用指定名称和指定对象在application对象中进行关联; removeAttribute(String name):根据名称去除属性。 5、out 在浏览器输出信息,并管理应用服务器上的输出缓冲区. 方法: print(); println(); 管理缓冲区的方法: clear(): 清楚缓冲区内容,如果响应已经提交,则产生IOException; clearBuffer(): 清楚当前缓冲区中的内容,即使响应已经提交,也能够使用该方法; flush(): 刷新流; isAutoFlush(): 检测当前缓冲区已满时是自动清空,还是抛出异常; getBufferSize():获取缓冲区大小。