问题
我正在创建一个Web应用程序,向用户提供登录页面login.html ,并且必须输入其凭据。 servlet类使用POST请求形式的ajax来获取信息,该请求由用户单击“提交”按钮生成。 在检查了凭证的正确性之后,我希望为用户提供一个新的HTML页面,一个欢迎页面,其中将servlet的响应传输到该页面。 我面临的问题是如何同时将响应从启动的LoginServlet类传递到WelcomeServlet ,客户WelcomeServlet在投影一个新的HTML页面welcome.html ,并在ajax调用中捕获WelcomeServlet的响应。新HTML页面中的js脚本。
背景
我才刚刚开始深入研究Web应用程序的开发,因此,如果我在逻辑和对整个前端到后端过程的理解上有任何误区,请这样说。 我知道过redirect()和forward()函数,但我不了解这些函数可与客户端事物结合使用或完全不同的方式。
我有以下servlets :
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("welcomeservlet");
dispatcher.forward(request, response);
}
public class WelcomeServlet extends HttpServlet {
private static final long serialVersionUID = 2L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//parse request and send response
}
在login.html文件中,我包含以下js代码:
function loadNewPage() {
// retrieve data and store them in a js Object
$.ajax({
url: "loginservlet",
type: 'POST',
dataType: 'json',
data: JSON.stringify(jsObject),
contentType: 'application/json',
mimeType: 'application/json',
success: function (data) {
window.location.href = "welcome.html";
},
error: function (data, status, er) {
alert("error: " + data.text + " status: " + status + " er:" + er);
}
});
}
我没有包括另外一个js脚本,该脚本专门放在welcome.html因为我不知道要在其中添加什么以捕获新servlet的响应。 这整个事情不起作用的可能原因可能是我在forward()函数的功能中缺少某些东西,但是找不到在线示例来完成我想做的事情。