簡體   English   中英

帶有Servlet過濾器的JSF 2.2

[英]Jsf 2.2 with servlet filter

我使用jsf 2.2,我想將jsf頁面重定向到沒有會話的登錄頁面,我在這里不使用http session.iam嘗試使用會話范圍的變量並檢查whelther變量是否為null並將其重定向到登錄頁面,因為會話范圍是足夠代替http會話了嗎?

我的過濾器類是

package com.invoice;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet Filter implementation class sessionfilter
 */


public class sessionfilter implements Filter {

    /**
     * Default constructor. 
     */
    public sessionfilter() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }

    /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        // place your code here

        // pass the request along the filter chain
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        login b=new login();
        if(b.username=="")
        {

            httpResponse.sendRedirect("Login.xhtml");   

        }
        else{
        chain.doFilter(request, response);
        }
    }

    /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }

}

我的豆類在這里

package com.invoice;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;


public class login {

    String username,userpassword,errormess,navipg;



    public String getNavipg() {
        return navipg;
    }

    public void setNavipg(String navipg) {
        this.navipg = navipg;
    }

    public String getErrormess() {
        return errormess;
    }

    public void setErrormess(String errormess) {
        this.errormess = errormess;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpassword() {
        return userpassword;
    }

    public void setUserpassword(String userpassword) {
        this.userpassword = userpassword;
    }
    public String navigate()
    {
        try
        {

            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","invoice","google");
            Statement stmt=con.createStatement(); 
            ResultSet rs=stmt.executeQuery("select username,password from usertable where username='"+username+"' and password='"+userpassword+"' ");
            if(rs.next())
            {

                setErrormess("");
                navipg="invoiceinfo";


            }
            else

            {

                setErrormess("Invalid Login credentials");
                username="";
                navipg="Login";


            }

        }
        catch(Exception e)
        {

            e.printStackTrace();

        }
        return navipg;

    }
    public String logout()
    {

         FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
            return "Login";

    }




}

我的web.xml過濾器標記是

<filter>
   <filter-name>sessionfilter</filter-name>
   <filter-class>com.invoice.sessionfilter</filter-class>

</filter>
<filter-mapping>
   <filter-name>sessionfilter</filter-name>
   <url-pattern>/Jsf Invoice System/*</url-pattern>
</filter-mapping>

但是頁面沒有被重定向

b.username=="" 永遠不會true

必讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM