共用一个Servlet提交参数到后台天坑(form和a标签)!

当我们很躲数据共有一个Servlet对象时要注意:
request对象有一定的作用范围(管理范围)
每个对象管理的范围一般是form管理的范围

  • 问题:用a标签提交Servlet的参数在Servlet中获取不到?a标签和form标签提交到后台的数据都相互访问不到?
  • 原因: form提交和a标签提交所设的request对象不是一个值 也就是说在form标签中
    request对象调用setAttribute();setParamter(); 对于a标签无效,在a标签中
    request对象调用setAttribute();setParamter(); 对于a标签和form标签中都访问不到
    因为form的equest对象和a标签的request对象不同

例如:

 <a href="<c:url value='/StudServlet?cmd=query'></c:url>">查看学生信息</a><hr/>
    <form action="<c:url value='/StudServlet?cmd=save'/>" method="post">
        姓名:<input type="text" name="name"/><br/>
        年龄:<input type="text" name="age"/><br/>
        <input type="button" onclick="addBook()" value="添加图书"><br/>
        <div id="div">

        </div><br/>
        <input type="submit" value="注册">

    </form>
        <a href="<c:url value='/StudServlet?cmd=abc'></c:url>">
        <input type="text" name="aa" value="aaaaaaaaaa"/><br/>
测试注解</a>
  </body>
  • 解释:

通过a标签的Stuservlet拿到request.getParameter(“name”);是为空的,因为是不同的request对象
而通过form提交的Stuservlet同样拿不到request.getParameter(“aa”),就连a标签提交的request.getParameter(“aa”)都是null值,自己都拿不到,所以这是要注意的地方。

  • 解决办法:

1.a标签改用form提交,自己设置自己的param;自己有自己的作用域
2.提升作用域,在页面中加入属性,并设置为session对象所有

<c:set var="st" property="st" value="22222" scope="session"></c:set>`
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值