JAVAweb第六记<url重写 转发与请求的区别>

url重写:
 1)servlet规范中引入了一种补充的会话管理机制  它允许不支持Cookie的浏览器也可以与
web服务器保持连续的会话
   2)将会话标识号以参数形式附加在超链接的url地址后面的技术称为url重写
   3)代码:
  <a  href="<%=response.encodeUrl("login.jsp")%>">重新登录</a>
  &nbsp;&nbsp;
   <a  href="<%=response.encodeUrl("logout.jsp")%>">注销</a>

绝对路径问题:
  1)开发时建议编写绝对路径   相对路径会有问题
   2)由servlet转发到jsp页面时,此时浏览器上显示的是servlet的路径,而若jsp页面的超链接还是相对于Jsp页面的地址,
则可能出现路径混乱的问题
/a.jsp
    -path
     /b.jsp
     /c.jsp
a.jsp->/servlet-转发->b.jsp(由一个超链接:和b.jsp在同一个路径下的c.jsp)->无法得到页面
编写绝对路径可以避免上面的问题
 :相对与当前web应用的根路径的路径
 javaweb中的/的含义:
  有时候代表当前web应用的根路径  还有的是web站点的根路径
 
 1....当前web应用的根路径:http://locahost:9000/contextpath  如果/需要交由Servlet容器来处理

  >请求转发时候:request.getRequestDispatcher("/path/ .jsp").forward();
 >  web.xml文件中映射servlet  访问路径
 


 2...web站点的根路径:http://localhotst:9000/  如果/交由浏览器处理
    >超链接  <a  href="/testServlet"></a>
    >表单中的action   :<form action="/login.jsp">
    >做请求重定向的时候:response.sendRedirect();


/若代表的是站点的根目录 ,加上contextPath

重复提交:
   ①在表单提交到一个Servlet,而servlet又通过请求转发响应了一个jsp页面  此时地址兰还保留着
servlet的那个路径,在响应页面点击“刷新”
   ②在响应页面没有到达时 重复点击“提交按钮 ”
   ③  点击返回i  再点击提交
不是重复提交的情况: 点击“返回”, “刷新”原表单页面,再“提交”

 如何避免表单的重复提交:
  在表单中做标记  提交到Servlet 检查标记是否存在  且是否和预定义的标记一致  若一致则受理请求,并销毁标记,若不一致,
或没有标记,则直接响应提示信息:“重复提交”


每写一个serlvet都映射么

使用httpsession实现验证码:
  1)基本原理   和表单重复提交一致
  >在原表单页面,,生成一个验证码的图片  同时把该图片中的字符串 放入在session中
  >在原表单页面  定义一个文本域 用于输入验证码
 
  >在目标的servlet中:获取session和表单域中的验证码的值
  >比较两个的值是否一致:若一致,受理请求,且把session域中的验证吗清楚
   >若不一致,则直接通过重定向返回原表单页面 提示用户"验证吗错误"


el变量:
  page>request>session>application
  可以进行自动的类型转换

 1 与输入有关的银行对象:  parame   paramValues
 2  cookie  header  headerValues

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值