zoukankan      html  css  js  c++  java
  • 三种Scriptlet总结

    转自:http://www.cnblogs.com/linwen5723/p/5967674.html

    什么是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 + " age=" + 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()更加方便.

  • 相关阅读:
    BZOJ 5297: [Cqoi2018]社交网络 矩阵树定理
    BZOJ 5300: [Cqoi2018]九连环 打表+FFT
    BZOJ 5298: [Cqoi2018]交错序列 二项式定理+矩阵乘法
    BZOJ 5301: [Cqoi2018]异或序列 莫队+桶
    BZOJ 5324: [Jxoi2018]守卫 区间DP
    BZOJ 5322: [Jxoi2018]排序问题 模拟+贪心
    点斜式
    斜截式
    斜率
    求线段的交点
  • 原文地址:https://www.cnblogs.com/sharpest/p/10068829.html
Copyright © 2011-2022 走看看