Request的乱码问题:
1.以post提交时,设置request.setCharacterEncoding("UTF-8");便可以设置浏览器解析格式。
2.以get方式提交时,需要手动配置。
String username=request.getParameter("username");
username=new String(username.getBytes("iso8859-1"),"UTF-8");
这样就把原来从客户端用iso8859-1解析出的中文,改为用UTF-8来解析。
另外:用超链接带来的中文也只能手动配置。
数据转发问题:
若要带一部分数据:resquest.setAttribute("data",message);
request.getRequestDispatcher("/index.jsp").forward(request,reponse);
然后在index.jsp中要拿出数据:
方法一:¥(data)直接将数据打印
方法二:<% out.write((String)request.getAttribute("data")); %>
这里涉及到forward的一些小细节
当request返回的输出流被关闭(或刷新)后,跳转会失败。
若是request跳转多次,一定会失败,解决方法:每次跳转后直接return ;。
调用forward方法,原来response写到缓存区的内容会被清空。也就是说,respones返回的流没关,跳转后,写的内容会被清空。
还有include方法的一些细节
request.getRequestDispatcher("head.jsp").include(request,response);可以将head.jsp的内容显示到浏览器,但记得要将head.jsp的内容的<html>,<head>等全局标签去除,
要在request的输出流写上全局标签。