关于jsp与servlet之间传值的问题及getParameter和getAttribute的用法

1.jsp中通过<a>标签给servlet传递数据:

jsp:

<a href="MyServlet?name=mi">转到servlet</a>

servlet:

String name = request.getParameter("name");
System.out.println(name);

注意标红的代码.

2.从servlet中给jsp传数据:

2.1使用setAttribute方法,并用request.getRequestDispachar("path").forward(request,response)转发到jsp页面中

servlet:

request.setAttribute("name", "name");
request.getRequestDispatcher("B.jsp").forward(request,response);
jsp:

<%=request.getAttribute("name")%>


使用getAttribute()接收

可接收到值name

2.2使用response.sendRedirect("location");重定向到B.jsp页面中(接收不到值)

servlet:

request.setAttribute("name", "name");
response.sendRedirect("B.jsp");
jsp:

<%=request.getAttribute("name")%>
结果为null,证明没有传过来.

最后加一个:使用GetParameter()方法接收,不管是转发还是重定向都接收不到值.

3. A.jsp传到B.jsp:


A.jsp

<a href="B.jsp?name=mi">转到B.jsp</a>

B.jsp

<%=request.getParameter("name") %>

可以接收到.

而使用getAttribute()方法接收不到.

4.从servlet传值到servlet02

4.1 重定向(失败)

servlet

request.setAttribute("name", "mi");
response.sendRedirect("MyServlet02");

servlet02

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
		String name = (String) request.getAttribute("name");
		out.print(name);
页面显示为null,说明也没有传过来.

4.2 转发(成功)

servlet

request.setAttribute("name", "mi");
request.getRequestDispatcher("MyServlet02").forward(request,response);
servlet02

response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		String name = (String) request.getAttribute("name");
		out.print(name);


以上代码.


还有一个问题也需要弄明白,那就是getAttribute和getParameter的区别于用法,上面我也进行了许多尝试,

更多关于两者之间的关系点击这个链接,很详细!点击打开链接















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值