場景:有一個使用AngularJS UI路由的Web應用程序。
什麼做:在名爲FirstPageFilter.java一個Servlet過濾器會創建第一次會議。如果使用AngularJS路由,如何在servlet過濾器中提供url-pattern?
@WebFilter(filterName="FirstPageFilter",urlPatterns="/*")
public class FirstPageFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest)request;
HttpSession session = httpRequest.getSession(true);
FNBaseSessionObject sessionObject = (FNBaseSessionObject)session.getAttribute("sessionObject");
if (sessionObject != null) {
filterChain.doFilter(request, response);
return;
}
/*else{
System.out.println("Not going anywhere.....");
}*/
}
@Override
public void init(FilterConfig arg0) throws ServletException {
/*System.out.println("filter initialized");*/
}
}
現在它應用在所有pages.But我只想應用它home-page.html。
的index.html
<div id="wrapper">
<div id="container">
<div ui-view></div>
<div ng-include="'footer.html'"></div>
</div>
</div>
我已經做了UI路由上的index.html。默認情況下,家庭頁面將shown.Which我已經在routing.js提供
routing.js
ribWeb.config(['$stateProvider','$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('home-page');
$stateProvider.state('home-page', {
url: '/home-page',
templateUrl: 'home-page.html'
});
什麼,我試圖做:我想在這種情況下管理會話。首次訪問home-page.html時,將創建會話並在其他會話中獲得會話。如果會話在特定時間後失效,則必須返回home-page.html頁面。
我很困惑如何爲home-page.html提供urlPattern。我曾嘗試使用/ home-page和/home-page.html 但是,在兩種情況下,filter都被初始化,但doFilter沒有被調用。
有什麼我做錯了嗎?我應該提供哪些Url模式?
我想只在客戶端管理會話。這可能嗎?因爲我也沒有得到401狀態 – RajputAdya
只有在客戶端上管理會話而不從服務器獲取更新是不可能的,因爲會話是在服務器上進行的(除非會話由服務器設置的某個cookie代表過期日期或類似的東西)。無論如何,我相信在大多數情況下,正確的選擇正如我所描述的(讓服務器檢查您是否正在處理每個請求的會話) – abyx
哦對不起。我的意思是服務器端。 – RajputAdya