Xhtml页面和HttpSession测试,没有jstl?
我有一个 Java EE 中的动态 Web 应用程序,包含 JSF、Facelets、Richfaces。 我的页面都是xhtml页面。 所以 JSTL 不起作用。 为了使我的帐户页面和所有其他私有页面可访问,我想测试用户是否已连接,因此 HttpSession
中的属性 session 是否不为空。如果为空,用户将被重定向到欢迎页面。
我在我的 xhtml 页面中尝试过:
<jstl:if test="${sessionScope['session']==null}">
<jstl redirect...>
</jstl:if>-->
但由于它不是 jsp 页面,因此无法工作。那么我应该在哪里测试会话是否不为空以允许用户查看他的私人页面? 在中央管理 bean 中?
I have a dynamic web application in Java EE with JSF, Facelets, Richfaces.
My pages are all xhtml pages.
So JSTL isn't working in it.
For my account pages and all other private pages to be reachable, I want to test if the user got connected, so if the attribute session in HttpSession
is not null. If it's null, the user gets redirected in the welcome page.
I tried in my xhtml page :
<jstl:if test="${sessionScope['session']==null}">
<jstl redirect...>
</jstl:if>-->
but as it's not jsp page it won't work. So where am I supposed to test if the session is not null to allow the user to see his private pages ?
in a central managed bean ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通常的位置是
Filter
。创建一个
实现
的类javax.servlet.Filter
并在doFilter()
方法中编写以下逻辑:将此过滤器映射到
web.xml
上诸如/private/*
、/secured/*
、/restricted/*
之类的url-pattern
,等等。如果您在
/private
文件夹中有私有页面,那么将调用此过滤器并相应地处理会话中登录用户的存在。请注意,我将属性名称
session
重命名为user
,因为这样更有意义。HttpSession
本身已经是会话。否则,对于检查/维护您的代码的其他开发人员来说,这会过于模糊和混乱。The normal place for this is a
Filter
.Create a class which
implements
javax.servlet.Filter
and write the following logic in thedoFilter()
method:Map this filter in
web.xml
on anurl-pattern
of something like/private/*
,/secured/*
,/restricted/*
, etc.If you have the private pages in the
/private
folder then this filter will be invoked and handle the presence of the logged-in user in the session accordingly.Note that I renamed attribute name
session
touser
since that makes much more sense. TheHttpSession
itself is namely already the session. It would otherise been too ambiguous and confusing for other developers checking/maintaining your code.