2012-06-28 1 views
1

jsp를 사용하여 간단한 로그인 시스템을 설계하려고합니다. 로그인 페이지에서 사용자는 검증의 "home.jsp"어떻게 세션이 이미 생성 된 경우 내가 확인 할에사용자가 이미 로그인되어 있거나 jsp에서 세션이 시작되었는지 확인


이제
if username and password combination exists, then 
{ 

    HttpSession session = request.getSession(false); 

    if (session == null) { 
      // Session not created yet. So we do it now. 
      session = request.getSession(); 
      session.setAttribute("id",idvariable); 
      response.sendRedirect("home.jsp"); 
      // I redirect them to their profile home pages 
    } 

    else { 
     // Session is already created. 
     response.sendRedirect("home.jsp"); 
     // So i again redirect them to their home page 
    } 
} 

로 실행됩니다 자신의 사용자 이름과 암호를 입력 ??


* 나는 세션이 이미 프로필의 모든 페이지에서 시작되었는지 확인해야합니다. 그래서 내가 어떻게해야 *


모든 JSP 페이지의 상단에서 부를 수있는 기능의 일종을 만드시겠습니까?

답변

1

Jsp에 Java 코드를 추가/작성하지 마십시오. 사용자를 인증하려면 filter을 설계해야합니다.

편집 :

이 튜토리얼을 살펴보세요 - 사용자 콩이 예는 단순

public class Users implements Serializable { 
    private String user; 

public String getUser() { 
     return user; 
    } 

    public void setUser(String user) { 
     this.user = user; 
    } 
} 

에 대해 하나의 사용자를 가정 속성을 설정하는 .. info (servlet-filters)

+0

나는 내가해야 알 자바 코드를 JSP에, 그러나 u는 내가하려고하면 방법이 무엇인지 말해 주실 래요 그렇게하십시오 ... –

+1

질문에 이미 코드가 없습니까? 필터에 넣을 수 있으며 각 요청은 세션을 검사합니다. JSP에 아무 것도 추가 할 필요가 없습니다. +1 – Sean

1

먼저이 같은 클래스를 만듭니다 그런 다음 로그인 확인시 다음과 같이하십시오.

String userName = request.getRequest().getParameter("txtid"); 
    String password = request.getRequest().getParameter("txtPassword"); 

Vector params = new Vector(); 

     params.add(null);//return result from procedure 
     params.add(Name); 
     params.add(password); 


Users mainUser = new Users(); 
Vector tempResults = callingDaoProcedure.executeGetPasswordogin(params);//finds the password in DB 

if (!tempResults.isEmpty()) { 

        mainUser = (MainUsers) tempResults.get(0); 
if (mainUser.getPassword().trim().equals(password.trim())) { 

    HttpSession session = request.getSession(false); 


     if (request.getSession().getAttribute("userLogin") == null) { 
       // Session not created yet. So we do it now. 
       session = request.getSession(); 
       requestgetRequest().setAttribute("status", "NO_ERRORS"); 
       request.getSession().setAttribute("userLogin", mainUser); 
       response.sendRedirect("home.jsp"); 
       // I redirect them to their profile home pages 
     } 

     else { 
      // Session is already created. 
      response.sendRedirect("home.jsp"); 
      // So i again redirect them to their home page 
     } 
} 
else 
{ 
       request.getRequest().setAttribute("status", "WRONG_PASSWORD"); 
       System.out.println("wrong password"); 
} 


} 

위의 코드는 오류없이하지 않고, 당신이 누락 된 코드를 제공하기 때문에 내가 당신의 사건이

<input type="hidden" name="user" id="user" value="${sessionScope['userLogin'].user}"> 

처럼 각 JSP에이 변수를 액세스 할 수있는 모든 방법 나는 그것이 도움이되기를 바랍니다에 도착으로이 closeset 같다 무엇보다 중요한 것은 배웠습니다.