三種Scriptlet總結


什么是Scriptlet?

在JSP中,Scriptlet稱為腳本小程序,所有嵌套在HTML代碼中的Java程序都必須使用Scriptlet標記出來。

第一種:<% %>

在此Scriptlet中可以定義局部變量(並非全局變量)編寫語句

例如:

<%

  int x=10;

  out.println("<p>x="+x+"</P>");

%>

<%

  out.println("<p>x="+x+"</P>");

%>

初學JSP者看到上面這段代碼可能會覺得陌生又熟悉,那是因為這完全就是java代碼,卻又輸出了HTML語句,沒錯!這就是使用java語句在網頁上顯示"x=10"

第二次在網頁上顯示變量x時,同樣是"x=10",小編以前以為<% %>里面定義的變量是局部變量所以出了<% %>就會報錯,但其實不是,想想Java中對局部變量的定義,局部變量存在在一個方法中或者以個代碼塊中,如果上面的<% %>全部去掉,是不是像Java中的一個代碼塊了呢?所以第二次輸出也是正確的。

第二種:<%! %>

在這種Scriptlet中可以定義全局變量,方法,類

 

<%!public static final String info = "www.baidu.com";//定義全局變量

public int add(int a, int b) {//定義方法
return a + b;
}

class Person {//定義類
private String name;
private int age;

public Person() {
}

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String toString() {
return "name=" + this.name + "\tage=" + this.age;
//在此方法中不可以有輸出語句
}
}%>
<%
out.println("<p>info=" + info + "</p>");
out.println("<p>3+5=" + add(3, 5) + "</p>");
out.println("<p>個人信息:" + new Person("張三", 12).toString() + "</p>");
%>

網頁上顯示結果:

第三種:<%=%>

 在此Scriptlet中輸出一個變量或一個具體的常量,稱為表達式輸出

將上面的輸出形式換成下面的輸出形式:

<p>info=<%=info %></p>
<p>3+5=<%=add(3,5) %></p>
<p>個人信息:<%=new Person("張三",12).toString() %></p>

將得到同樣的效果.

那么問題來了,既然這兩種輸出形式的效果一樣,那么以后是不是隨便寫那個都可以呢?

盡量不要使用out.println();輸出,而使用表達式輸出

在jsp的開發中,實際上就是在HTML中加入一些控制及輸出的語句,所以在輸出時為了使HTML代碼和Java代碼相分離,最好的做法是只輸出由Java(JSP)程序產生的變量,那么這時使用表達式輸出就比使用out.println()更加方便.

小編還在學習階段,如果有寫的不好的地方,請大神指教O(∩_∩)O~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM