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>
有些成员变量不用声明就可以在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>
- jsp第三课-jsp内置对象
- 第三章 JSP内置对象
- 【JSP笔记】第三章 JSP内置对象
- JSP - JSP内置对象
- JSP--JSP内置对象
- SCWCD(Servlet&Jsp learning)第三问-------JSP内置对象详解
- jsp 3 jsp内置对象
- Jsp 二 JSP内置对象
- JSP 九个内置JSP对象
- JSP内置对象
- JSP内置对象
- JSP内置对象
- JSP内置对象
- jsp内置对象
- JSP 内置对象
- JSP内置对象
- JSP内置对象
- JSP内置对象
- 我的感悟与开始的想法
- 1199. GCD(欧拉函数)
- 一个简单的字符驱动程序
- NSString+NSMutableString+NSValue+NSAraay用法汇总(1)
- Oracle Job 知识
- jsp第三课-jsp内置对象
- 绝对给力的源码,在线音乐播放器完整项目
- JAVA js的escape函数、解析用js encodeURI编码的字符串、utf8转gb2312的函数
- zoj1889
- Linux 磁盘挂载和mount共享、NFS与防火墙配置
- NSString+NSMutableString+NSValue+NSAraay用法汇总(2)
- centOs 网络设置
- NSString+NSMutableString+NSValue+NSAraay用法汇总(3)
- 其实Unix很简单