您的位置:首页 > 产品设计 > UI/UE

JSP学习记--03(Jsp内置对象request)

2007-08-01 22:15 471 查看
JSP学习记--03

Jsp内置对象
主要有: request/reponse/session/application/out
(附加)
http协议的运行过程
(Hypertext Transfer Protocal)协议规定信息在Internet上的传输方法,特别规定了服务器与浏览器的交互方法.
从网站上获取页面时,时首先浏览器在网站上打开一个对刚网络服务器的连接,并发出请求,服务器收到请求后响应,返回结果。

HTTP请求的结构:
包括请求行、头域和可能的信息体
例:
GET/hello.htm HTTP/1.1 //请求头
Host:www.sina.com.cn
税典型的请求包含许多HTTP请求头,提供关于信息体的附加信息及请求的来源。还可能包含信息体,如表单内容。
常用的请求头:GET Cookie Host

HTTP响应结构:

1、 request对象
内置对象request封装了用户提交的信息。
调用相应的方法可以获得封装的信息。
例:<FORM> method=get/post action=”提交信息的目的页面”
提交手段
</FROM>
Action: 将信息提交给指明的页面
获取方法:request.getParameter(String s)
例:request.getParameter(“boy”)
见例:request1.jsp,request2.jsp,request3.jsp
request1.jsp


<%@ page contentType="text/html;charset=GB2312" %>


<HTML>


<BODY BGCOLOR=cygn background="1148350156370.jpg"><FONT size=4>


<p><h1>request对象</h1>


<form action="request2.jsp" method=post name=form>


<input type="text" name="boy">


<input type="submit" value="enter" name="submit">


</form>


</font>


</BODY>


</HTML>



request2.jsp


<%@ page contentType="text/html;charset=GB2312" %>


<HTML>


<BODY BGCOLOR=cygn background="1148350156370.jpg"><FONT size=4>


<p><h1>获取文本框提交的信息:</h1>


<%


String textContent=request.getParameter("boy");


%>


<br>


<%=textContent%>


<p><h1>获取按钮的名字:</h1>


<%


String buttonName=request.getParameter("submit");


%>


<br>


<%=buttonName%>


</font>


</BODY>


</HTML>



request3.jsp


<%@ page contentType="text/html;charset=GB2312" %>


<HTML>


<BODY BGCOLOR=cygn background="1148350156370.jpg"><FONT size=4>


<p><h1>request对象</h1>


<form action="" method=post name=form>


<input type="text" name="string">


<input type="submit" value="enter" name="submit">


</form>


<%


String str=request.getParameter("string");


double m=0,n=0;


if(str==null)




...{


str="";


}


try




...{


m=Double.parseDouble(str);


if(m<0)




...{


out.print("<br>"+"请输入一个正数");


}


else




...{


n=Math.sqrt(m);




out.print("<br>"+"您输入的数是:"+String.valueOf(m));


out.print("<br>"+"他的平方根为:"+String.valueOf(n));


}


}


catch(NumberFormatException e)




...{


out.print("<br>"+"请输入一个数值");


}


%>


</font>


</BODY>


</HTML>



注意:空对象错误的避免,加入以下代码:
String str=request.getParameter("string");
if(str==null)
{
str="";
} //可以避免很多调试的麻烦!!

Request对象处理汉字乱码问题:
要用ISO-8859-1进行编码,并将编码存放到一个字节数组中去,再将数组转化为字符串对象。
例:
String textContent=request.getParameter("string");
Byte b[]=textContent.getBytes(“ISO-8859-1”);
textContent=new String(b);
具体例子:见request4.jsp


<%@ page contentType="text/html;charset=GB2312" %>


<HTML>


<BODY BGCOLOR=cygn background="1148350156370.jpg"><FONT size=4>


<p><h1>request对象</h1>


<form action="" method=post name=form>


<input type="text" name="string">


<input type="submit" value="提交" name="submit">


</form>


<p>获取文本的信息:


<%


String textContent=request.getParameter("string");


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%>


</font>


</BODY>


</HTML>



Request散列表用户注册实例:
散列表:使用相关关键字查找被存储的数据项的一种数据结构,可以自动变大!关键字不可以有逻辑冲突!
例见request5.jsp,request6.jsp

request5.jsp


<%@ page contentType="text/html;charset=GB2312" %>


<HTML>


<BODY BGCOLOR=cygn background="1148350156370.jpg"><FONT size=4>


<p><h1>request对象</h1>


<form action="request6.jsp" method=post name=form>


<p>输入你的姓名:


<input type="text" name="name">


<p>点击提交按钮:


<input type="submit" value="提交" name="submit">


</form>


</font>


</BODY>


</HTML>



request6.jsp


<%@ page contentType="text/html;charset=GB2312" %>


<%@ page import="java.util.*"%>


<HTML>


<BODY BGCOLOR=cygn background="1148350156370.jpg"><FONT size=4>


<%!


Hashtable hashtable=new Hashtable();


public void putName(String s)




...{


hashtable.put(s,s);


}


%>


<%


String name=request.getParameter("name");


if(name==null)




...{


name="";


} //可以避免很多调试的麻烦!!


String textContent=request.getParameter("name");


byte b[]=name.getBytes("ISO-8859-1");


name=new String(b);


if(!(hashtable.containsKey(name)))




...{


putName(name);


%>


<p>您已经注册成功!!!!您的名字为------"<%=name%>"


<%


}


else




...{


%>


<p>名字--"<%=name%>"--已存在,请您换一个名字


<%


}


%>


</font>


</BODY>


</HTML>



以上完成于:2007.08.01
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: