2012-06-28 4 views
1

Я пытаюсь создать простую систему входа с помощью 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 
    } 
} 

В настоящее время в «home.jsp» Как проверить, если сеанс уже создан ??


* я должен был бы проверить, если уже началась на каждой странице в профиле сессии. Поэтому я хотел бы создать какую-то функцию, что я мог бы назвать в в верхней части каждой страницы JSP *


Что я должен делать ??

ответ

1

Не добавлять/писать код Java в Jsp. Вам нужно будет создать filter для аутентификации пользователя.

Edit:

Посмотрите на учебник - info (servlet-filters)

+0

Я знаю, что я должен Java-код в JSP, однако может у пожалуйста, скажите мне, что это метод, если я стараюсь для этого .. –

+1

У вас еще нет кода в вашем вопросе? Вы можете поместить это в фильтр, и каждый запрос будет проверять сеанс. Не нужно ничего добавлять к вашему JSP. +1 – Sean

1

первым создать класс, как это .. установить боб атрибуты пользователя этот пример предположим один пользователь для простоты

public class Users implements Serializable { 
    private String user; 

public String getUser() { 
     return user; 
    } 

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

затем на проверку входа в систему, как это

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"); 
} 


} 

приведенный выше код не без ошибок, но так как вы предоставили недостающий код это так closeset, как я получаю в вашем случае каким-либо образом вы можете получить доступ к этой переменной на каждом JSP, как этот

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

я надеюсь, что это помогает и самое главное вы узнали что-нибудь от него

Смежные вопросы