正常的地方是Filter
。
創建一類implements
javax.servlet.Filter
並在doFilter()
方法寫以下邏輯:
if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
// Not logged in, so redirect request to login page.
((HttpServletResponse) response).sendRedirect("/login.jsf");
} else {
// Logged in, so just continue request.
chain.doFilter(request, response);
}
地圖這個濾波器在web.xml
上的類似/private/*
,/secured/*
,/restricted/*
一個url-pattern
等
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.example.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/private/*</url-pattern>
</filter-mapping>
如果您在/private
文件夾中有專用頁面,則將調用此過濾器並相應地處理會話中登錄用戶的存在。
請注意,我將屬性名稱session
更名爲user
,因爲這樣做更有意義。 HttpSession
本身已經是會議。對於其他開發人員檢查/維護您的代碼而言,這會讓人覺得太模棱兩可,讓人感到困惑。
非常感謝你...... 我們已經建議各私人頁面上做: 但我喜歡你的方法無論如何,易於維護和更通用的,謝謝... –
KitAndKat
2010-06-30 20:38:41