JSP中的Scriptlet

1-Scriptlet

 

      在JSP中大部分都是由脚本小程序组成,所谓的脚本小程序就是里面直接包含了JAVA代码。

在JSP中Scriptlet一共分为三种:

      · <%%>:定义局部变量,编写语句

      · <%!%>:定义全局变量,可以编写类、方法

      · <%=%>:表达式输出,专门输出变量或一个具体值

1.1  <%%>

 

      此为最常见的Scriplet代码,代码如下:

JSPDemo02.jsp:

 

<%

         int i = 10 ;

         int j = 20 ;

         out.println(i * j) ;

         out.println("<h1>"+(++i)+"</h1>") ;

%>

 

 

 

 

      发现,以上的程序无论怎么刷新页面,i的内容依然是11,是固定的,因为每次都重新声明了。

 

 

1.2<%!%>

 

      一般情况下都会使用此Scriplet定义一个全局变量,全局变量是无论怎么刷新,都只声明一次,只有很少的情况下才会用此语句去定义一个方法,但是100%情况下是不可能去定义一个类的。

 

 

 

<%!

         int i = 10 ;

         int j = 20 ;

%>

<%

         out.println(i * j) ;

         out.println("<h1>"+(++i)+"</h1>") ;

%>

 

 

程序中,只要一刷新页面,则就自己增加,因为声明的是一个全局变量,所以只声明一次。

 

例如:在<%!%>定义一个方法,不要轻易这样使用

 

<%!

         int i = 10 ;

         int j = 20 ;

         public int add(int x,int y){

                   return x + y ;

         }

%>

<%

         out.println(add(10,20)) ;

         out.println("<h1>"+(++i)+"</h1>") ;

%>

 

 

3-<%=%>

 

      表达式输出,专门输出一个变量或一个具体的值。

例如:以下代码使用了表达式输出

 

<%

         int i = 10 ;

%>

 

<%=i%>

<%="hello World!!!"%>

 

 

4-使用那种输出更好呢?

 

      之前已经学过了两种输出数据:

              · out.println

              · <%=%>

      为了验证此程序,下面通过两段代码进行比较,此代码的功能就是在屏幕上打印一个表格。

4.1使用out.println()完成

 

<%

         out.println("<table border=\"1\">") ;

         for(int i=0;i<10;i++){

                   out.println("<tr>") ;

                   for(int j=0;j<10;j++){

                            out.println("<td>"+(i*j)+"</td>") ;

                   }

                   out.println("</tr>") ;

         }

         out.println("</table>") ;

%>

 

 

      以上确实已经完成了功能。但是现在需要美化表格的话,根本无法用网页工具进行编辑。因为把JAVA代码和HTML代码绑在一起了,所以修改困难

 

 

4.2 使用<%=%>完成

      所以,最好将HTML与JAVA代码进行分割

<table border="1">

<%

        for(int i=0;i<10;i++){

%>

                   <tr>

<%

                   for(int j=0;j<10;j++){

%>

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

<%

                   }

%>

                   </tr>

<%

        }

%>

</table>

 

 

      通过以上实现的代码,发现使用表达式输出要比直接使用out.println输出更方便,而且便于修改,所以在开发中严格要求,不允许出现任何的out.println语句。

 

 

5-思考?

 

      要求JSP页面可以根据用户前台表单输入的信息,打印表格,例如:前台可以输入表格的行数和列数。接收之后进行打印。

JSPDemo08.htm:

<FORM METHOD="POST" ACTION="JSPDemo08.jsp" border="1">

<TABLE>

<TR>

         <TD colspan="2">打印表格</TD>

</TR>

<TR>

         <TD>输入要打印表格的行数:</TD>

         <TD><input type="text" name="rownum"></TD>

</TR>

<TR>

         <TD>输入要打印表格的列数:</TD>

         <TD><input type="text" name="colnum"></TD>

</TR>

<TR>

         <TD colspan="2">

                   <input type="submit" value="打印">

                   <input type="reset" value="重置">

         </TD>

</TR>

</TABLE>

</FORM>

JSPDemo08.jsp:

<%

         // 需要接收请求内容

         int row = 0 ;

         int col = 0 ;

         try{

                   row = Integer.parseInt(request.getParameter("rownum")) ;

                   col = Integer.parseInt(request.getParameter("colnum")) ;

         }catch(Exception e){

%>

                   <h1>ERROR!!!</h1>

<%

         }

%>

<table border="1">

<%

         for(int i=0;i<row;i++){

%>

                   <tr>

<%

                   for(int j=0;j<col;j++){

%>

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

<%

                   }

%>

                   </tr>

<%

         }

%>

</table>

 

 

      整个程序上体现出了完整的交互性的效果,根据用户输入的内容可以自己进行相应的输出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟咸鱼一锅端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值