【发布时间】:2016-10-01 17:58:04
【问题描述】:
我有一个 webservlet,“Home.jsp”会在打开 web 应用程序时被加载,所以它会在 servlet 中调用 doGet 并将其转发到仪表板 jsp 页面
@WebServlet("/Home.jsp")
public class HomeController extends HttpServlet {...
....
request.getRequestDispatcher("central_dashboard.jsp").forward(request,response);
所以,在仪表板页面中,我有一个 javascript 函数,我在其中调用另一个 servlet 页面“Process.do”,问题是调用了 get 方法,它没有将页面转发到“results.jsp”在 getRequestDispatcher 上。
//Calling the webservlet from the jsp page
function res_call(d, i) {
$.ajax({
type: "GET",
url: "Process.do",
});
}
处理.do
request.getRequestDispatcher("results.jsp").forward(request, response);
注意:所有的jsp文件都在webcontent文件夹下
我在这里阅读了一些帖子,试图在 webservlet 中返回函数,但没有用。我不确定问题出在哪里。
贴出代码,
@WebServlet("/Home.jsp")
public class HomeController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
t
ry {
doProcessRequest(request, response);
} catch (SQLException | JSONException | ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
doProcessRequest(request, response);
} catch (SQLException | JSONException | ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doProcessRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("name",val);
request.getRequestDispatcher("dashboard.jsp").forward(request,response);
}
}
@WebServlet("/Process.do")
public class ProcessController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see
HttpServlet#HttpServlet()
*/
public ProcessController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
doProcessRequest(request, response);
} catch (SQLException | JSONException | NumberFormatException | ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
doProcessRequest(request, response);
} catch (SQLException | JSONException | NumberFormatException | ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doProcessRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("name",val);
request.getRequestDispatcher("results.jsp").forward(request, response);
return;
}
}
dashboard.jsp - 从包含 central.jsp 的位置,我将调用 js 函数,该函数被调用,并且 Process.do - doGet 方法被执行,但 results.jsp 页面没有被转发/打开.
<!DOCTYPE html>
<meta charset="utf-8">
<head>
<title></title>
</head>
<body>
<div class="centraltest">
<%@ include file="central.jsp"%>
</div>
</body>
【问题讨论】:
-
请贴出你的代码,否则盲目猜测工作量很大,不太可能有帮助
-
请添加异常堆栈。
-
@NiklasP,贴出代码
-
@RohitGaikwad,我没有收到任何错误,页面保持静止
标签: javascript java jsp servlets requestdispatcher