正常的地方是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