-1

我正在 Eclipse IDE 上开发一个基于 jsf 的 Web 应用程序。我在登录和注销操作方面遇到了一些问题。AS 是一个 Weblogic。我可以成功登录并注销应用程序,但以下代码不会破坏会话...:

我的注销功能

public String logout() throws IOException {
    FacesContext context = FacesContenter code hereext.getCurrentInstance();
    ExternalContext ec = context.getExternalContext();
    final HttpServletRequest request = (HttpServletRequest) ec.getRequest();
    request.getSession(true).invalidate();
    return ("logout");
}

Faces-Config.xml

<navigation-rule>
    <from-view-id>/home.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>logout</from-outcome>
        <to-view-id>/login.xhtml</to-view-id>
        <redirect />
    </navigation-case>
</navigation-rule>

用于记录的主页

<body>
<h:form id="Form">
        Hello<span style="color: ORANGE">
            #{profileController.profile.name}</span>


    <h:commandLink value="sign out" action="#{profileController.logout}" />
</h:form>

Web.xml

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
    <param-value>true</param-value>
</context-param>
4

1 回答 1

1

您看到的页面很可能来自浏览器缓存。您可以禁用某些或所有页面的缓存。有关详细信息,请参阅类似问题的此答案。

于 2012-04-30T06:33:37.483 回答