您的位置:首页 > Web前端 > JavaScript

01---jsp基本语法03(包含指令)

2012-04-10 14:15 375 查看
整jsp中包含两种包含指令

1、包含指令的意义:

一般正常的页面组成包含四个部分:上中下和左;

真正在改变的地方只是具体内容处,因为根据不同的用户浏览的不同,

那么肯定这个面会存在差异,现在基友两种做法实现以上的功能:

方法一:在每一个jsp页面中都包含工具栏,头部信息,尾部信息,具体内容:

方法二:将工具栏、头部信息,尾部信息都分成各个独立的文件,以后用的时候之间导入即可:

很明显第二种方法比第一种方法好,减少了代码的重复,以后修改方便;

包含分为动态包含和静态包含:

静态包含:

<%@ include file="要包含的文件路径"%>

·info.html文件的内容:

<h2><font color="red">info.html</font></h2>

·info.jsp文件的内容

<h2><font color="green"><%="info.jsp" %></font></h2>

·info_include.jsp文件的内容:

<%@ page contentType="text/html" pageEncoding="gbk"%>

<html>

<head><title>这是测试</title></head>

<body>

<h1>静态包含操作</h1>

<%@ include file="info.html"%>

<%@ include file="info.jsp"%>

</body>

</html>

静态包含就是将内容进行了直接的替换,就好比程序中定义了变量一样直接使用即可;

动态包含:

动态包含使用的是<jsp:include>指令完成的;与静态包含不同的是可以自动区分

被包含的页面是静态还是动态;

·不传参数:

<jsp:include page="{要包含的文件路径|<%=表达式%>}" flush="true|flase"/>

·传参数:

<jsp:include page="{要包含的文件路径|<%=表达式%>}" flush="true|flase">

<jsp:param name="参数名称" value="参数值">

……

</jsp:include>

只要是<>的代码都是标签代码,标签代码必须完结;

<%@ page contentType="text/html" pageEncoding="gbk"%>

<html>

<head><title>这是测试</title></head>

<body>

<h1>动态包含操作</h1>

<jsp:include page="info.html"/>

<jsp:include page="info.jsp"/>

</body>

</html>

标签指令必须完结:

<%@ page contentType="text/html" pageEncoding="gbk"%>

<h1> 参数一:<%=request.getParameter("name")%></h1>

<h1> 参数二:<%=request.getParameter("info")%></h1>

此时,接收的是从标签中传递过来的参数,可以根据自己的需要传递任意多个参数;

receive_param.jsp:

<%@ page contentType="text/html" pageEncoding="gbk"%>

<h1> 参数一:<%=request.getParameter("name")%></h1>

<h1> 参数二:<%=request.getParameter("info")%></h1>

include_demo03.jsp:

<%@ page contentType="text/html" pageEncoding="gbk"%>

<html>

<head><title>这是测试</title></head>

<body>

<h1>动态包含操作</h1>

<jsp:include page="receive_param.jsp">

<jsp:param name="name" value="lid"/>

<jsp:param name="info" value="yuj"/>

</jsp:include>

</body>

</html>

但是此时一个新的问题出现了,如果现在希望传递的参数内容是个变量

该如何?

<%@ page contentType="text/html" pageEncoding="gbk"%>

<html>

<head><title>这是测试</title></head>

<body>

<h1>动态包含操作</h1>

<%

String username="lid";

%>

<jsp:include page="receive_param.jsp">

<jsp:param name="name" value="<%=username%>"/>

<jsp:param name="info" value="yuj"/>

</jsp:include>

</body>

</html>

要传递变量,就是通过表单式完成;

2、该使用哪种语句:、

如果想要确定使用何种方式更容易,可以通过一段代码完成:

include.jsp:

<%

int x=10;

%>

<h1>include.jsp---><%=x%></h1>

以上为一个被包含的页面,这个页面中首先定义了一个x的变量,之后进行输出,

下面通过静态包含语句,包含以上的页面,并在页面中也定义一个变量x:

<%@ page contentType="text/html" pageEncoding="gbk"%>

<html>

<head><title>这是测试</title></head>

<body>

<h1>动态包含操作</h1>

<%

int x=0;

%>

<h1>这是info_include03中的x---》<%=x%></h1>

<%@ include file="include.jsp"%>

</body>

</html>

此时,程序运行时出现了500的HTTP状态码,那么很明显的就是表示程序的错误,

提示信息问x变量重复了;

之所以产生这个问题,主要的原因是静态包含的处理原则:

静态包含的处理原则就是相当于直接替换,就是被包含的页的代码相当于直接

放在了包含页中------先包含,后处理;

动态包含:

<%@ page contentType="text/html" pageEncoding="gbk"%>

<html>

<head><title>这是测试</title></head>

<body>

<h1>动态包含操作</h1>

<%

int x=0;

%>

<h1>这是info_include03中的x---》<%=x%></h1>

<jsp:include page="include.jsp"/>

</body>

</html>

以上运行没有错误,原因是动态包含是先处理后包含,包含的是处理后的结果;

很明显,第二种(动态)包含的操作更加容易使用,因为在开发中难免会出现重复变量的原因;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: