zoukankan      html  css  js  c++  java
  • Servlet基础梳理(四)

    本篇说一下session和路径的问题。

    session:

    是一种在server端保存http状态信息的方案。眼下有两种实现方式:基于Cookie或者URL重写。

          基于cookie:第一次訪问server,server给响应的cookie中带有sessionid。再次请求时把cookie带回。匹配sessionID。

          URL重写:在请求的url中将sessionid以參数形式进行提交,server获取并进行匹配。action="<%response.encodeURL("welcome.jsp")%>"

    创建时机:

       并不是第一次訪问serverjsp都会创建session。假设jsp设置session=false不创建

       假设訪问的页面不是第一次訪问server的第一个资源。那么返回本次会话的session。自身不再创建

       假设第一次訪问的是Servlet,仅仅有调用request.getsession()或request.getsession(true)才会创建session。

    销毁:

        调用session.invalidate()直接销毁

        卸载web应用

        超过session的过期时间默认半个小时:(session.getMaxInactiveInterval());能够设置(session.setMaxInactiveInterval()),在  web.xml中设置。时间单位为分钟。

    对于session,最重要的两个方法:session.setAttribute(arg0, arg1);session.getAttribute(arg0)。

     URL路径:

         开发中尽量使用绝对路径,由于绝对路径一定没问题,相对路径可能有问题。写法例如以下:

     

    response.sendRedirect(request.getContextPath()+"/shoppingCart/person.jsp");

     在Servlet/jsp中,由于路径中/问题引发非常多路径问题,这里主要说一下/的两种含义:

    1. 当前web应用的根路径:由Servlet容器处理则web应用的根路径
       ->请求转发时
      ->web.xml中url配置时
      ->各种定制标签中
    2. 当前web网站的根路径:浏览器解析
      ->超链接
      ->表单中的action中
      ->请求重定向时候

    避免这些错误的方式就是使用绝对路径。

    最后提一下①表单反复提交和验证码的机制问题:

       由于这两个执行的原理同样。基本上一起提一下:

       1 在表单原始界面生成验证码图片(①产生字符串)。并把图片中字符放入session

       2 表单中输入验证码(①不用输入自己产生)

       3 Servlet中获取两个值比較,一致则受理成功,销毁session中验证码,不一致则打回又一次

    OK。这一篇临时说这些吧

    
    
  • 相关阅读:
    转:Intellij idea创建javaWeb以及Servlet简单实现
    IntelliJ IDEA控制台启动Tomcat输出中文乱码问题
    Tomcat 输出日志出现中文乱码
    转:Java Web 项目发布到Tomcat中三种部署方法
    运行tomcat7w.exe提示指定的服务未安装 解决办法
    (转)ASP.NET MVC:Razor 引入命名空间
    (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
    svn移动目录时如何保留原来的日志
    Memcached 教程
    最近帮朋友写了一个百度竞价关键词快速分词(分组)工具,支持与或逻辑分组,附源码和工具下载链接
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6815940.html
Copyright © 2011-2022 走看看