JSP动作元素
JSP动作元素用来控制JSP的行为,执行一些常用的JSP页面动作。通过动作元素可以实现使用多行Java代码能够实现的效果,如包含页面文件、实现请求转发等。
它的标准语法:
<jsp:action_name attribute="value" />
有关于JSP动作元素有如下这些。
语法 | 描述 |
---|---|
jsp:include | 在页面被请求的时候引入一个文件。 |
jsp:useBean | 寻找或者实例化一个JavaBean。 |
jsp:setProperty | 设置JavaBean的属性。 |
jsp:getProperty | 输出某个JavaBean的属性。 |
jsp:forward | 把请求转到一个新的页面。 |
jsp:plugin | 根据浏览器类型为Java插件生成OBJECT或EMBED标记。 |
jsp:element | 定义动态XML元素 |
jsp:attribute | 设置动态定义的XML元素属性。 |
jsp:body | 设置动态定义的XML元素内容。 |
jsp:text | 在JSP页面和文档中使用写入文本的模板 |
jsp:include动作元素
<jsp:include page="relativeURL" flush="true|faluse" />
在上述语法格式中,page属性用于指定被引入资源的相对路径;flush属性用于指定是否将当前页面的输出内容刷新到客户端,默认情况下,flush属性的值为false。
下面是案例的主要代码:
<body>
<%Thread.sleep(5000);%>
included.jsp内的中文<br />
</body>
这是一个included.jsp文件的。
<body>
dynamicInclude.jsp内的中文
<br>
<jsp:include page="included.jsp" flush="true" />
</body>
这是dynamicInclude.jsp文件的。
等待5秒后,才会显示include.jsp页面的输出内容。如果将flush的值改为false,两个将会同时显示。
需要注意的是include指令和jsp:include标签都能够包含一个文件,但它们之间有很大的区别,具体如下。
jsp:include标签中要引入的资源和当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能够被Web容器独立执行。而include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件。
jsp:include标签中引入的资源是在运行时才包含的,而且只包含运行结果。而include指令引入的资源是在编译时期包含,包含的源代码。
jsp:include标签运行原理与RequestDipatcher.include()方法类似,即被包含的页面不能改变响应状态码或者设置响应头,而include指令没有这方面的限制。
jsp:forward动作元素
<jsp:forward page="relativeURL" />
案例:
welcome.jsp文件
<body>
你好,欢迎进入首页,当前访问时间是:
<%
out.print(new java.util.Date());
%>
</body>
jspforward.jsp文件
<body>
<jsp:forward page="welcome.jsp" />
</body>
地址栏中访问的是jspforward.jsp,但浏览器中显示的却是welcome.jsp页面的内容。由于请求转发是服务器端的操作,浏览器并不知道请求的页面,所以浏览器的地址栏不会发生变化。
其他的jsp动作元素大家可以参照下面的链接。我觉得挺全面的。
链接