Java servlet 没有收到请求属性
Java servlet not receiving request attributes
我目前正在开发一个网络应用程序,我想在其中向用户更新操作是否成功。我试图通过设置请求属性并从一个 servlet 转发到下一个来实现这一点。但是,该属性在接收控制器中始终为空。
设置属性的代码块:
try {
updateXRef(request, response, cmds);
} catch (Exception e) {
request.setAttribute("results", "Error encountered. Contact system administrator.");
push(request, response);
}
request.setAttribute("results", "Update Successful");
push(request, response);
}
else {
push(request, response);
}
发送到另一个servlet的方法:
private void push(HttpServletRequest request, HttpServletResponse response) {
String url = "/PushServer";
try {
request.getServletContext().getRequestDispatcher(url).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
以及处理请求的 servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(FileFactory.getFileOperationsObject() == null || request.getParameterValues("input") == null) {
initiliaze(request, response);
String url = "/Display.jsp";
request.setAttribute("xRefFile", FileFactory.getXRefFileObjects());
request.setAttribute("platforms",FileFactory.getUniqueSortedPlatforms());
request.setAttribute("showModal", 0);
if(request.getParameter("results") == null) {
request.setAttribute("results", "Update Pending");
}
request.getServletContext().getRequestDispatcher(url).forward(request, response);
}
我唯一的猜测是以某种方式生成了一个新请求。如果这确实是正在发生的事情 - 我该如何避免它?
方法选择问题
request.getParameter("yourAttributeName")
仅适用于检索表单数据 (<form></form>
) - 即来自您的 .jsp 页面的数据 - 以及查询参数。
如果希望将信息从一个 Java servlet 发送到另一个 Java servlet,如以上代码,必须使用:
request.getAttribute("myAttributeName");
我目前正在开发一个网络应用程序,我想在其中向用户更新操作是否成功。我试图通过设置请求属性并从一个 servlet 转发到下一个来实现这一点。但是,该属性在接收控制器中始终为空。
设置属性的代码块:
try {
updateXRef(request, response, cmds);
} catch (Exception e) {
request.setAttribute("results", "Error encountered. Contact system administrator.");
push(request, response);
}
request.setAttribute("results", "Update Successful");
push(request, response);
}
else {
push(request, response);
}
发送到另一个servlet的方法:
private void push(HttpServletRequest request, HttpServletResponse response) {
String url = "/PushServer";
try {
request.getServletContext().getRequestDispatcher(url).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
以及处理请求的 servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(FileFactory.getFileOperationsObject() == null || request.getParameterValues("input") == null) {
initiliaze(request, response);
String url = "/Display.jsp";
request.setAttribute("xRefFile", FileFactory.getXRefFileObjects());
request.setAttribute("platforms",FileFactory.getUniqueSortedPlatforms());
request.setAttribute("showModal", 0);
if(request.getParameter("results") == null) {
request.setAttribute("results", "Update Pending");
}
request.getServletContext().getRequestDispatcher(url).forward(request, response);
}
我唯一的猜测是以某种方式生成了一个新请求。如果这确实是正在发生的事情 - 我该如何避免它?
方法选择问题
request.getParameter("yourAttributeName")
仅适用于检索表单数据 (<form></form>
) - 即来自您的 .jsp 页面的数据 - 以及查询参数。
如果希望将信息从一个 Java servlet 发送到另一个 Java servlet,如以上代码,必须使用:
request.getAttribute("myAttributeName");