`
jiangduxi
  • 浏览: 443919 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JSP语法详解四

阅读更多

 JSP脚本元素

  JSP脚本元素是JSP代码中使用最频繁的元素,特别是Scriptlets,在早期的JSP代码中它占有主导地位。脚本元素把JSP的所有一切都集中在一起,它通常是用Java写的脚本代码。它允许变量声明和函数声明(编译成Servlet时,它是Servlet的属性和操作),可以包含任意的Java脚本代码和对表达式求值。

 

1) 声明(Declaration)

      在JSP里,声明是一段Java代码,它用来定义在产生的类文件中的类的属性和方法。声明后的变量和方法可以在JSP的任意地方使用。可以声明方法,也可以声明变量。声明格式如下:

<%! Vaiable declaration

        method declaration(paramType param,....)%>

声明中一般把类中要使用的方法或者常数封装起来。通过声明,可以使代码变得整洁。例如:

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

<%!

     String trans(String chi){

       String result=null;

       byte temp[];

           try{

                 temp=chi.getBytes("gb2312");

                  result=new String(temp);

                }

          catch(java.io.UnsupportedEncodingException e){

                 System.out.println(e.toString());

}

      return result;

      }

 %>

<%!

 int count=10;

 %>

<%

   String source="你好!";

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

   out.println(source);

    }

%>

在上面的例子中,声明了一个trans方法,这个方法把字符集重新编码成GB2312。在中文的JSP开发中,经常遇到中文显示的问题,可以通过这种方式来解决。也可以把这个声明做成一个专门的小JSP,如include.inc。当其他页面需要使用时,include指令就把它包含进来,例如:

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

 

表达式(Expression)

表达式在JSP请求处理阶段计算它的值,所得的结果转换字符串并与模板数据组合在一起。表达式在页面的位置,也就是该表达式计算结果所处的位置。表达式的语法是:

<%="Hello World"%>

在编译成Servlet后,变成

out.write(String.valueOf("hello World"));

相当于JSP页面中的:

out.println("hello World");

通过使用表达式,使得程序变得简洁。

例如:

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

<%! private int demoValue=56;

  public int getValue()

.........

%>

 

Scriptlets

 Scriptlets是JSP中页面处理请求时执行的Java代码,Scriptlets包含在“<%“ 和”%>”之间。它可以产生输出,并将输出发到客户的输出流里,也可以使一些流程控制语句。当然它中间还可以包含一些合法的Java注释。

   在被编译的类里,多个Scriptlets可以按住JSP中出现的顺序合并成一个Scriptlets。Scriptlets像其他的Java代码或方法一样,可以修改在它内部的对象作为防腐引用的结果。在一段Scriptlets中创建的对象,可以再另一个Scriptlets中使用。在编译后的Servlet中,Scriptlets被包含在Servlet的Service方法中。Scriptlets语法:

<%java code statements%>

例如:

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

<html>

<body>Scriptlets实例<br>

 <%

   int times=10;

  %>

<hr>使用Scriptlets定义参数和不定义参数<br>

<%

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

   out.println("<font color=ee"+i+i+i+i">");

   out.println(times+"<br></font>");

  }

%>

</body>

</html>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics