Servlet之Response

来源:互联网 发布:淘宝店保证金怎么退回 编辑:程序博客网 时间:2024/05/19 02:04
1.web服务器在接收到客户端的每一次的http请求,都会分别创建一个代表请求的Request对象和代表响应的Response对象。2.request代表了http请求,response代表了http响应,所有,要想获取客户端提交的数据只要request对象就行了,若要向客户机输出数据,只要找response对象就行了。HttpServletResponse对象代表了服务器的响应,这个对象封装了服务器向客户机发送的状态码,发送的响应头和回送的数据:getOutputStream();getWriter();setHeader();setStatus();乱码处理://字节流只能写字节(通过查UTF-8码表把字符串变成字节码)(为了程序的通用性)//乱码造成的原因:服务器写给浏览器的为utf-8码,而浏览器的默认解码方式为:gb2312response.getOutputStream().write("你好".getBytes("UTF-8"));//以UTF-8码把数据写到浏览器response.setHeader("Content-type", "text/html;charset = utf-8");//告诉浏览器以何种码表打开文件<meta>标签的作用:模拟http响应头。response设置其默认字符编码:setCharacterEncoding();Response的常见应用:1.文件下载 //如果要下载的文件的名称包含中文名,则文件名需要经过url中文编码。URLEncoder.encode(str,"utf-8");//对某个字符串采用UTF-8编码String fileName = path.substring(path.lastIndexOf("\\")+1);System.out.println(fileName);response.setHeader("content-disposition", "attachment;fileName="+URLEncoder.encode(fileName,"UTF-8"));int  len = 0;byte[] buff = new byte[1024];OutputStream out = response.getOutputStream();while((len = in.read(buff))>0){ out.write(buff , 0 , 1024);}2.Response生成随机图片(验证码):汉字区间:[\u4e00-\u9fa5]常用汉字区间:3.控制浏览器定时刷新(设置http请求头refresh):4.控制浏览器不缓存 (设置http请求头Expires):5.response实现请求重定向 :(修改http请求头和状态码)(请求重定向会修改浏览器地址栏:登录成功和购物成功一般会采用请求重定向)*注意:response重定向能不用尽量不用,它会向服务器发送两次请求,加重服务器压力。response.setStatus(302);response.setHeader("location", "/ServletStu/index.jsp");6. getOutputStream()和getWrite()互斥

0 0
原创粉丝点击