request & response

response:响应

         作用:

                  往浏览器写东西

         组成部分:

                  响应行响应头 响应体

         操作响应行

                  格式:

                          协议/版本 状态码 状态码说明

                  状态码:

                          1xx:已发送请求

                          2xx:已完成响应

                                   200:正常响应

                          3xx:还需浏览器进一步操作

                                   302:重定向配合响应头:location

                                   304:读缓存

                          4xx:用户操作错误

                                   404:用户操作错误.

                                   405:访问的方法不存在

                          5xx:服务器错误

                                   500:内部异常

 

重定向:  

                          方式1:

                                   response.sendRedirect("/day10/loc2");

                          方式2:

                                   response.setStatus(302);

                                   respooen.setHeader("location","/day10/loc2");

                                           

         定时刷新:

                          方案1:设置头 refresh

                                   respooen.setHeader("refresh","秒数;url=跳转的路径");

                          方案2:httpmeta标签

                                   <metahttp-equiv="refresh"content="3;url=/day10/refresh2.html">

 

处理响应中文乱码:

                          方式1:

                                   response.setContentType("text/html;charset=utf-8");

                          方式2:

                                   response.setHeader("content-type","text/html;charset=utf-8");

 

文件下载:

                  1.超链接下载

                          <ahref="/day10/download/day10.txt">下载 day10.txt</a>

                          若浏览器能解析该资源的mime类型,则打开;若不能接下则下载;

                  2.编码下载通过servlet完成

                          <ahref="/day10/download?name=day10.txt">下载 day10.txt</a>

                          a.设置文件的mime类型

                                   StringmimeType=context.getMimeType(文件名)

                                   response.setContentType(mimeType);

                                  

                          b.设置下载头信息 content-disposition

                                   response.setHeader("content-disposition","attachment;filename="+文件名称);

                                  

                          c.提供流

                                   response.getOutputStream();

                                  

                  扩展:使用commons-io工具类

                          对拷流:

                                   IOUtils.copy(is,os);

 

 

request:请求

         作用:获取浏览器发送过来的数据

         组成部分:

                  请求行请求头 请求体

         操作请求行

                  格式:

                          请求方式请求资源 协议/版本

                  常用方法:

                          StringgetMethod():获取请求方式

                          StringgetRemoteAddr():获取ip地址

                          StringgetContextPath() :java中获取项目名称  (/day10)

 

操作请求参数

                  username=tom&password=123&hobby=drink&hobby=sleep

                  常用方法:

                          StringgetParameter(String key):获取一个值

                          String[]getParameterValues(String key):通过一个key获取多个值

                          Map<String,String[]>getParameterMap():获取所有的参数名称和值

 

请求的中文乱码:


                  对于get请求:参数追加到地址栏,会使用utf-8编码,服务器(tomcat7)接受到请求之后,
                  使用iso-8859-1解码,所以会出现乱码


                  对于post请求,参数是放在请求体中,服务器获取请求体的时候使用iso-8859-1解码,
                  也会出现乱码

                  通用的方法:

                          newString(参数.getBytes("iso-8859-1"),"utf-8");

                  针对于post请求来说:只需要将请求流的编码设置成utf-8即可

                          request.setCharacterEncoding("utf-8");

 

请求转发:

                  request.getRequestDispatcher("内部路径").forward(request,response);

 

封装对象:

Bean.setxxx()一个个封装不方便

                  apache提供的一个工具类BeanUtils封装数据

                          使用步骤:

                                   1.导入jarcommons-beanutils-1.8.3.jar、commons-logging-1.1.1.jar                  

                                   2.调用 BeanUtils.populate(Object bean,Map<> 参数);

 

 

请求转发和重定向区别:

         重定向发送两次请求,请求转发一次请求

        

         重定向地址栏发生该表,请求转发不变

        

         重定向是从浏览器发送,请求转发是服务器内部

        

         重定向不存在request域对象,请求转发可以使用request域对象

        

         重定向是response的方法,请求转发是request的方法

        

         重定向可以请求站外资源,请求转发不可以             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值