我的“login.html”中有一个表单,单击“login”按钮后,该表单将提交到我的java后端代码。但是,我不知道如何将我的登录页面重定向到新页面。
在以下代码中:
<script>
$(function() {
$('#ff').form({
url: "LoginServlet",
success:function(data){
$.messager.alert(data);
}
});
});
</script>
在成功部分,我的重定向页面将显示在此消息窗口中。但我希望它跳转到servlet返回的页面。
这是我的login.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<script>
$(function() {
$('#ff').form({
url: "LoginServlet",
success:function(data){
$.messager.alert(data);
}
});
});
</script>
</head>
<body>
<form id="ff" role="form" method="post">
<div>
<h1>User Login</h1>
</div>
<div>
<input id="username" name="username" class="easyui-textbox" data-options="iconCls:'icon-man',iconWidth:30,iconAlign:'left',prompt:'Username'" style="width:100%;height:35px;" />
</div>
<div>
<input id="password" name="password" class="easyui-passwordbox" data-options="iconWidth:30,iconAlign:'left',prompt:'Password'" style="width:100%;height:35px;" />
</div>
<div>
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$('#ff').submit()" style="width:100%;height:35px;">Submit</a>
</div>
<div>
<div style="display:inline;">
<a href="javascript:void(0)">Register</a>
</div>
</div>
</form>
</body>
</html>
这是我的java servlet代码:
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
IUserService userService = new UserServiceImpl();
User user = userService.login(username, password).get(0);
if (user != null) {
response.sendRedirect(request.getContextPath() + "/index.jsp");
} else {
}
}
}
1条答案
按热度按时间dffbzjpn1#
您可以尝试删除javascript函数并使用form操作直接调用jsp。
所以我要去掉下面的部分
这部分需要删除,因为你的结构。大多数使用jsp的项目都有这样的结构。
您希望在第一步中获取所有表单参数并访问url…/loginservlet。
然后,当您构建好servlet时,它会进行身份验证,如果成功,它会向您的浏览器发送一条消息,并说:请浏览器在http消息中保留这些头,但请访问另一个url(index.jsp)以查看您在等待什么。
正如你所看到的,它是由客户端(又名浏览器)在不同的网址之间移动,以便得到服务。
这就是为什么简单的javascript函数不能像预期的那样工作。
所以一个简单的解决方案是直接以action的形式进行调用
如果身份验证不成功,那么我将从servlet提供一个错误页。