jsp第三课-jsp内置对象

来源:互联网 发布:网络远程教育的文凭怎么样 编辑:程序博客网 时间:2024/05/16 11:33
1. JSP内置对象 
有些成员变量不用声明就可以在JSP页面的脚本(Java程序片和Java表达式)中使用,这就是所谓的内置对象。
内置对象有:resquest、response、session、application、out。 


2. request对象 
  1.内置对象request对象是实现了ServletRequest接口类的一个实例.
  2. Tomcat服务器将用户的请求封装在内置对象request中,该对象调用相应的方法可以获取封装的信息 . 


3. request对象的常用方法 
getProtocol():获取请求使用的通信协议,如http/1.1等。
getServletPath():获取请求的JSP页面所在的目录。
getContentLength():获取HTTP请求的长度。
getMethod():获取表单提交信息的方式,如POST或GET。
getHeader(String s):获取请求中头的值。
getHeaderNames():获取头名字的一个枚举。
getHeaders(String s):获取头的全部值的一个枚举。
getRemoteAddr():获取客户的IP地址。
getRemoteHost():获取客户机的名称(如果获取不到,就获取IP地址)。
getServerName():获取服务器的名称。
getServerPort():获取服务器的端口号。
getParameterNames():获取表单提交的信息体部分中name参数值的一个枚举


4. response对象 
response对象对客户的请求做出响应,向客户端发送数据 
response对象调用setContentType(String s)方法来动态改变contentType的属性值:
response对象可以使用如下方法:
addHeader(String head,String value);
setHeader(String head,String value)
动态添加新的响应头和头的值 


5. session对象 
内置对象session由Tomcat服务器负责创建,session是实现了HttpSession接口类的一个实例 .
session对象被分配了一个String类型的ID,Tomcat服务器将ID发送到客户端,存放在客户的Cookie中。
 同一用户在同一Web服务目录中的各个页面的session是相同的.
不同用户的session对象互不相同,具有不同的ID 




6. session对象存储数据 
(1) public void setAttribute(String key, Object obj)
session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加的对象被清除。
(2)public Object getAttibute(String key)
 获取session对象含有的关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应强制转化为原来的类型。
(3)public Enumeration getAttributeNames()
 session对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历session中的各个对象所对应的关键字。
(4)public void removeAttribute(String name)
  session对象调用该方法移掉关键字key对应的对象  


