gpt4 book ai didi

java - Angular JS + Java Servlet 路由问题

转载 作者:行者123 更新时间:2023-12-01 12:32:34 24 4
gpt4 key购买 nike

我有一个使用 Angular JS 构建的应用程序。
它有 3 个 View (A、B 和 C)。
这就是我配置路由参数的方式。

.config(function ($routeProvider){
$routeProvider
.when('/',{
controller:'aController',
templateUrl: 'jsps/a.jsp'
})
.when('/b',{
controller:'bController',
templateUrl: 'jsps/b.jsp'
})
.when('/c',{
controller:'cController',
templateUrl: 'jsps/c.jsp'
})
.otherwise({redirectTo:'/'});

});

所有三个 View 都有登录链接。单击登录会将用户重定向到我的应用程序中的不同页面。

登录是一个表单,它调用 LoginServlet,并且在成功进行身份验证后,我将用户重定向到我的应用程序。

RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.include(request,response);

我也尝试过 rd.forward(request, response)

index.jsp 是具有 ng-view 的默认页面。
因此,默认情况下, View A 始终在身份验证后加载。

现在我的情况是,当用户请求从 B 或 C 登录时,他必须在身份验证后重定向到该 View 。

我尝试过request.getRequestDispatcher("index.jsp#/B");
但这行不通。

关于如何实现这一目标有什么建议吗?

最佳答案

url 片段 #/b 未发送到服务器(有关更多详细信息,请参阅 Get anchor from URI)。如果您需要服务器上的此信息,则需要使用查询参数。解决方案是(伪代码)

  • 将此信息作为查询参数嵌入到登录链接中,例如:<a href="/login?from=/b"></a>
  • 使用登录表单中的隐藏输入字段来保存查询参数“from”<input type="hidden" name="from" value="${param.from}">因此,当提交登录表单时,这将在服务器中可用。
  • 登录后重定向用户 "index.jsp#" + request.getParameter("from")

关于java - Angular JS + Java Servlet 路由问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25830870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com