第一个问题:
做练习时发生了奇怪的情况。以前做的练习里面使用了Cookie,可以正常生效,相同的代码复制到另一个练习的project里面,就不起作用
就是在servlet里面这么写了一段:
Cookie ckuser=new Cookie("user", username);
ckuser.setMaxAge(86400);
response.addCookie(ckuser);
response.sendRedirect("board/main.jsp");
然后在jsp页面上读取Cookie:
Cookie[] ck = request.getCookies();
for (Cookie cookie : ck) {
System.out.println(cookie.getName());
}
结果只能得到一个JSESSIONID
相同的代码,在同时运行的另一个project里面就毫无问题,两者都是在同一个tomcat里的
第二个问题:
同一个project里面,用URLEncoder和URLDecoder从servlet向页面传递汉字,一个页面可以显示汉字,另一个显示乱码。代码完全相同
servlet的代码是:
String flag ="";
if(result){
flag="测试成功";
}else{
flag="测试失败"
}
flag = URLEncoder.encode(flag,"utf-8");
response.sendRedirect("board/main.jsp?flag="+flag);
JSP页面开头写的代码是:
String flag = request.getparameter("flag");
if(flag!=null){
flag = URLDecoder.decode(flag,"utf-8");
}
pageContext.setAttribute("flag",flag);
然后在页面上用${flag}显示,一个页面正常显示汉字,另一个显示乱码
所有能设置字符集的地方都设置为utf-8了,包括工具软件的默认字符集等
到底怎么回事实在是搞不明白了