request与response

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 >
  < input type = "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
< body >
< h1 > request内置对象 </ h1 >
<% request.setCharacterEncoding( "UTF-8" ); %>   //解决中文乱码问题
用户名: <%= request.getParameter( "username" ) %> < br >
爱好: <%
         String[] favorites=request.getParameterValues( "favorite" );
             for ( int i=0;i<favorites.length;i++){
                  out.println(favorites[i]+ "&nbsp;&nbsp;" );  // &nbsp;空格
            }
        %>
</ body >


解决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地址 会改变
    
重定向:你先去了A局,A局的人说:“这事不归我们管,去B局”,然后,你就从A局退出来自己乘车去了B局。(进行页面跳转)
            
     请求转发:服务器行为 request.getRequestDispatcher( ).forward(request,response);是一次请求转发后请求对象会保存,地址栏的URL地址 不会改变
转发;你先去了A局,A局的人看了以后,知道这个事情其实应该B局来管,但他没有把你退出来,而
是让你坐一会,自己到后面办公室联系了B的人,他他们办好后,送了过来。


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

ajax—— 无状态刷新 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值