我正在尝试为我的网站设置一个登录页面,但目前我仍然坚持使用sendRedirect
方法,因为它似乎无法在需要时加载新页面。
我的登录页面是一个.jsp文件,它通过AngularJS $scope
将用户名和密码信息传递给servlet,其中包含以下代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.println("Redirecting...");
response.sendRedirect("https://www.youtube.com/");
return;
}
System.out.println("Redirecting...");
有效,但无论是什么,它都不会重定向到提供的网址。我已经阅读了其他提到的添加return;
行的建议,我尝试了其他特定于我的项目的网址(例如index.jsp
,\index.jsp
等),但这些都没有有所作为,但仍然无效。
window.location
会更适合这种做法吗?我应该在这里修改什么代码?
答案 0 :(得分:0)
所以我让网页最终正确地重定向,我发布这个以防其他人偶然发现同样的问题。
如前面的评论所述,响应应该从Java servlet发送到AngularJS,我已经在我的logincontroller.js
文件中进行了如下重定向:
var app = angular.module('myApp', []);
function LoginController($scope, $http, $window)
{
$scope.login = function()
{
$http({
url: 'login',
method: 'POST',
data:
{
'username': $scope.username,
'password': $scope.password
}
}).success(function(data, status, headers, config) {
alert("SUCCESS! Data: " + data);
$scope.details = data;
$window.location.href = "home.jsp"; //This line redirects.
}).error(function(data, status, headers, config) {
alert('ERROR!');
});
};
};