7. out对象
内置对象out对象是JspWriterout类的一个实例 
out对象可调用如下的方法用于各种数据的输出,例如:
out.print(Boolean),out.println(boolean  
用于输出一个布尔值
out.print(char),out.println(char) 
输出一个字符
out.print(double),out.println(double)
输出一个双精度的浮点数


8. application对象 
任何客户在所访问的服务目录的各个页面时,application对象都是同一个.
application对象的常用方法
(1)public void setAttribute(String key, Object obj)
application对象可以调用该方法将参数Object 指定的对象 obj添加到application对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加对象被清除。
(2)public Object getAttibue(String key)
获取application对象含有的关键字是key的对象。由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应强制转化为原来的类型。
(3)public Enumeration getAttributeNames()
application对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历application中的各个对象所对应的关键字。
(4)public void removeAttribue(String key)
从当前application对象中删除关键字是key的对象。 


例子1
example3_1.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT size=2>
  <FORM action="computer.jsp" method=post name=form>
      <INPUT type="text" name="sizeA" value=1 size=6>
      <INPUT type="text" name="sizeB" value=1 size=6> 
      <INPUT type="text" name="sizeC" value=1 size=6>
      <INPUT TYPE="submit" value="提交" name="submit">
  </FORM> 
</FONT>
</BODY></HTML>
computer.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=yellow><Font size=3>
<% String sideA=request.getParameter("sizeA");
   String sideB=request.getParameter("sizeB");
   String sideC=request.getParameter("sizeC");
   try {   double a=Double.parseDouble(sideA);
          double b=Double.parseDouble(sideB);
          double c=Double.parseDouble(sideC);
          double p=(a+b+c)/2,area=0;
          area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
          out.println("<BR>三角形面积"+area);
       }
   catch(NumberFormatException ee)
       {  out.println("<BR>请输入数字字符");
       } 
%>
</FONT></BODY></HTML>
例子2
example3_2.jsp(如图3.2所示)
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan><FONT size=4>
  <FORM  action="" method=post name=form>
        <INPUT type="text" name="girl"> 
        <INPUT TYPE="submit" value="Enter" name="submit">
  </FORM>  
  <%  String textContent=request.getParameter("girl");
       double number=0,r=0;
       if(textContent==null)
        {  textContent="0";
        }
     try {  number=Double.parseDouble(textContent);
           if(number>=0)
            {  r=Math.sqrt(number) ;
               out.print(String.valueOf(number)+"的平方根:");
               out.print("<BR>"+String.valueOf(r));
            }
         else{  out.print("<BR>"+"请输入一个正数");
            }
       }
    catch(NumberFormatException e)
       {  out.print("<BR>"+"请输入数字字符");
       }
   %>
</FONT></BODY></HTML>

例子3 
example3_3.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
  <FORM action="showMessage1.jsp" method=post name=form>
      <INPUT type="text" name="boy"> 
      <INPUT TYPE="submit" value="提交给showMessage1.jsp" name="submit">
  </FORM> 
  <FORM action="showMessage2.jsp" method=post name=form>
      <INPUT type="text" name="boy"> 
      <INPUT TYPE="submit" value="提交给showMessage2.jsp" name="submit">
  </FORM> 
</BODY></HTML>
showMessage1.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<MHML><BODY>   
<P>获取文本框提交的信息:
  <%  String textContent=request.getParameter("boy");
  %>
<BR>
  <%=textContent%> 
<P> 获取按钮的名字:
  <%  String buttonName=request.getParameter("submit");
  %>
<BR>  <%=buttonName%> 
</BODY></HTML>
showMessage2.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<MHML><BODY>   
<P>获取文本框提交的信息:
  <%  String textContent=request.getParameter("boy");
      byte  b[]=textContent.getBytes("ISO-8859-1");
      textContent=new String(b);
  %>
<BR>  <%=textContent%> 
<P> 获取按钮的名字:
  <%  String buttonName=request.getParameter("submit");
       byte  c[]=buttonName.getBytes("ISO-8859-1");
       buttonName=new String(c);
  %>
<BR>  <%=buttonName%> 
</BODY></HTML>

例子4
example3_4.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.util.*" %>
<MHML><BODY bgcolor=cyan><Font size=2 >  
  <% String protocol=request.getProtocol();   //协议
     String path=request.getServletPath();    //请求的页面
     String method=request.getMethod();      //提交信息的方式
     String userAgentHeader=request.getHeader("User-Agent");//User-Agent头的值
     String acceptHeader=request.getHeader("accept");//accept头的值
     String hostHeader=request.getHeader("Host");//Host头的值
     String acceptEncodingHeader=request.getHeader("accept-encoding");//accept-encoding头的值
     String  clientIP=request.getRemoteAddr();//客户的IP地址
     String serverName=request.getServerName();//服务器的名称
     int serverPort=request.getServerPort(); // 服务器的端口号
   %> 
<BR>客户使用的协议是:<%=protocol %>
<BR>客户请求的页面:<%=path %>
<BR>客户提交信息的方式:<%=method %>
<BR>头文件中User-Agent头的值:<%=userAgentHeader %>
<BR>accept头的值:<%=acceptHeader %>
<BR>Host头的值:<%=hostHeader %>
<BR>accept-encoding头的值:<%=acceptEncodingHeader %>
<BR>客户的IP地址:<%=clientIP %>
<BR>服务器的端口号:<%=serverPort %>
<BR>获取客户端提交的所有参数的名字:
  <% Enumeration enumOne=request.getParameterNames();
      while(enumOne.hasMoreElements())
           {String s=(String)enumOne.nextElement();
            out.println(s);
           }      
     %> 
<BR>获取头名字的一个枚举:
  <% Enumeration enum_headed=request.getHeaderNames();
     while(enum_headed.hasMoreElements())
           {String s=(String)enum_headed.nextElement();
            out.println(s);
           }      
  %>
<BR>获取头文件中指定头名字cookie 的全部值的一个枚举:
  <% Enumeration enum_headedValues=request.getHeaders("cookie");
     while(enum_headedValues.hasMoreElements())
           { String s=(String)enum_headedValues.nextElement();
             out.println(s);
           }      
  %>
</Font></BODY></HTML>  
例子5
example3_5.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=2>
   <FORM action="receive.jsp" method=post name=form>
      <BR>输入您的姓名:<INPUT type="text" name="name" value="张三"></BR> 
      <BR>选择性别:<INPUT type="radio" name="R" value="男" checked="default">男 
                    <INPUT type="radio" name="R" value="女">女 
      </BR>
      <BR>选择您喜欢的球队: 
         <input type="checkbox" name="item" value="国际米兰队" >国际米兰队
         <input type="checkbox" name="item" value="AC米兰队" >AC米兰队
         <input type="checkbox" name="item" value="罗马队" >罗马队
         <input type="checkbox" name="item" value="慕尼黑队" >慕尼黑队
      </BR> 
      <INPUT TYPE="hidden" value="我是球迷,但不会踢球" name="secret">
      <INPUT TYPE="submit" value="提交" name="submit">
      <INPUT TYPE="reset" value="重置" >
  </FORM> 
</FONT></BODY></HTML>
receive.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=2>
   <%  String yourName=request.getParameter("name");         //获取text提交的值
       String yourSex=request.getParameter("R");             //获取radio提交的值
       String secretMess=request.getParameter("secret");     //获取hidden提交的值
       String itemName[]=request.getParameterValues("item"); //获取checkbox提交的值
       out.println("<P> 您的姓名:"+yourName+"</P>");
       out.println("<P> 您的性别:"+yourSex+"</P>");
       out.println("<P> 您喜欢的球队:");
       if(itemName==null)
       {  out.print("一个都不喜欢");
       } 
       else
       {  for(int k=0;k<itemName.length;k++)
          {  out.println(" "+itemName[k]);
          }
       }
      out.println("<P> 你提交的隐藏信息:"+secretMess);  
 %>
</FONT></BODY></HTML>
例子6
select.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><Center><BODY bgcolor=cyan><Font size=2 >
  <FORM action="sum.jsp" method=post name=form>
  选择计算和的方式:<BR>
      <Select name="sum" size=2>
         <Option Selected value="1">计算1到n的连续和
         <Option value="2">计算1到n的平方和
         <Option value="3">计算1到n的立方和
      </Select> 
  <BR>选择n的值:<BR>
      <Select name="n" >
         <Option value="20">n=20
         <Option value="40">n=40
         <Option value="50">n=50
         <Option value="100">n=100
      </Select> <BR>
    <INPUT TYPE="submit" value="提交你的选择" name="submit">
  </FORM> 
</FONT></BODY></Center></HTML>
sum.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><Center><BODY bgcolor=cyan><Font size=2 >
<% long sum=0;
   String s1=request.getParameter("sum");
   String s2=request.getParameter("n");
   if(s1.equals("1"))
      {int n=Integer.parseInt(s2);
        for(int i=1;i<=n;i++)
           {sum=sum+i;
           } 
      }
     else if(s1.equals("2"))
      {int n=Integer.parseInt(s2);
        for(int i=1;i<=n;i++)
           {sum=sum+i*i;
           } 
      }
     else if(s1.equals("3"))
      {int n=Integer.parseInt(s2);
        for(int i=1;i<=n;i++)
           {sum=sum+i*i*i;
           } 
      }
%>
<P>您的求和结果:<%=sum%>
</FONT></BODY></Center></HTML>

例子7
example3_7.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=2>
   <FORM action="receive.jsp" method=post name=form>
      <Table border=1>
      <tr>
           <td>输入您的姓名:</td>
           <td><INPUT type="text" name="name" value="张三"></td>
      </tr> 
           <td>选择性别:</td>
           <td><INPUT type="radio" name="R" value="男" checked="default">男 
                    <INPUT type="radio" name="R" value="女">女
          </td> 
      </tr>
      <tr>
          <td>选择您喜欢的球队:</td> 
          <td><input type="checkbox" name="item" value="国际米兰队">国际米兰队
              <input type="checkbox" name="item" value="AC米兰队">AC米兰队
              <input type="checkbox" name="item" value="罗马队">罗马队
              <input type="checkbox" name="item" value="慕尼黑队">慕尼黑队
         </td> 
       </tr>
      <tr>
            <td><INPUT TYPE="reset" value="重置" ></td>
            <td><INPUT TYPE="submit" value="提交" name="submit"></td>
      </tr>
      <INPUT TYPE="hidden" value="我是球迷,但不会踢球" name="secret">
      </Table> 
  </FORM> 
</FONT></BODY></HTML>
例子8
example3_8.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=3>
  <FORM action="show.jsp" method=post name=form>
   <br>选择一副图像:    <Select name="image" >
          <Option value="people.jpg">人物
          <Option value="animal.jpg">动物
       </Select> 
   <br>选择视频或音乐:
       <Select name="video" >
          <Option value="happy.wav">祝你快乐
          <Option value="moon.wmv">弯弯的月亮
          <Option value="clock.avi">表
       </Select> 
   <br> <INPUT TYPE="submit" value="提交你的选择" name="submit">
   </FORM> 
</FONT></BODY></HTML>
show.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=3>
 <% String s1=request.getParameter("image");
    String s2=request.getParameter("video");
 %>
 <img src="image/<%=s1 %>" width=200 height=160 >图像</img>
 <embed src="avi/<%=s2 %>" width=300 height=180 >视频</embed>
</FONT></BODY></HTML>
例子9
example3_9.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=1 >
<P>我正在学习response对象的
<BR>setContentType方法
<P>将当前页面保存为word文档吗?
 <FORM action="" method="get" name=form>
    <INPUT TYPE="submit" value="yes" name="submit">
  </FORM>
<% String str=request.getParameter("submit");
     if(str==null) {
str="";
        }
     if(str.equals("yes")) {
response.setContentType("application/msword;charset=GB2312");
        }
%> 
</FONT></BODY></HTML>
例子10
example3_10.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY bgcolor=cyan><Font size=5 >
<P>现在的时间是:<BR>
<%  out.println(""+new Date());
      response.setHeader("Refresh","5");
%>
</FONT></BODY></HTML>
例子11
example3_11.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY> 
<P>填写姓名:<BR>
  <FORM action="form.jsp" method="get" name=form>
    <INPUT TYPE="text"   name="boy">
    <INPUT TYPE="submit" value="Enter">
  </FORM>
</BODY></HTML>

form.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY> 
 <% String str=request.getParameter("boy");
     if(str.length()==0)
     {  response.sendRedirect("example3_11.jsp"); 
     }
     else 
     {  out.print("欢迎您来到本网页!");
        out.print(str);
     }
%>
</BODY></HTML>
例子12
example3_12.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=1> 
<P>点击下面的超链接:
<BR> <A HREF="bird1.jsp"> bird1:欢迎你吗?
<BR> <A HREF="bird2.jsp"> bird2:欢迎你吗?
<BR> <A HREF="bird3.jsp"> bird3:欢迎你吗?
</FONT></BODY></HTML>
bird1.jsp
<HTML><BODY> 
<% response.setStatus(408);
   out.print("不显示了");
%>
</BODY></HTML>
bird2.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY> 
<% response.setStatus(200);
   out.println("ok");
 %>
</BODY></HTML>
bird3.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY> 
<%  response.setStatus(500);
 %>
</BODY></HTML>
例子13
first.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY  bgcolor=cyan>
  我是first.jsp页面,输入你的姓名连接到second.jsp
  <% String id=session.getId();
     out.println("您的session对象的ID是:<br>"+id);
  %>
 <FORM action="tom/second.jsp" method=post name=form>
      <INPUT type="text" name="boy"> 
      <INPUT TYPE="submit" value="送出" name=submit>
 </FORM>  
</BODY></HTML>

second.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY  bgcolor=cyan>
  我是second.jsp页面
  <%  String id=session.getId();
      out.println("您的session对象的ID是:<br>"+id);
  %>
<BR> 点击超链接,连接到third.jsp的页面。
<A HREF="/ch3/jerry/third.jsp"> 欢迎去third.jsp页面!</A>   
</BODY></HTML>
third.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
  我是third.jsp页面
  <%  String id=session.getId();
      out.println("您的session对象的ID是:<br>"+id);
  %>
<BR> 点击超链接,连接到first.jsp的页面。
<A HREF="/ch3/first.jsp">  欢迎去first.jsp!</A>   
</BODY></HTML>
例子14
main.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
  <P>欢迎来到本页面,请输入您的姓名
   <FORM action="" method=post name=form>
       <INPUT type="text" name="name"> 
       <INPUT TYPE="submit" value="送出" name=submit>
  </FORM> 
   <%  String name=request.getParameter("name");
       if(name==null)
       {  name="";
       }
       else
       {  session.setAttribute("customerName",name);
       }
   %> 
   <% if(name.length()>0)
      {
   %>   <P> 点击超链接,连接到book.jsp的页面,去选择书籍。
         <A HREF="book.jsp">  欢迎去选择书籍!</A>
   <% }
   %>    
<FONT></BODY></HTML>
book.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
  <P>点击超链接,连接到main.jsp的页面,去修改姓名。
         <A HREF="main.jsp">  欢迎去main.jsp!</A>
<P>请选择您要购买的书籍:
   <FORM action="" method=post name=form>
       <input type="checkbox" name="choice" value="Java教程" >Java教程
       <input type="checkbox" name="choice" value="数据库原理" >数据库原理
       <input type="checkbox" name="choice" value="操作系统" >操作系统
       <input type="checkbox" name="choice" value="C语言教程" >C语言教程
       </BR> 
       <INPUT TYPE="submit" value="提交" name="submit">
  </FORM> 
  <%  String bookName[]=request.getParameterValues("choice"); 
      if(bookName!=null)
      { for(int k=0;k<bookName.length;k++) 
        { session.setAttribute(bookName[k],bookName[k]);
        }
      }
  %> 
  去结帐: <A HREF="count.jsp">  欢迎去count.jsp!</A>
 <FONT Size=2></BODY></HTML>
count.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
 这里是结帐处,您的姓名以及选择的书籍:
<%  String personName=(String)session.getAttribute("customerName");
    out.println("<br>您的姓名:"+personName);
    Enumeration enumGoods=session.getAttributeNames();
    out.println("<br>购物车中的商品:<br>");
    while(enumGoods.hasMoreElements())
            {  String key=(String)enumGoods.nextElement();
               String goods=(String)session.getAttribute(key);
               if(!(goods.equals(personName)))
                 out.println(goods+"<br>");
            }   
 %>
  连接到book.jsp的页面,继续购买书籍:<A HREF="book.jsp">欢迎去book.jsp!</A>
 <BR>连接到main.jsp的页面,去修改姓名:<A HREF="main.jsp">欢迎去main.jsp!</A>
</FONT></BODY></HTML>
例子15
getNumber.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
<P>随机分给了你一个1到100之间的数,请猜!
 <%  int number=(int)(Math.random()*100)+1;
     session.setAttribute("count",new Integer(0));
     session.setAttribute("save",new Integer(number));
 %>
<BR>
<P>输入你的所猜的数:
  <FORM action="result.jsp" method="post" name=form>
      <INPUT type="text" name="boy" > 
      <INPUT TYPE="submit" value="送出" name="submit">
  </FORM>
</FONT></BODY></HTML>
result.jsp
<% String str=request.getParameter("boy");
    if(str.length()==0) 
      { response.sendRedirect("getNumber.jsp");
      }
    else
     { int guessNumber=Integer.parseInt(str);
       Integer integer=(Integer)session.getAttribute("save");
       int realnumber=integer.intValue();
      if(guessNumber==realnumber)
       { int n=((Integer)session.getAttribute("count")).intValue();
         n=n+1;
         session.setAttribute("count",new Integer(n));
          response.sendRedirect("success.jsp");
       } 
      else if(guessNumber>realnumber)
       { int n=((Integer)session.getAttribute("count")).intValue();
         n=n+1;
         session.setAttribute("count",new Integer(n));
         response.sendRedirect("large.jsp");
       }
      else if(guessNumber<realnumber)
       { int n=((Integer)session.getAttribute("count")).intValue();
         n=n+1;
         session.setAttribute("count",new Integer(n));
          response.sendRedirect("small.jsp");
       }
    }
%>
large.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
<P>所猜的数比实际的数大,请再猜:
  <FORM action="result.jsp" method="get" name=form >
      <INPUT type="text" name="boy" > 
      <INPUT TYPE="submit" value="送出" name="submit">
  </FORM>
</FONT></BODY></HTML>
small.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
<P>所猜的数比实际的数小,请再猜:
 <FORM action="result.jsp" method="post" name=form>
      <INPUT type="text" name="boy" > 
      <INPUT TYPE="submit" value="送出" name="submit">
  </FORM>
</FONT></BODY></HTML>
success.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT Size=2>
<%  int count=((Integer)session.getAttribute("count")).intValue();
    int num=((Integer)session.getAttribute("save")).intValue();
%>
<P>恭喜你,猜对了
<P>您共猜了<%=count%>次
<P>这个数字就是<%=num%>
</FONT></BODY></HTML>
例子16
example3_16.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY bgcolor=yellow><FONT Size=3>
 <%  session.setMaxInactiveInterval(15);
     boolean boo=session.isNew();
     out.println("<br>如果你第一次访问当前web服务目录,您的会话是新的");
     out.println("<br>如果你不是首次访问当前web服务目录,您的会话不是新的");
     out.println("<br>会话是新的吗?:"+boo);
     out.println("<br>欢迎来到本页面,您的session允许的最长发呆时间为"+
                        session.getMaxInactiveInterval()+"秒");
     out.println("<br>您的session的创建时间是"+new Date(session.getCreationTime()));
     out.println("<br>您的session的Id是"+session.getId()); 
     Long lastTime=(Long)session.getAttribute("lastTime");
     if(lastTime==null)
       {   long n=session.getLastAccessedTime();
           session.setAttribute("lastTime",new Long(n));
       } 
    else
       {   long m=session.getLastAccessedTime();
           long n=((Long)session.getAttribute("lastTime")).longValue();
           out.println("<br>您的发呆时间大约是"+(m-n)+"毫秒,大约"+(m-n)/1000+"秒");
           session.setAttribute("lastTime",new Long(m)); 
       } 
 %>
<FONT></BODY></HTML>

例子17
comeOne.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ taglib prefix="person" tagdir="/WEB-INF/tags" %>
<HTML><BODY bgcolor=yellow>
<jsp:include page="count.jsp" />
<P>Welcome欢迎您访问本站,这是本网站的comeTwo.jsp页面
  <BR>您是第
          <%=(String)session.getAttribute("count")%>
  个访问本网站的客户。
  <A href="comeTwo.jsp">欢迎去comeTwo.jsp参观</A>
</BODY></HTML>
comeTwo.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ taglib prefix="person" tagdir="/WEB-INF/tags" %>
<HTML><BODY bgcolor=cyan>
<jsp:include page="count.jsp" />
<P>欢迎您访问本站,这是本网站的comeOne.jsp页面
  <BR>您是第
          <%=(String)session.getAttribute("count")%>
  个访问本网站的客户。
  <A href="comeOne.jsp">欢迎去comeOne.jsp参观</A>
</BODY></HTML>
count.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.io.*" %>
<%!   int number=0; 
      File file=new File("countNumber.txt") ;   
      synchronized void countPeople()//计算访问次数的同步方法
       { if(!file.exists())
          {  number++;
             try {  file.createNewFile();
                    FileOutputStream out=new FileOutputStream(file);
                    DataOutputStream dataOut=new DataOutputStream(out);
                    dataOut.writeInt(number);
                    out.close();
                    dataOut.close();
                 }
             catch(IOException ee){}
          }
         else
          {   try{  FileInputStream in=new FileInputStream(file);
                   DataInputStream dataIn=new DataInputStream(in);
                   number=dataIn.readInt();
                   number++;
                   in.close();
                   dataIn.close();
                   FileOutputStream out=new FileOutputStream(file);
                   DataOutputStream dataOut=new DataOutputStream(out);
                   dataOut.writeInt(number);
                   out.close();
                   dataOut.close();
                }
              catch(IOException ee){}
          }
     }
%>
<%    String str=(String)session.getAttribute("count");
     if(session.isNew())
      {  out.println("请首先访问其它网页");
      }
     else
      {  if(str==null)
         {  countPeople();
            String personCount=String.valueOf(number);
            session.setAttribute("count",personCount);
         }
      }
%>
例子18
submit.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<FORM action="messagePane.jsp" method="post" name="form">
    输入您的名字:<BR><INPUT  type="text" name="peopleName">
    <BR>输入您的留言标题:<BR><INPUT  type="text"  name="Title">
    <BR>输入您的留言:<BR> <TEXTAREA name="messages" ROWs="10" COLS=36 
WRAP="physical"></TEXTAREA>
    <BR><INPUT type="submit" value="提交信息" name="submit">
</FORM>
<FORM action="showMessage.jsp" method="post" name="form1">
   <INPUT type="submit" value="查看留言板" name="look">
</FORM>
</BODY></HTML>
messagePane.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY>
    <%! Vector v=new Vector();
        int i=0; ServletContext  application;
        synchronized void sendMessage(String s)
         { application=getServletContext();;
           i++;
          v.add("No."+i+","+s);
          application.setAttribute("Mess",v); 
         }
    %> 
    <% String name=request.getParameter("peopleName");
       String title=request.getParameter("Title");
       String messages=request.getParameter("messages");
          if(name==null)
            {name="guest"+(int)(Math.random()*10000);
            }
          if(title==null)
            {title="无标题";
            }
          if(messages==null)
            {messages="无信息";
            }
         String s="姓名:"+name+"#"+"标题:"+title+"#"+"内容:"+"<BR>"+messages; 
         sendMessage(s);
         out.print("您的信息已经提交!");
    %>
 <A HREF="submit.jsp" >返回 
</BODY></HTML>
showMessage.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY>
    <% Vector v=(Vector)application.getAttribute("Mess");
         for(int i=0;i<v.size();i++)
           { String message=(String)v.elementAt(i);
             StringTokenizer fenxi=new StringTokenizer(message,"#");
               while(fenxi.hasMoreTokens())
                    { String str=fenxi.nextToken();
                       byte a[]=str.getBytes("ISO-8859-1");
                       str=new String(a);   
                      out.print("<BR>"+str); 
                    }
           } 
     %>
</BODY></HTML>
例子19
example3_19.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.*"%>
<%! public  String  getDayWeek(int n)
   { String week[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
     return week[n];
   }
%>
<HTML><BODY bgcolor=cyan><Font size=1> 
<% Calendar calendar=Calendar.getInstance(); //创建一个日历对象。
           calendar.setTime(new Date());//用当前时间初始化日历时间。
  String 年=String.valueOf(calendar.get(Calendar.YEAR)),
         月=String.valueOf(calendar.get(Calendar.MONTH)+1),
         日=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)),
         星期=getDayWeek(calendar.get(Calendar.DAY_OF_WEEK)-1);
  int hour=calendar.get(Calendar.HOUR_OF_DAY),
     minute=calendar.get(Calendar.MINUTE),
     second=calendar.get(Calendar.SECOND);
  out.println("<table border=1>");
  out.println("<tr>");
  out.println("<td>现在的时间:</td>");
  out.println("<td>"+年+"年</td>");
  out.println("<td>"+月+"月</td>");
  out.println("<td>"+日+"日</td>");
  out.println("<td>"+星期+"</td>");
  out.println("<td>"+hour+"点</td>");
  out.println("<td>"+minute+"分</td>"); 
  out.println("<td>"+second+"秒</td>"); 
  out.println("</tr>");
  out.println("</table");
  out.print("<p>");
  if(日.equals("26"))
    {out.print("<h1 >今天是病毒容易发作的日子!</h1>");
    }
  else 
    { out.print("<h1>注意防范病毒!</h1>");
    }
%> 
</FONT></BODY></HTML>