Request与response对象介绍

来源:互联网 发布:邵长文免费算命软件 编辑:程序博客网 时间:2024/05/02 00:07

Request与response对象介绍
问题:request与response是什么,它们有什么作用?
Web服务器接收到客户端的请求,会针对于每一次请求创建一个用于封装我们http请求信息的对象request,也会创建一个response对象,它对应着http响应。
在我们的程序中,我们得到request对象就可以操作http请求信息得到response对象就可以操作http响应信息

ServletRequest与ServletResponse它们是HttpServletRequest与HttpServletResponse的父接口。

request编码问题:

package com.hi;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Demo3 extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //获取文本参数的值得可能会产生的乱码问题        //post 方式直接设置编码即可        request.setCharacterEncoding("utf-8");        String line = request.getParameter("username");        //通过网页提交的请求,网页时utf-8 tomcat 用的是iso8859-1 进行解码的.存入request对象中的        System.out.println(line);//?????????è?? 直接打印乱码        //可以先给他进行一次iso8859-1编码,在用utf-8解码  get 方式提交//      byte[] bs = line.getBytes("iso8859-1");//      System.out.println(new String(bs,"utf-8"));//正常解码了.    }}
package com.hi;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Demo2 extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //设置状态码//      response.setStatus(302);        //设置响应头//      response.setHeader("location", "/Test/Demo1");//      System.out.println("11");        //一句话搞定        //response.sendRedirect("http://localhost/ServeltDemo/1.html");站外地址        //response.sendRedirect("/Test/Demo1");站内地址        //设置跳转  refresh   "5:url" 几秒钟跳转网页.        //response.setHeader("refresh", "3;url=/Test/Demo1");        //设置响应的编码    //  response.setCharacterEncoding("utf-8");//浏览还是GBK的,所以还是乱码 ,设置GBK 就不了        //        //response.setContentType("text/html;charset=utf-8");    //  response.setCharacterEncoding("GBK");        ServletOutputStream out = response.getOutputStream();        //out.print("你");        //byte[] bs = "<a href='www.baidu.com'>百度</a>".getBytes();        //out.print("你大方");     //ut.println("辅导费");        //out.write(bs);        //response.getWriter().print("你好啊朋友");        //response.getWriter().print("你好多福多寿");        //获取请求路径的/Test/Demo2        System.out.println(request.getRequestURI());        //获取协议版本          System.out.println(request.getProtocol());        //获取客户端的ip         System.out.println(request.getRemoteAddr());        System.out.println(request.getRemoteHost());        //获取工程名字 /Test        System.out.println(request.getContextPath());        //获得?的数据        System.out.println(request.getQueryString());    }       }

String value = request.getParameter(String name)//获取单一的请求参数的值
String values[] = request.getParameterValues(String name)//获取重名的请求参数的值
Enmeration e = request.getParamterNames();//获取所有的请求参数
Map

0 0
原创粉丝点击