0
jsf 2.2를 사용하고 jsf 페이지를 세션없이 로그인 페이지로 리디렉션하려고합니다. 여기서는 http 세션을 사용하지 않았습니다 .iim은 세션 범위 변수를 사용하고 whelther 변수가 null인지 아닌지 확인하려고합니다. 및 세션 범위가 HTTP 세션 권한 대신 충분하기 때문에 로그인 페이지로 리디렉션 하시겠습니까 ??서블릿 필터가있는 Jsf 2.2
내 필터 클래스는
가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>
하지만 페이지가 리디렉션 점점되지