JavaServlet之乱码(一)

web.xml除了可以配置Servlet的浏览器访问路径之处,还可以为我们的网站配置首页。
配置首页的方式如下:
<welcome-file-list>
<welcome-file>1.html</welcome-file>
</welcome-file-list>


MyEclipse里的src目录(src目录是放java源代码文件的)部署到tomcat的时候,是看不到这个文件夹的,为什么呢?因为tomcat只需要*.class文件,不需要*.java文件。


------------------------------------------
Request对象讲解:


演示用户提交表单,然后Serlvet通过Request对象获用户填的数据:


HTML页面:
[action的意思是把form表单里的数据交给谁处理,这里是交给Servlet处理,所以要指向Servlet程序]
<form action="/day04/use" method="post">
用户名:<input type="text" name="username" /> <br/>
密码: <input type="password" name="passwrod" /> <br/>
<input type="submit" value="提交" />
</form>


Servlet代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 如何获取用户填入的表单数据呢?
// 第一 使用request的getParameter()方法
String username = request.getParameter("username");
String password = request.getParameter("passwrod");

OutputStream out = response.getOutputStream();
out.write(("Username is: " + username + "<br/><br/> Password is:" + password).getBytes());
}


------------------------------------------


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

// 告诉浏览器以utf-8的编码方式来解码
// response.setContentType("text/html;charset=utf-8");
// response.getOutputStream().write("中国".getBytes("utf-8"));

/*
PrintWriter是输出流:
1. 会自动帮我们加换行
2. 可以直接输出字符串
*/
// 设置response对象的编码方式
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter print = response.getWriter();
print.write("你好");
}


结论:
1. 处理Response对象的中文乱码的最终解决办法是:
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");


2. 处理Request对象的中文乱码的最终解决办法是:
Post: request.setCharacterEncoding("utf-8"); 
[注意:这个方法只适合post的提交方式]


Get:
[解决get提交中文乱码的办法],如果post按上面设置了,还是不行的话,再加上下面的,肯定不会乱码
String username = request.getParameter("username");
byte[] b = username.getBytes("iso-8859-1");
String newUsername = new String(b, "utf-8");


记住:我们的页面要加上这个:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值