300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Response Request 对象

Response Request 对象

时间:2022-10-08 05:56:41

相关推荐

Response       Request 对象

response 两种在网页显示的方式:

//通过 response 获得输出流

OutputStream out = response.getOutputStream();

// 向ie发送数据

out.write("hello".getBytes());

// tomcat 会在请求结束时,检查response的流是否关闭 如没关会帮我们关闭

// getWriter 和 getOutputStream 不能同时调用

// PrintWriter writer = response.getWriter();

// writer.write("hello");

// response 实现请求重定向

// 发送 302 状态码 + location头

// response.setStatus(302);

// response.setHeader("location","/day06/index.jsp");

// response 对请求重定向进行了功能的封装

response.sendRedirect("/day06/index.jsp");// 相当于 302 + location

解决response输出中文乱码问题

// 指定response的编码

//response.setCharacterEncoding("utf-8");

// 通知浏览器用什么码表来解码

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

response.setContentType("text/html;charset=utf-8");// 解决response输出中文乱码问题 最终方案

PrintWriter writer = response.getWriter();

writer.write("中国");

解决request中文乱码问题(在doGet方法下)

// 设置request编码

request.setCharacterEncoding("utf-8");

String username = request.getParameter("username");

System.out.println("username=" + username);

byte[] bytes = username.getBytes("iso-8859-1");

username = new String(bytes, "utf-8");

System.out.println("username=" + username);

解决request中文乱码问题(在doPost方法下)

// 设置request编码

request.setCharacterEncoding("utf-8");// 只对post方式下提交的参数有效

String username = request.getParameter("username");

System.out.println("username=" + username);

文件下载

response.setContentType("text/html;charset=utf-8");// 设置消息体的编码

// 通过 http 协议 发送的http响应消息头 不能出现中文 中文必须要经过url编码

String filename = URLEncoder.encode("美女.jpg", "utf-8");

// 通知浏览器以下载的方式读取资源

response.setHeader("content-disposition", "attachment;filename="+filename);

// 读取图片数据 发给ie浏览器

String webPath = "/download/美女.jpg";// 相当于当前web应用的path

ServletContext servletContext = super.getServletContext();

InputStream in = servletContext.getResourceAsStream(webPath);

OutputStream out = response.getOutputStream();

int len;

byte[] buffer = new byte[1024];

while((len=in.read(buffer))!=-1)

out.write(buffer, 0, len);

url 编码

* url地址中不允许出现中文,需要传输要进行url编码

* 规则 将字符进行编码 编码成字节 将每个字节都转为16进制,前面加%

String str = "中国";

String result = URLEncoder.encode(str, "utf-8");

System.out.println(result);

byte[] bytes = str.getBytes("utf-8");

for(byte b : bytes)

System.out.println(b);

防盗链

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。