JSP学习中的问题总结

来源:互联网 发布:保罗乔治身体数据 编辑:程序博客网 时间:2024/05/16 11:36

乱码问题

  • 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服务器保存在客户端 的一系列文本信息)
原创粉丝点击