request response对象

本文介绍了解决Web应用中的中文乱码问题的方法,包括POST和GET请求的处理方式,以及如何实现请求转发。同时,还涉及了防盗链、URL编码等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:中文数据乱码问题解决

更改response的码表,让response在接受到中文数据时采用正确的码表对数据进行编码

response.setCharacterEncoding("UTF-8")

设置相应的头,控制浏览器以相应的码表显示数据

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

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

二:请求重定向

response.setStatus(302);

response.setHeader("location","位置");

或者response.sendRedirect("位置");

这种请求重定向,浏览器向服务器发送两次请求,分别两次创建response,resquest;

三:防盗链

String referer = request.getHeader("referer");得到从那个页面过来的。

四:获取用户数据,通过表单,超链接的参数。

五:获取客户端中文乱码问题,浏览器以什么码表打开的网页,则发送给服务器的是那种码表编码的数据,然后服务器封装到request中时,会以ISO码表转化成字符串,出现乱码,所以在获取客户端中文时必须设置request编码方式:request.setCharacterEncoding("gb2312").在输出中文数据给浏览器时,会查ISO码表对中文数据编码,所以必须设置编码方式和控制浏览器打开方式response.setCharacterEncoding("gb2312")

response.setContentType("text/html;charset=gb2312").

但是get方式提交的方式request设置是无效的,只能自己转化.

String name = request.getParameter();

byte[] source = name.getBytes("iso8859");

String name = new String(source,"gb2312")

六:URL中不能存在中文字符,必须要用URL编码。

七:乱码解决方法,post方式只需要设置request和response的编码方式就可以,get方式不能设置编码方式,必须将得到的数据自己转化。另一种解决方法是修改tomcat服务器,在server.xml的connector增加URIEncoding或者useBodyEncodingForURI属性就可以,但是不建议这么做。

八:请求转发两种方式,request或者servletContext都可以。forward请求转发时会把response清空。forward方法执行完会返回到原来的servlet中。

九:所有的路径问题都要"/"开头,若是给服务器用,则代表web工程,比如request.getDispacher,如果是给浏览器用,则代表webapps。比如response.sendRedirect("位置");

路径问题具体细节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值