Как создать сессионный объект? - PullRequest
0 голосов
/ 06 сентября 2010

Я создаю страницу входа для своего веб-приложения. Я хочу создать объект сеанса всякий раз, когда новый пользователь вошел в систему. Я знаю концепцию сессий, но я не использовал это раньше. Могу ли я сделать это с помощью простого класса. Или я должен перейти к сервлету. Если я сделаю это с помощью простых средств, как создать объект сеанса.


Это мой сценарий ...

HTML-код:

<table>
<tr>
<td>User Name: </td><td><input id="uName"  class="required" type="text" 
    size="5" /></td>
</tr>
<tr>
<td>Password: </td><td><input id="pwd"  class="required" type="text" size="5"
    onclick="login()"/></td>
</tr>
</table>

Код JS:

function login(){
var userDetails = { uName : null, pwd : null };
dwr.util.getValues(userDetails);//Yes, i am using DWR.
LoginAuthentication.doLogin(userDetails, loginResult);
}

 function loginResult(nextPage){
window.location.href = nextPage;
}

Код Java:

public class LoginAuthentication
{
public String doLogin(User user) throws SQLException, ClassNotFoundException{
    String userName = user.getUserName();
    boolean loginResult = verifyUser(user);//Another method that verifies user details with the DB.
    if (loginResult == true){
        /* Here I have to create session object,
          and i want to add the current username in that object. How to do it.*/

        return "MainPage.html";
    }
    else{

        return "loginRetryPage.html";

    }
   }

Концепция, которая была дана мне относительно сессии, довольно проста и понятна. Я должен создать объект сеанса после действительного ввода пользователя и добавить имя пользователя к этому объекту. Уничтожить объект при выходе из системы. Но я не работал на сессиях раньше. Я имею в виду, я не знаю синтаксис для создания переменной сеанса.

Как мне создать объект сеанса здесь?

Любые предложения будут более благодарны !!!

Заранее спасибо !!!

Ответы [ 2 ]

5 голосов
/ 06 сентября 2010

В сервлете сеанс получается со следующей строкой:

Session session = request.getSession();

И чтобы получить объект request с DWR, вы делаете ( смотрите здесь ):

WebContext ctx = WebContextFactory.get();
HttpServletRequest request = ctx.getHttpServletRequest();

(HttpServletRequest содержит все данные о HTTP-запросе, который был отправлен браузером на сервер)

2 голосов
/ 06 сентября 2010

Лучше всегда использовать request.getSession (false);после успешного входа в систему.

...