JSP标签

JSP标签
   ——为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容
虽然我们希望JSP页面仅用作数据显示模块,不要嵌套任何java代码引入任何业务逻辑,但在实际开发中不引入一点业务逻辑是不可能的,
但引入业务逻辑会导致页面出现难看java代码,怎么办?
Sun公司允许用户开发自定义标签封装页面的java代码,以便jsp页面不出现一行java代码。当然Sun公司在jsp页面中也内置了一些标签(这些标签叫做jsp标签/动作),开发人员使用这些标签可以完成页面的一些常用业务逻辑。
JSP标签也称之为Jsp Action(JSP动作)元素,它用于在JSP页面中提供业务逻辑功能。
 
  
  一、JSP内置标签
 
 1)非JavaBean标签   
 
<jsp:include>标签 
<jsp:forward>标签 
<jsp:param>标签 
 
a) <jsp:include>标签
 
  <jsp:include page/>(动,执行) 和 <%@ include file/>(静,翻译)
<jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入
语法:
<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
 
page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端,默认为false。
  true先将当前jsp页面的输出输到浏览器后,再加入包含的页面 ; false(将原新内容同时输到浏览器)(默认)动态包含,在需要包含时,才去调用执行

引入N张jsp就会生成N个servlet
总的jsp生成的结构良好
类似于函数调用

  <jsp:include>include指令的比较
 
1) <jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
2) 而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。
3) 不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,
  否则输出给客户端的内容将会是一个格式混乱的HTML文档。
 
b) <jsp:forward>标签
 
  <jsp:forward>标签用于把请求转发给另外一个资源。
语法:
<jsp:forward page="relativeURL | <%=expression%>" />
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
 
c)  <jsp:param>标签
 
  当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
 
  语法1:
<jsp:include page="relativeURL | <%=expression%>">
  <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
语法2:
<jsp:forward page="relativeURL | <%=expression%>">
  <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
 
  <jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。 
 
 
原文地址:https://www.cnblogs.com/hacket/p/2963884.html