当我们很躲数据共有一个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>`