如何从Servlet发送参数

我正在尝试使用RequestDispatcher从Servlet发送参数。

这是我的servlet代码:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String station = request.getParameter("station");

String insDate = request.getParameter("insDate");

//test line

String test = "/response2.jsp?myStation=5";

RequestDispatcher rd;

if (station.isEmpty()) {

rd = getServletContext().getRequestDispatcher("/response1.jsp");

} else {

rd = getServletContext().getRequestDispatcher(test);

}

rd.forward(request, response);

}

这是我的jsp,其中包含读取值的代码-但是显示为null。

    <h1>response 2</h1>

<p>

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

</p>

感谢您的任何建议。更环保

回答:

在您的servlet

中,按以下方式使用request.setAttribute

request.setAttribute("myStation", value);

值恰好是您以后要读取的对象。

并稍后使用request.getAttribute将其提取到其他servlet

/ jsp 中

String value = (String)request.getAttribute("myStation")

要么

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

请注意,get / setAttribute的使用范围本质上是受限制的-

在请求之间重置属性。如果打算将值存储更长的时间,则应使用会话或应用程序上下文,或者最好使用数据库。

属性与参数不同,因为客户端从不设置属性。开发人员或多或少使用属性将状态从一个servlet /

JSP转移到另一个。因此,您应该使用getParameter(没有setParameter)从请求中提取数据,如果需要,可以使用setAttribute设置属性,使用RequestDispatcher在内部转发请求,并使用getAttribute提取属性。

以上是 如何从Servlet发送参数 的全部内容, 来源链接: utcz.com/qa/397304.html

回到顶部