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

request与response

2015-11-30 21:26 441 查看
1.Request(HttpRequestServlet)对象
          request(HttpRequestServlet)  当前页面存在,服务器跳转存在,客户端不存在客户端的请求信息被封装在request对象中,通过它才可以了解到客户的需求,然后做出响应 ,它是HttpRequestServlet类的实例,request对象具有请求域,即完成客户端的请求之前,
该对象一直有效。常用方法如下:
String      getRequestURl( )获取请求链接地址的相对路径
String      getRequestURL( ).toString( );  请求链接地址的完整路径

String     getParameter(String name) 返回name指定参数的参数值
String[ ]   getParameterValues(String name) 返回包含参数name的所有值的数组

void        setAttribute( String ,Object) 存储此请求中的属性
Object    getAttribute(String name) 返回指定属性的属性值
int           getContentLength( )获取浏览器文本的大小

String     getContentType( )得到请求体的mime类型
String     getProtocol( )返回请求用的协议类型和版本号

String     getSererName( ) 返回接受请求的服务器主机名
Sting      getRemoteAddr( )返回客户端IP地址

String     getRealPath  得到真实路径
eg:        请求体的mime类型:
<%=request.getContentType()
%><
br>
      协议类型及版本号:
<%=request.getProtocol()
%>
<br
>
      服务器主机名:
<%=request.getParameterNames()
%><
br>
      服务器端口号:
<%=request.getServerPort()
%> 
<br
>
      请求客户端的Ip地址:
<%=request.getRemoteAddr()
%> 
<br
>

eg.<body> 
requests.jsp
 <h1
>用户注册
</h1
><hr
>
 <form
action
="request.jsp"
name="regForm"
method=
"POST">
   
<table
>
     
<tr
>
       
<td
>用户名:
</td
>
         
<td
><input
type
="text"
name="username"></
td> 
</tr
>
                
<tr
><td
>爱好:
</td
><td
>
 
<inputtype="checkbox"name="favorite"value="read">读书
//checkbox:复选框
      
<input
type
="checkbox"
name="favorite"
value=
"music">音乐
          
<input
type
="checkbox"
name="favorite"
value=
"moive">电影
             
<input
type
="checkbox"name="favorite"value="internet">上网
                 
</td

</tr>  
<tr
>
       
<td
colspan
="2"><input
type=
"submit"
value
="提交"></
td> </tr
>
 
</table

</form
>
</body>

request.jsp
[align=left]<body>[/align]
<h1>
request内置对象</h1
>
<%request.setCharacterEncoding(
"UTF-8");
%>  //解决中文乱码问题
用户名:<%=request.getParameter(
"username")
%><
br>
[align=left]爱好:<%[/align]
         String[] favorites=request.getParameterValues(
"favorite");

            
for(
int
i=0;i<favorites.length;i++){
                  out.println(favorites[i]+
"  ");  // 空格

[align=left]            }[/align]
       
%>
[align=left]</body>[/align]

解决URL传参中中文乱码问题,在tomcat服务器中conf目录下server.xml文件中找到添加
URIEncoding="utf-8"
     <Connector port="8080" protocol="HTTP/1.1" connectionTimeout=“20000"   
        redirectPort="8443"  URIEncoding="utf-8”/> 

2.Response对象               
     response对象包含了响应客户请求的有关信息,但在jsp中很少直接用到它,它是HttpServletResponse类的实例,response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效
常用方法:
      一.PrintWriter getWriter( )返回可以客户端输出字符的一个对象  Java.io,*
      二.setContentType(String type)设置响应的mime类型

       
        out.println("response内置对象");     
        PrintWriter outer=response.getWriter( );    //获得输出流对象

        outer.println("大家好");       //会提前在内置的out对象前打印
       
       response.sendRedirect( "reg.jsp");      
//请求重定向  (无法共享转发的页中数据)
       redirect能重定向到当前应用程序,而且还能重定向到同一个站点上其他应用程序的资源,甚至使用绝对的url重定向到其他站点资源.比如可以通过该方法跳转到Google页面   
   
 
    <jsp:forword page=""></jsp:forword>//JSP动作指令   forward属于服务器端请求资源,服务器直接访问目标地址,并对目标地址响应内容进行读取,在把读取内容发给浏览器,客户端浏览器的地址不变.
   
  请求重定向: 客户端行为,
     
        response.sendRedirect( )从本质上讲等同于2次请求,前一次的请求对象不会保存,地址栏的URL地址会改变
    
http://www.cnblogs.com/shenliang123/archive/2011/10/27/2226892.html 
重定向:你先去了A局,A局的人说:“这事不归我们管,去B局”,然后,你就从A局退出来自己乘车去了B局。(进行页面跳转)
            
   
 请求转发:服务器行为 request.getRequestDispatcher( ).forward(request,response);是一次请求转发后请求对象会保存,地址栏的URL地址不会改变。
转发;你先去了A局,A局的人看了以后,知道这个事情其实应该B局来管,但他没有把你退出来,而
是让你坐一会,自己到后面办公室联系了B的人,他他们办好后,送了过来。

99%业务都是用转发
重定向    登陆页面跳出比如    : 登陆退出——重定向到首页 

ajax—— 无状态刷新 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: