JSP基本语法

网页模板

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE></TITLE>

       </HEAD>

       <BODY>

       </BODY>

</HTML>

 

第一行的代码称为page指令,这里用它来改变JSP文件的编码,消除中文乱码的隐患。它还有其它的用途。

代码块

<%@page contentType="text/html;charset=gb2312" import="java.util.Date"%>

<HTML>

       <HEAD>

              <TITLE>代码块</TITLE>

       </HEAD>

       <BODY>

       <%

              Date d = new Date();

              System.out.println(d.toLocaleString());

       %>

       </BODY>

</HTML>

 

    注意这里的page指令,里面用到了import语句,用来导入java类。

表达式

<%@page contentType="text/html;charset=gb2312" import="java.util.Date"%>

<HTML>

       <HEAD>

              <TITLE>表达式</TITLE>

       </HEAD>

       <BODY>

       <%

              Date d = new Date();

       %>

       当前时间:<FONT COLOR="RED"><%=d.toLocaleString()%></FONT>

       </BODY>

</HTML>

 

表达式是在页面上输出数据的最常用方式,也是最推荐的方式,它将HTML代码与Java代码进行了分离,例如:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>表达式的使用</TITLE>

       </HEAD>

       <BODY>

       <TABLE border="1">

       <%

              for(int i=0;i<9;i++)

              {

       %>

                     <tr>

       <%

                     for(int j=0;j<9;j++)

                     {

       %>

                            <td><%=i*j%></td>

       <%

                     }

       %>

                     </tr>

       <%

              }

       %>

       </TABLE>

       </BODY>

</HTML>

全局变量

<%@page contentType="text/html;charset=gb2312" import="java.util.Date"%>

<HTML>

       <HEAD>

              <TITLE>全局变量</TITLE>

       </HEAD>

       <BODY>

       <%!

              Date d = new Date();

       %>

       当前时间:<FONT COLOR="RED"><%=d.toLocaleString()%></FONT>

       </BODY>

</HTML>

 

带有!的变量声明,这个变量就是全局变量,它在服务器中只有一个,不会多次生成,请观察上例页面,无论是刷新还是重新开启页面,页面上的时间不发生变化,除非关闭服务器。

include指令

include指令是将被引用的文件中的内容包含进来,一起执行。被包含的文件可以是任意类型的。例如:

 

common.txt

<%@page contentType="text/html;charset=gb2312" import="java.util.Date"%>

 

index.jsp

<%@include file="common.txt"%>

<HTML>

       <HEAD>

              <TITLE>include指令</TITLE>

       </HEAD>

       <BODY>

       <%

              Date d = new Date();

              out.println("时间:"+d.toLocaleString());

       %>

       </BODY>

</HTML>

运行以上的代码,我们会发现有乱码!这是怎么回事呢?不是说将common.txt中的内容已经包含进来了吗?

我们去查看work目录下的临时文件就会发现,这里所说的将内容包含进来一起执行,是指的他们被翻译成servlet之后,而在此之前,他们是被分别编译成servlet的,这导致了index.jsp中汉字的编码错误。

 

include指令可以出现在任何需要它的地方,被包含的文件中可以写任何所需要的代码,但是一般不要写HTML代码,否则会与其它文件的标签冲突。例如:

 

common.txt

<%

int i = 1,j = 2;

%>

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>include指令</TITLE>

       </HEAD>

       <BODY>

       <%@include file="common.txt"%>

       <%

              System.out.println((i+j));

       %>

       </BODY>

</HTML>

include动作

使用include动作时,先执行被包含的文件,然后将它执行的结果包含进来显示,因此,被包含文件通常也是JSP文件。先看下面的例子:

 

common.jsp

       <%

              int i = 1,j = 2;

              System.out.println(i+j);

       %>

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>include指令</TITLE>

       </HEAD>

       <BODY>

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

       <%

              int i = 1,j = 2;

       %>

       </BODY>

</HTML>

 

执行上例,我们会看到系统报错,因为如上所述,include指令是用来包含文件的内容,所以这里ij就会发生重复定义。我们将它改为include动作:

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>include动作</TITLE>

       </HEAD>

       <BODY>

       <%

              int i = 1,j = 2;

              System.out.println(i+j);

       %>

       </BODY>

</HTML>

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>include动作</TITLE>

       </HEAD>

       <BODY>

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

       <%

              int i = 1,j = 2;

       %>

       </BODY>

</HTML>

 

这时,系统就不会发生错误。因此,我们在选择使用include指令或动作时,要根据实际情况考虑。

 

include动作还可以用来进行参数的传递,主页面将参数信息传给从页面,然后将从页面的计算结果再包含进来,例如:

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>include动作传参数</TITLE>

       </HEAD>

       <BODY>

       <h1>参数1<%=request.getParameter("ref1")%></h1>

       <h1>参数2<%=request.getParameter("ref2")%></h1>

       </BODY>

</HTML>

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>include动作传参数</TITLE>

       </HEAD>

       <BODY>

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

              <jsp:param name="ref1" value="aaa"/>

              <jsp:param name="ref2" value="111"/>

       </jsp:include>

       </BODY>

</HTML>

 

注释

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>注释的使用</TITLE>

       </HEAD>

       <BODY>

       <!-- HTML注释,此注释内容会发送到客户端 -->

       <%

              // 可以使用JAVA的单行注释

              /*

                     多行注释

              */

       %>

       <%-- JSP中使用的注释,不会被发送到客户端 --%>

       </BODY>

</HTML>

forward跳转

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>forward跳转</TITLE>

       </HEAD>

       <BODY>

       <%

              System.out.println("跳转之前……");

       %>

       <jsp:forward page="common.jsp"/>

       <%

              System.out.println("跳转之后……");

       %>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>forward跳转</TITLE>

       </HEAD>

       <BODY>

       <H1>这里是common.jsp</H1>

       </BODY>

</HTML>

 

运行上例,我们可以看出,当执行了forward跳转后,该页面剩余部分的代码不再被执行,并且地址栏里也不会发生变化。

采用forward跳转可以将参数传递给下一个页面,例如:

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>forward跳转</TITLE>

       </HEAD>

       <BODY>

       <jsp:forward page="common.jsp">

              <jsp:param name="ref1" value="aaa"/>

              <jsp:param name="ref2" value="111"/>

       </jsp:forward>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>forward跳转</TITLE>

       </HEAD>

       <BODY>

       <h1><%=request.getParameter("ref1")%></h1>

       <h1><%=request.getParameter("ref2")%></h1>

       </BODY>

</HTML>

 

    值得注意的是,我们写成<jsp:forward page="common.jsp?ref1=aaa"/>这种形式同样是可以的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值