单单单相恋吧 关注:7贴子:260
  • 6回复贴,共1

Scriptlet说明

只看楼主收藏回复

简介:
Scriptlet是包含在<% %>之间的Java代码,在Web容器处理JSP页面时执行,通常会产生输出,并将输出发送到客户的输出流里。[1] <% %>中除了不能定义类和方法、不能用import引入类外,可以包含任何有效的Java代码。(Java类在Jsp外部定义,可用page指令的import属性引入,也可以Java Bean的形式使用。Java中的方法必须在类内定义,但Jsp允许使用声明定义方法。窗体(GUI)设计代码在Jsp中无效)。任何文本,HTML标记,JSP元素必须在scriptlet之外,当JSP收到客户的请求时,scriptlet就会被执行,如果scriptlet有显示的内容,这些显示的内容就被存在out对象中。


IP属地:北京1楼2015-08-10 15:16回复
    功能:
    因为scriptlet,我们便能做以下的事:声明将要用到的变量或方法;编写JSP表达式;使用任何隐含的对象和任何用<jsp:useBean>声明过的对象。
    语法:
    <% code fragment %>在JSP中Scriptlet一共分为三种:1.<%%>:定义局部变量,编写语句:<%int i = 10 ;int j = 20 ;out.println(i * j) ;out.println("<h1>"+(++i)+"</h1>") ;%>2.<%!%>:定义全局变量,可以编写类、方法:<%!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.<%=%>:表达式输出,专门输出变量或一个具体值:<%="hello World!!!"%>


    IP属地:北京2楼2015-08-10 15:17
    回复
      1、<%%>
      此为最常见的
      <%
      int i = 10 ;
      int j = 20 ;
      out.println(i * j) ;
      out.println("<h1>"+(++i)+"</h1>") ;
      %>


      IP属地:北京3楼2015-08-10 15:22
      回复
        2、<%! %>
        一般情况下都会使用此Scriplet定义一个全局变量,全局变量是无论怎么刷新,都只声明一次,只有很少的情况下才会用此语句去定义一个方法,情况下是不可能去定义一个类的。
        <%!
        int i = 10 ;
        int j = 20 ;
        %>
        <%
        out.println(i * j) ;
        out.println("<h1>"+(++i)+"</h1>") ;
        %>


        IP属地:北京4楼2015-08-10 15:25
        收起回复
          在<%!%>定义一个方法,不要轻易这样使用
          <%!
          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>") ;
          %>


          IP属地:北京5楼2015-08-10 15:26
          回复
            <%= %>表达式输出,专门输出一个变量或一个具体的值。
            <%
            int i = 10 ;
            %>
            <%=i%>
            <%="hello World!!!"%>


            IP属地:北京6楼2015-08-10 15:34
            回复