Java Post重定向Get似乎正在工作,但JSP结果什么也不显示
要点:我有一个JSP表单(Java Post重定向Get似乎正在工作,但JSP结果什么也不显示,java,jsp,redirect,post,servlets,Java,Jsp,Redirect,Post,Servlets,要点:我有一个JSP表单(MyForm.JSP),它接受用户输入并将其传递给我的第一个servlet(“/myfirstservlet”) 此servlet将用户输入值的SQL插入myFruits表,然后将用户重定向到my results servlet(“/results”) My results servlet然后检查一个“ADD”参数,如果参数为“true”(即它等于“success”),它最终会将用户重定向到My results JSP(results.JSP),它存储在路径中:WEB-
MyForm.JSP
),它接受用户输入并将其传递给我的第一个servlet(“/myfirstservlet”
)
此servlet将用户输入值的SQL插入myFruits
表,然后将用户重定向到my results servlet(“/results”
)
My results servlet然后检查一个“ADD”
参数,如果参数为“true”(即它等于“success”
),它最终会将用户重定向到My results JSP(results.JSP
),它存储在路径中:WEB-INF/MyFolder/results.JSP
)
我的JSP表单(MyForm.JSP
)也存储在路径中:WEB-INF/MyFolder/MyForm.JSP
控制台上的一切运行都没有错误,但是为什么我的结果JSP(现在有URL:“Results?ADD=success”
?)没有显示任何内容
我的JSP表单(MyForm.JSP
):
我的结果servlet(“/results”
):
我的结果JSP(Results.JSP
):
结果JSP
因为这句话,你什么都看不到:
if (request.getParameter("ADD").equals("SUCCESS"))
.equals()
区分大小写。您正在检查“SUCCESS”,但将“SUCCESS”作为值传递
这意味着这条线永远不会运行:
request.getRequestDispatcher("WEB-INF/MyFolder/Results.jsp").forward(request, response);
所以是空白页
您可以将值以大写形式发送,也可以将.equals()
更改为.contains()第一个“/myfirstservlet”
替换为响应。发送重定向(“结果?添加=成功”);
更改为响应。发送重定向(/results?添加=成功”);
“/results”
servlet方法中的第二个方法应该是doGet
。您使用了doPost
。在这个servlet中,不使用if(request.getParameter(“ADD”).equals(“SUCCESS”)
use
if(request.getParameter(“ADD”).equalsIgnoreCase(“SUCCESS”))
我认为在result.jsp中是第三个
<% ArrayList<String> list = (ArrayList<String>) utilitySQL.sqlSelectAll("Select * FROM fruits;");
如果去掉参数,为什么会转到结果页,我不确定。但我猜这可能与空指针异常有关。(在计算equals()之前检查空值是值得的……否则会得到空指针异常)utilitySQL中有什么?您在sqlInsert中提交了数据吗?您应该添加sqlSelectAll和sqlInsert中使用的代码。是的,我确信我已经提交了插入,因为我可以使用PhpMyAdmin查看数据库本身。utilitySQL类中没有问题。新创建的列表没有引用select查询的输出。因此,si列表的大小将始终为零。
<body>
<h1>Results JSP</h1>
<%ArrayList<String> list = (ArrayList<String>)
utilitySQL.sqlSelectAll("Select * FROM fruits;");
for(int i=0; i<list.size(); i++)
{%>
<div><%=list.get(i)%></div>
<%
}%>
</body>
if (request.getParameter("ADD").equals("SUCCESS"))
request.getRequestDispatcher("WEB-INF/MyFolder/Results.jsp").forward(request, response);
<% ArrayList<String> list = (ArrayList<String>) utilitySQL.sqlSelectAll("Select * FROM fruits;");
<% ArrayList<Your class name> list = (ArrayList<String>) utilitySQL.sqlSelectAll("Select * FROM fruits;");
for(int i=0; i<list.size(); i++)
{%>
<div><%=list.get(i)%></div>
<%
}%>