java表单请求_java – 在POST表单时设置请求属性

本文介绍了在Web应用中如何区分使用HTTP重定向与转发。通过对比response.sendRedirect与request.getRequestDispatcher.forward的区别,阐述了如何保持原始请求上下文及参数不变。同时,提供了在JSP页面中保留HTML输入值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.. and redirects to the same JSP page ..

你不应该在这里发射重定向,而是向前发射.即不要做

response.sendRedirect("page.jsp");

而是做

request.getRequestDispatcher("page.jsp").forward(request,response);

这样原始请求仍然存在,包括所有参数和属性.重定向即指示客户端发出全新请求,特此请求初始请求.

在JSP中,您可以通过EL中的${param}访问请求参数,您可以使用${attributeKey}以相同的方式访问请求属性,其中attributeKey是您用于在servlet的请求范围中设置对象的属性键如下:

request.setAttribute("attributeKey",someObject);

至于在JSP中保留HTML输入值,您只需要设置< input> element的值与请求参数值相对应:

这将在模板文本中打印request.getParameter(“foo”)的结果.然而,这有一个XSS的风险,更好的是在JSTL的fn:escapeXml()的帮助下逃避任何用户控制的输入,如下所示:

在下拉列表中保留选定的选项有点不同.您基本上需要设置< option>的所选属性有问题的元素.假设你是 – 通常会做的 – 使用JSTL的< c:forEach> tag以显示Map< String,String>或者可能是List< JavaBean>对于选项值,您可以按如下方式解决(假设${countries}是一个Map< String,String>您已将其作为属性放置在请求,会话或应用程序范围中):

当当前迭代的选项键等于请求参数映射中提交的选项键时,这将打印所选属性.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值