乱码问题
- get和post提交中文,在使用request接受时出现乱码:
request.setCharacterEncoding("utf-8");
- 用URL传参中使用中文参数,用request接受出现乱码,用上面的设置字符编码方式无法解决,需要在tomcat目录下的conf中的server.xml中修改标签,为其增加一个属性:
URIEncoding="utf-8"
修改了配置文件,服务器必须重启才能生效。
- 在cookie中保存中文乱码问题: 使用java.net.*包,比如用户名username有中文,则设置
String username = URLEncoder.encode(request.getParameter("username"),"utf-8");
在之后用到cookie中的username时,需要解码,使用如下代码:
username = URLEndoder.decode(c.getValue(),"utf-8");
//c为一个cookie
session问题
session的生命周期 活动:
- 某次会话当中通过超链接打开的新页面属于同一次会话
- 只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同意项目资源时属于同一次会话。
- 除非本次会话的所有页面都关闭后再重新访问某个新的jsp或者servlet将会创建新的会话。
注意事项:
- 注意原有的会话还存在,只是这个旧的sessionId仍然存在于服务器端,只不过再也没有客户端会携带它然后交予服务器端校验。也就是说,新会话的建立并不代表着就回话的销毁。
session销毁的三种方式:
- 调用session.invalidate()方法
- session过期(超时)
- 服务器重新启动
设置session超时的两种方式:
- tomcat默认session超时时间为30分钟
- 1:session.setMaxInactiveInterval(时间);//单位是秒
- 2:在web.xml配置
<session-config>
<session-timeout>
10
<session-timeout>
<session-config> //单位是分钟
用request内置对象实现转发:
request.getRequestDispatcher(“url”).forward(request,response)
用request内置对象实现重定向:
response.sendRedirect(“url”)
Javabean:
设计原则:
- 公有类
- 无参的公有构造方法
- 属性私有
- getter和setter方法
保存用户状态的两大机制:
- session(内置对象)
- cookie(web服务器保存在客户端 的一系列文本信息)