servlet编码

针对web项目

在web.xml中配置

<context-param>
      <param-name>encode</param-name>
      <param-value>utf-8</param-value>
  </context-param>

在servlet中调用

public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String encode = this.getServletContext().getInitParameter("encode");
        resp.setContentType("text/html;charset="+encode);

        req.setCharacterEncoding(encode);
    }

resp应答编码可通过上面两行进行编码

req请求:编码需要先编写为iso-8859-1 在通过String(字节数组,编码格式) 转换

String username = req.getParameter("username");
        byte[] bt = username.getBytes("iso-8859-1");
        username = new String(bt,encode);

这样就不会出现乱码情况

在转换为需要的编码格式,因为编码get方式提交的信息参数 2K url?name=value 形式传输 (空格用+代替)  浏览器会自动缓存,如果不需要缓存,需要代码实现 

resp.setHeader("cache", "no-cache");应该是这样

post请求提交的参数信息是通过request body 大小不受限制

 

小插曲:好久没用自己电脑,创建项目发现MyEclipse提示信息,看了之后是因为jdk版本太高,修改jdk版本为myeclipse自带的就可以

Multiple markers at this line
    - The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced 
     from required .class files
    - The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced 
     from required .class files

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值