Создание файлов сервлетов - PullRequest
5 голосов
/ 03 марта 2012

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

У меня также есть класс достоверного валидатора, который исключает имя пользователя и пароль, проверяет его, а затем возвращает действительный / недействительный ответ.Здесь я считаю, что проблема заключается вВ форме входа в систему, которая передает имя пользователя и пароль для валидатора учетных данных, у меня есть действие формы, направленное на сервлет учетных данных и метод формы как сообщение.

При таком способе возникает проблема, если я хочу отправить значение из формы другому сервлету, или это так?

Цель этого проекта для школы - создать простой веб-сайт строго с сервлетами, а затем мы используем JSP, чтобы облегчить боль.

Есть ли другой подход, который я должен рассмотреть?Можно ли иметь эти классы, которые выполняют различные функции в формах, когда используются действие и метод формы?

Спасибо за любую помощь и руководство.

Best E

Ответы [ 2 ]

13 голосов
/ 03 марта 2012

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

В вашем случае после проверки вы можете сохранить результат в атрибуте, а затем передать управление другому сервлету. (если это то, что вы хотите сделать)

 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/urlToServlet");
 dispatcher.forward(request, response);

А вот как с куками обращаться.

создание и отправка файлов cookie

Cookie userCookie = new Cookie("name", "value");
userCookie.setMaxAge(60*60*24*365); //Store cookie for 1 year
response.addCookie(userCookie);

чтение файла cookie от клиента

String cookieName = "somecookie";
Cookie[] cookies = request.getCookies();
if (cookies != null) 
{
    for(int i=0; i<cookies.length; i++) 
    {
        Cookie cookie = cookies[i];
        if (cookieName.equals(cookie.getName())) 
        {
            doSomethingWith(cookie.getValue());
        }
    }
}
else
{
    //do something else for firsttime visitors 
}   

Используете ли вы куки для отслеживания сеанса? Если да, тогда используйте HttpSession. При использовании HttpSession нет необходимости напрямую подключаться к файлам cookie для отслеживания сеансов.

Например, на простой странице входа, это то, что вы делаете

HttpSession session = request.getSession();
session.setAttribute("username",username);
In other pages,
if(session.getAttribute("username")==null)
{
//forward to login page.
}
2 голосов
/ 03 марта 2012

Вам необходимо использовать addCookie в HttpServletResponse. Я бы предложил взять с собой документацию по Java, чтобы вы могли видеть, что доступно сервлету. http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#addCookie(javax.servlet.http.Cookie)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...