我正在使用Web应用程序,我必须将消息从一个servlet发送到另一个servlet,并将servlet发送到JSP。默认的方法是使用RequestDispatcher
并调用request.setAttribute("name",message);
。
是的,但我有一些地方需要使用response.sendRedirect()
才能停止在手工提交上多次提交表单。
在这种情况下,最常见的发送消息的方法是使用Session
并将消息添加到会话中。
然而,使用会话传递消息并不是一个好主意,因为消息实际上是一个属于request scope
的项目。那么,还有其他任何将它传递给servlet和Jsp的好方法吗?在JSP中我使用JSTL
所以请告诉我如何使用它来获取传递的对象。
答案 0 :(得分:1)
您可以使用cookies
,Query String
,url re-writing
等。
查询字符串:
String path = 'next.jsp';
path += '?name=' + messge;
您可以使用:
response.sendRedirect(path);
OR
request.getRequestDispatcher(path).forward(request, response);
在着陆页上,您可以通过request.getParameter("name")
答案 1 :(得分:0)
如果您使用任何类似Struts 2的框架,可以将其存储到application scope
https://struts.apache.org/docs/accessing-application-session-request-objects.html
如果您使用的是简单的Servlet并且session
不能用于存储您想要的空间,您可以考虑将其存储到文件磁盘或DB中,然后从您想要的任何Servlet
中读取它
如果您的情况属实,则此问题相关:What is the best place to store a configuration file in a Java web application (WAR)?