如果JSP中的验证失败,则重新定向
我正在使用下面的代码从页面中获取一些数据:如果JSP中的验证失败,则重新定向,jsp,Jsp,我正在使用下面的代码从页面中获取一些数据: int clientId = Integer.parseInt(request.getParameter("clientId")); 我尝试过用try/catch来包围它,然后使用response.sendRedirect(“page.jsp”)在catch块中重定向但是页面没有重新定向,它似乎想要完成整个脚本(这反过来会抛出更多错误,因为初始变量无效!)。我缺少一些基本的东西吗?您需要确保JSP页面上的所有scriptlet逻辑都是有条件的,这取决
int clientId = Integer.parseInt(request.getParameter("clientId"));
我尝试过用try/catch来包围它,然后使用
response.sendRedirect(“page.jsp”)在catch块中重定向代码>但是页面没有重新定向,它似乎想要完成整个脚本(这反过来会抛出更多错误,因为初始变量无效!)。我缺少一些基本的东西吗?您需要确保JSP页面上的所有scriptlet逻辑都是有条件的,这取决于“clientId”的存在,因此您的catch块可能需要深入到JSP页面的底部。请记住,JSP页面是编译成servlet的,因此您仍然需要确保代码可以编译。一般来说,我强烈建议您将此逻辑放在一个单独的类(例如,控制器类)中,并尽量减少JSP页面上的scriptlet代码量。否则很难维持
如果这对您来说还不清楚,请发布您的整个JSP代码,以便我们能够确定建议的位置。您需要确保JSP页面上的所有scriptlet逻辑都是有条件的,这取决于“clientId”的存在,因此您的catch块可能需要转到JSP页面的底部。请记住,JSP页面是编译成servlet的,因此您仍然需要确保代码可以编译。一般来说,我强烈建议您将此逻辑放在一个单独的类(例如,控制器类)中,并尽量减少JSP页面上的scriptlet代码量。否则很难维持
如果这对您来说还不清楚,请发布您的整个JSP代码,以便我们能够确定建议的位置。您可能缺少返回
语句(尽管我没有看到您的代码):
如果只调用sendRedirect(..)
这将设置位置http头和http状态,但不会影响当前方法的流,它将继续。您可能缺少return
语句(尽管我看不到您的代码):
如果您只需调用sendRedirect(..)
,这将设置位置
http头和http状态,但不会影响当前方法的流,它将继续。读取服务器日志。我的分文是,它充斥着IllegalStateException
s。有关更多详细信息,请参见
不要滥用JSP作为页面控制器。由于JSP本身就是响应的一部分,因此您不能再从JSP内部对其进行更改(好的,有一些hacks/workarounds,但您不想使用hacks/workarounds)。要控制请求/响应,您应该使用servlet。创建一个servlet,让它监听某个URL,让表单提交到该URL,让servlet执行JSP中的所有Java代码,并最终控制响应目标
你可以在我们的网站上找到一个Hello World的例子。它还包括基本验证。阅读服务器日志。我的分文是,它充斥着IllegalStateException
s。有关更多详细信息,请参见
不要滥用JSP作为页面控制器。由于JSP本身就是响应的一部分,因此您不能再从JSP内部对其进行更改(好的,有一些hacks/workarounds,但您不想使用hacks/workarounds)。要控制请求/响应,您应该使用servlet。创建一个servlet,让它监听某个URL,让表单提交到该URL,让servlet执行JSP中的所有Java代码,并最终控制响应目标
你可以在我们的网站上找到一个Hello World的例子。它还包括基本的验证。btw,这段代码是在JSP中还是在Servlet中?在.JSP页面中。这种回归;顺便说一句,这段代码是在JSP中还是在Servlet中?在.JSP页面中。这种回归;似乎是他们干的。
response.sendRedirect(..);
return;