我有一个关于如何允许我的jsp页面向服务器发出post命令的问题,并且浏览器仍然允许重新发布已发布页面的方向。
以下是代码snipets:
执行帖子的代码(这是在jsp文件中):
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter("SUBMITTED", "submitted");
client.getParams().setParameter("xxxxxxxx", purchaser.getemail());
client.getParams().setParameter("xxxxxxxx", purchaser.getsuject());
HttpPost method = new HttpPost(url+"process.jsp");
client.execute(method);
这是一个process.jsp
的snipetif (person.getStatus() == person.ACTIVE)
response.sendRedirect("Account.jsp);
else if (person.getStatus() == person.ERROR)
response.sendRedirect("Error.jsp);
我希望浏览器从process.jsp中获取/转到重定向。有没有人知道一个可以帮助我的教程,或者我是以错误的方式解决这个问题。
答案 0 :(得分:1)
你的确走错了路。与任何“JSP中的原始Java代码”一样,此逻辑属于真正的Java类,而不属于JSP文件。创建一个执行此操作的Servlet,然后让它将请求重定向/转发到感兴趣的JSP文件。
JSP是一种视图技术,实际上是响应体的一部分。如果您尝试将响应更改为JSP的一半,则最终只能使用IllegalStateException: response already committed
。
此外,从问题中不清楚整个功能要求。我的印象是两个JSP文件都在相同的环境中运行,然后整个HttpClient方法都是错误的。开始学习更多关于servlet的知识。 This is a good starting point