JSP学习笔记之二

JSP页面和JSP标记

1.     JSP页面的基本结构

       一个JSP页面可由5种元素构成:普通的HTML标记、JSP标记、变量和方法的声明、java程序片、java表达式。

HTML标记可直接交给浏览器处理显示;jsp标记、数据和方法声明、java程序片由服务器执行,并将结果返回给用户浏览器;java表达式由服务器计算,并转化为字符串后交给用户浏览器。

 如下示例:计算100的因子之和。时间变化只有按F5时才能变化。

<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import= "java.util.Date" %>
  <%!
  Date date;
  public int getFactorSum(int n){
    int sum=0;
   for(int i=1;i<n;i++){
     if(n%i==0) 
     sum=sum+i;
     }
     return sum;
  }
  %>
<HTML><BODY bgcolor="cyan">
<FONT Size=4><P>程序片创建Date对象:
<% date=new Date();
   out.println("<br>"+date+"<br>");
   int m=100;
%>
<%= m %>
  的因子之和是(不包括<%= m %>):
<%= getFactorSum(m)%>
</P></FONT></BODY></HTML>

    1.1   变量和方法的声明

         变量:在“<%!”和”%>”之间声明,直接的变量称为JSP页面的成员变量。在整个JSP页面内都有效;多用户访问时共享。

         方法:一样,也是在”<%!”和”%>”之间,整个JSP页面内有效;方法内变量只在方法中有效。

        示例:由于是共享的,所有下面页面实现了访问用户的统计。

<%@ page contentType="text/html; charset=GB2312" %>
  <%!
    int i=0;
    public int record(){i++;
    return i;}
  %>
<HTML><BODY bgcolor="cyan">
<FONT Size=4><P>您是第:<%= record() %>位用户!
</P>
<FORM action="mess.jsp" method=post name=form>
  <INPUT TYPE="text" name="boy">
  <INPUT TYPE="submit" value="enter" name="submit">
</FORM>
</FONT></BODY></HTML>


   1.2   Java程序片

         在<%和%>之间插入程序片,这些程序片被JSP引擎按顺序执行。

         在程序片中声明的变量称为JSP页面的局部变量,方法中声明的变量就是属于此类。

   1.3   表达式

         在<%=和%>之间插入表达式。

   1.4   注释

         HTML注释:<!--此乃注释-->

        JSP注释:<%--注释--%>

2. JSP标记

    2.1 page指令

         page用来定义整个JSP页面的一些属性和这些属性的值。可以标记的值有:contentType/import/language/session/buffer/autoflush/isThreadSafe/pageEncoding

      language属性

        定义JSP页面使用的脚本语言,目前只能取Java。

        <%@page language=”java” %>

     import属性

        为JSP页面引入Java核心包中的类,这样可以在JSP页面的程序片部分、变量和方法中使用核心包中的类。

        默认包含:

       ”java.lang.*”、”javax.servlet.*”、”javax.servlet.jsp.*”、”javax.servlet.http.*”

    contentType属性

         contentType默认为”text/html; charset=ISO-8859-1” 可以改。对于前一部分,可以改为:text/plain、image/gif、application/msword;后面一部分,可以有:GB2313。

    session属性

        设置是否需要内置的session对象。

    buffer属性

        用来指定out设置的缓冲区大小或不适用缓冲区,一般默认为8kb。

    autoFlush属性

        out缓冲区被填满时,是否自动刷新。可取true或false

    isThreadSafe属性

        是否允许多个线程同时访问该JSP页面。默认为true。

   2.2 include指令标记

       在某处插入一个文件

       <%include file=”文件URL” %>

  2.3 include动作标记

       格式为:

       <jsp:include page=”文件URL”/>

     或<jsp:include page=”文件URL”>

           param子标记

         </jsp:include>

     include动作标记告诉jsp页面动态加载一个文件,和之前include指令标记不同的是,当JSP引擎把jsp页面译成java文件时,不把jsp页面中动作指令include所指定的文件和原JSP页面合并,而是告诉java解释器,这个文件在JSP允许时才处理。

示例:两个页面,用户向第一个页面输入数字提交(如果为空, 默认为100),在第二个页面计算数字的和,并显示。

第一个页面:

<%@ page contentType="text/html; charset=GB2312" %>
<HTML><BODY bgcolor="cyan"><FONT Size=3>
<FORM action="" method=post name=form>
<INPUT type="text" name="ok">
<BR> <INPUT type="submit" value="送出" name=submit>
</FORM>
<P>请输入一个整数,单击按钮求连续和
<% String a=request.getParameter("ok");
   if(a==null) a="100";
   int i=Integer.parseInt(a);
%>   
  <jsp:include page="computer.jsp">
    <jsp:param name="input" value="<%= i %>" />
  </jsp:include>
</FONT></BODY></HTML>
computer.jsp

<%@ page contentType="text/html; charset=GB2312" %>
<HTML><BODY>
<%  String str=request.getParameter("input");
    int n=Integer.parseInt(str);
     int sum=0;
    try{
      for(int i=1;i<=n;i++)
        sum+=i;
    }
    catch(NumberFormatException e){
      out.print("<BR>"+"请输入数字字符:");
    }
%>
<P>从1到<%= n %>的连续和是:<%= sum %>
</BODY></HTML



  2.4 param动作标记

       以“名字-值”的形式为其他标记提供附加信息。与jsp:include、jsp:forward、jsp:plugin一起使用。

  2.5 forward动作标记

     格式:

     <jsp:forward page=”要转向的页面” />

    或

     <jsp:forwardpage=”要转向的页面”>

      param 子标记

      </jsp:forward>

   2.6 plugin动作标记

你可能感兴趣的:(java,jsp,Date,浏览器,input,include)