美文网首页JavaWeb
JavaWeb-017-JSP标签

JavaWeb-017-JSP标签

作者: 53b3f4658edc | 来源:发表于2017-11-27 15:36 被阅读12次

概念

  • JSP还提供了一种称之为Action的元素,在JSP页面中使用Action元素可以完成各种通用的JSP页面功能,也可以实现一些处理复杂业务逻辑的专用功能。
  • Action元素采用XML元素的语法格式,即每个Action元素在JSP页面中都以XML标签的形式出现。
  • JSP规范中定义了一些标准的Action元素,这些元素的标签名都以jsp作为前缀,并且全部采用小写,例如,<jsp:include>、<jsp:forward>等等。

内容

  • <jsp:include>标签
  • <jsp:forward>标签
  • <jsp:param>标签

<jsp:include>标签

  • <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
    • 语法:
      <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
  • page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
  • flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。

<jsp:include>标签与include指令的比较

  • <jsp:include>标签是在当前JSP页面的执行期间插入被引入资源的输出内容,当前JSP页面与被动态引入的资源是两个彼此独立的执行实体,被动态引入的资源必须是一个能独立被WEB容器调用和执行的资源。include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件共同合被翻译成一个Servlet的源文件。
  • 使用<jsp:include>标签和include指令都可以把一个页面的内容分成多个组件来生成,开发者不必再把页眉和页脚部分的相同HTML代码复制到每个JSP文件中,从而可以更轻松地完成维护工作,但是都应注意最终的输出结果内容应遵循HTML语法结构,例如,如果当前页面产生了<html>、</html>、<body>、</body>等标记,那么在被引入文件中就不能再输出<html>、</html>、<body>、</body>等标记。
  • <jsp:include>标签对JSP引擎翻译JSP页面的过程不起作用,它是在JSP页面的执行期间才被调用,因此不会影响两个页面的编译。由于include指令是在JSP引擎翻译JSP页面的过程中被解释处理的,所以它对JSP引擎翻译JSP页面的过程起作用,如果多个JSP页面中都要用到一些相同的声明,那么就可以把这些声明语句放在一个单独的文件中编写,然后在每个JSP页面中使用include指令将那个文件包含进来。

a.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    
    <body>
        <h1>A Page</h1>
        <%--
            利用JSP的标签进行动态的引入:
                1.有两个java源文件,自己是自己的
                2.语法:
                    <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
                3.说明:
                    page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
                    flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
         --%>
         <jsp:include page="b.jsp"></jsp:include>
    </body>
</html>

b.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

        <h1>B Page</h1>

结果:


微信公众号:JavaWeb架构师 微信公众号:JavaWeb架构师

<jsp:forward>标签

  • <jsp:forward>标签用于把请求转发给另外一个资源。
  • 语法:
    <jsp:forward page="relativeURL | <%=expression%>" />
  • page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
  • RequestDispatcher.forward方法、PageContext.forward方法、<jsp:forward>标
    签的区别:
    • 调用RequestDispatcher.forward方法的JSP脚本代码的前后不能有JSP模版内容。
    • 调用PageContext.forward方法的JSP脚本代码的后面不能有JSP模版内容。
    • <Jsp:forward>标签的前后都能有JSP模版内容。

<jsp:param>标签

  • 当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给的资源是一个能动态执行的程序时,例如Servlet和JSP页面,那么,还可以使用<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>标签来传递多个参数。
    a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    
    <body>
        <h1>A Page</h1>
        
        <%--
            进行转发:
                作用:<jsp:forward>标签用于把请求转发给另外一个资源。
                语法:
                    <jsp:forward page="relativeURL | <%=expression%>" /> 
                说明:
                    page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
                优点:
                    相比于RequestDispatcher.forward,优势是可以使用jsp:param子标签向转发的页面传送一些参数
         --%>
         
         <%--
                向b,jsp页面传送参数
                注意:
                    1.JSP动作标志后面不能有注释(这段注释写在里面就会出现异常)
                        http://blog.sina.com.cn/s/blog_8acf1be1010179g9.html
                    2.JSP动作标志简化
                        http://stackoverflow.com/questions/2092665/jsp-expecting-jspparam-standard-action-with-name-and-value-attributes
                    3.当标签没有配对参数时,配对标签不能换行
                        http://blog.csdn.net/jeamking/article/details/6296919
         --%>
        <jsp:forward page="b.jsp">
            <jsp:param value="123" name="numberAttr"/>
        </jsp:forward>

    </body>
</html>

b.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    
    <body>
        <h1>B Page</h1>
        
        <%-- 接收a.jsp传送过来的参数,和表格的输入参数获取是一样的 --%>
        <%
            String value = request.getParameter("numberAttr");
        %>
        <h2> <%= value %> </h2>
    </body>
</html>
微信公众号:JavaWeb架构师

其它

  • 源码下载
关注下方公众号,回复:javaweb_course.code
完整教程PDF版本下载

相关文章

  • JavaWeb-017-JSP标签

    概念 JSP还提供了一种称之为Action的元素,在JSP页面中使用Action元素可以完成各种通用的JSP页面功...

  • 标签,标签

    宇宙很大,“宇宙”这俩字儿很小。 宇宙很复杂,“宇宙”这俩字儿很简单。 宇宙时刻在变化,“宇宙”这俩字儿没什么变化...

  • JAVAWEB总结1_HTML

    常用标签 标签 标签 标签 标签 标签 标签 标签 标签

  • html学习之路(三)- 块级标签

    div标签 p标签 pre标签 figure标签 figcaption标签 ul标签 ol标签 li标签 dl标签...

  • img标签,a标签,form标签

    img标签 作用:在页面中显示一张图片 属性: src 图片的路径 width 图片宽 height 图片高 al...

  • html学习之路(二)- 行内标签

    hr标签(块级标签) br标签 wbr标签 span标签 a标签 small标签 abbr标签 dfn标签 bdo...

  • html5的学习

    标签的学习 标签 : 网页的头部标签 标签 : 网页的标题信息标签 标签 : 段落标签 标签 : 强调字体标签 默...

  • ## HTML基础-常见标签

    ## HTML基础-常见标签 # hr标签 # --> # img标签 # br标签 # p标签 # a标签 # ...

  • 04.标签

    单标签 注释标签:ctrl+/ 换行标签: 水平线标签: 双标签 文本标签: 文本标签: 标题标签 文本格式化标签...

  • JSTL 标签库

    out 标签 redirect 标签 set 标签 remove 标签 if 标签 case 标签 fn:cont...

网友评论

    本文标题:JavaWeb-017-JSP标签

    本文链接:https://www.haomeiwen.com/subject/tufdbxtx.html