jsp中为什么浏览器request传参得不到而用重定向可以得到?
以下是index.jsp,以两种方式设置人requestjsp值<%@pagelanguage="java"import="java.util.*"pageEncodin...
以下是index.jsp,以两种方式设置人requestjsp值
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
<head>
</head>
<body>
<%
request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
%>
<jsp:forward page="/beanwrite.jsp"></jsp:forward>
<form action="/testweb/beanwrite.jsp" method="get">
<input type="text" name="bj">
<input type="submit">
</form>
</body>
</html>
以下是get.jsp用来得到index.jsp的request对象
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<html>
<body>
request.get:<%=request.getAttribute("bj") %>
</body>
</html>
问题出在
为什么使用
<%
request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
%>
<jsp:forward page="/beanwrite.jsp"></jsp:forward>
这一部分可以是get.jsp得到request.jsp的name为bj的值
但是使用表单的get方式传递却得不到?
使用浏览器传递参:http://127.0.0.1:8080/testweb/beanwrite.jsp?bj=eeeeeee
也是得不到的结果是null为什么? 展开
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
<head>
</head>
<body>
<%
request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
%>
<jsp:forward page="/beanwrite.jsp"></jsp:forward>
<form action="/testweb/beanwrite.jsp" method="get">
<input type="text" name="bj">
<input type="submit">
</form>
</body>
</html>
以下是get.jsp用来得到index.jsp的request对象
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<html>
<body>
request.get:<%=request.getAttribute("bj") %>
</body>
</html>
问题出在
为什么使用
<%
request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
%>
<jsp:forward page="/beanwrite.jsp"></jsp:forward>
这一部分可以是get.jsp得到request.jsp的name为bj的值
但是使用表单的get方式传递却得不到?
使用浏览器传递参:http://127.0.0.1:8080/testweb/beanwrite.jsp?bj=eeeeeee
也是得不到的结果是null为什么? 展开
展开全部
request.get(set)Parameter
request.get(set)Attribute
比如在你的jsp1页面中有一个表单(form),里面有一个input,type是textarea,name是address,里面输入了一些信息,然后提交这个页面到jsp2页面
那么,当你使用“request.getParameter("address")的时候,获取的就是这个textarea中的字符串。
你的jsp1页面中有一个你自己定义的类,这个类是一个Date类,名字是date,你已经通过request.setAttribute("myDate", date)方法,把它扔到了request域中,这时候,你从jsp1页面跳转到了jsp2页面,在jsp2页面中,你就可以通过request.getAttribute("myDate")的方法,获取这个date对象,注意,你获取的是一个Object对象,必须进行强制转换,即(Date)request.getAttribute("myDate")才能正确使用这个类
总之
get/setParameter是在对你的页面中的表单元素进行操作,获取的是这个表单元素中的值,其类型是字符串
get/setAttribute是对你页面中自己定义的对象进行操作,获取的是一个Object对象,必须进行强制类型转换后才可以进行进一步的操作
request.get(set)Attribute
比如在你的jsp1页面中有一个表单(form),里面有一个input,type是textarea,name是address,里面输入了一些信息,然后提交这个页面到jsp2页面
那么,当你使用“request.getParameter("address")的时候,获取的就是这个textarea中的字符串。
你的jsp1页面中有一个你自己定义的类,这个类是一个Date类,名字是date,你已经通过request.setAttribute("myDate", date)方法,把它扔到了request域中,这时候,你从jsp1页面跳转到了jsp2页面,在jsp2页面中,你就可以通过request.getAttribute("myDate")的方法,获取这个date对象,注意,你获取的是一个Object对象,必须进行强制转换,即(Date)request.getAttribute("myDate")才能正确使用这个类
总之
get/setParameter是在对你的页面中的表单元素进行操作,获取的是这个表单元素中的值,其类型是字符串
get/setAttribute是对你页面中自己定义的对象进行操作,获取的是一个Object对象,必须进行强制类型转换后才可以进行进一步的操作
展开全部
request.get(set)Parameter
request.get(set)Attribute
比如在你的jsp1页面中有一个表单(form),里面有一个input,type是textarea,name是address,里面输入了一些信息,然后提交这个页面到jsp2页面
那么,当你使用“request.getParameter("address")的时候,获取的就是这个textarea中的字符串。
你的jsp1页面中有一个你自己定义的类,这个类是一个Date类,名字是date,你已经通过request.setAttribute("myDate", date)方法,把它扔到了request域中,这时候,你从jsp1页面跳转到了jsp2页面,在jsp2页面中,你就可以通过request.getAttribute("myDate")的方法,获取这个date对象,注意,你获取的是一个Object对象,必须进行强制转换,即(Date)request.getAttribute("myDate")才能正确使用这个类
总之
get/setParameter是在对你的页面中的表单元素进行操作,获取的是这个表单元素中的值,其类型是字符串
get/setAttribute是对你页面中自己定义的对象进行操作,获取的是一个Object对象,必须进行强制类型转换后才可以进行进一步的操作
request.get(set)Attribute
比如在你的jsp1页面中有一个表单(form),里面有一个input,type是textarea,name是address,里面输入了一些信息,然后提交这个页面到jsp2页面
那么,当你使用“request.getParameter("address")的时候,获取的就是这个textarea中的字符串。
你的jsp1页面中有一个你自己定义的类,这个类是一个Date类,名字是date,你已经通过request.setAttribute("myDate", date)方法,把它扔到了request域中,这时候,你从jsp1页面跳转到了jsp2页面,在jsp2页面中,你就可以通过request.getAttribute("myDate")的方法,获取这个date对象,注意,你获取的是一个Object对象,必须进行强制转换,即(Date)request.getAttribute("myDate")才能正确使用这个类
总之
get/setParameter是在对你的页面中的表单元素进行操作,获取的是这个表单元素中的值,其类型是字符串
get/setAttribute是对你页面中自己定义的对象进行操作,获取的是一个Object对象,必须进行强制类型转换后才可以进行进一步的操作
参考资料: http://hi.baidu.com/zream/blog/item/03e4a97ecb1aa23a0dd7daf0.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据你写的代码问题我谈下看法:
首先你写在index.jsp里面的这段代码
<%
request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
%>
<jsp:forward page="/beanwrite.jsp"></jsp:forward>
将会导致你进入index.jsp时直接跳转到beanwrite.jsp页面
然后你想获得你的值,你就得到beanwrite.jsp页面去获得,获得的方法request.getAttribute("bj");
然后跟你分析下重定向和转发
我们都知道jsp还是要被转换成servlet的,在servlet中有dopost doget两个方法,而这两个方法里面有两个参数servletrequest servletresponse 转发的时候带着这些参数进行跳转(request.getRequestDispatcher(rul).forward(request,response)所以转发可以得到request的值;
而重定向response.sendRedirect(url)没有带着这两个参数进行跳转,所以重定向是不可能得到request的值的!
希望能对你有所帮助!
首先你写在index.jsp里面的这段代码
<%
request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
%>
<jsp:forward page="/beanwrite.jsp"></jsp:forward>
将会导致你进入index.jsp时直接跳转到beanwrite.jsp页面
然后你想获得你的值,你就得到beanwrite.jsp页面去获得,获得的方法request.getAttribute("bj");
然后跟你分析下重定向和转发
我们都知道jsp还是要被转换成servlet的,在servlet中有dopost doget两个方法,而这两个方法里面有两个参数servletrequest servletresponse 转发的时候带着这些参数进行跳转(request.getRequestDispatcher(rul).forward(request,response)所以转发可以得到request的值;
而重定向response.sendRedirect(url)没有带着这两个参数进行跳转,所以重定向是不可能得到request的值的!
希望能对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表单get方式传递的是表单中的数据值 。。。
并不是所有的东西都会传过去的。。
并不是所有的东西都会传过去的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取得表单里的值的方法为getParameter()不是getAttribute()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询