zoukankan      html  css  js  c++  java
  • 三种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 + " 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()更加方便.

    小编还在学习阶段,如果有写的不好的地方,请大神指教O(∩_∩)O~~

  • 相关阅读:
    Codeforces 1485C Floor and Mod (枚举)
    CodeForces 1195D Submarine in the Rybinsk Sea (算贡献)
    CodeForces 1195C Basketball Exercise (线性DP)
    2021年初寒假训练第24场 B. 庆功会(搜索)
    任务分配(dp)
    开发工具的异常现象
    Telink MESH SDK 如何使用PWM
    Telink BLE MESH PWM波的小结
    [LeetCode] 1586. Binary Search Tree Iterator II
    [LeetCode] 1288. Remove Covered Intervals
  • 原文地址:https://www.cnblogs.com/linwen5723/p/5967674.html
Copyright © 2011-2022 走看看