Сессия в сервлете Java - PullRequest
       2

Сессия в сервлете Java

0 голосов
/ 15 апреля 2011

Я хотел бы выполнить программу сервлета для следующего: «создайте сервлет с именем com.SessServlet. Если вы обращаетесь к сервлету в новом браузере, то в первый раз он должен отобразить« Welcome, Newcomer ». Когда выобновите ту же страницу, на которой должно отображаться «Добро пожаловать назад. Вы посещаете страницу для <no of times you have refreshed the page>». "

`package com.SessServlet122;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessServlet extends HttpServlet
{

public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
    res.setContentType("text/html");
    int i;
    PrintWriter pw=res.getWriter();
    HttpSession hs=req.getSession();
    i=0;
    if(hs.isNew())
    {

        pw.println("Hello:::"+i);
    }
    else
    {    i++;
        pw.println("Welcome Back:Ur entry count is::::"+i);
    }

    pw.close();
}
}`

Но этот код работает неправильно.Как это решить?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

Подсказка:

  • Создать Сервлет
  • С service() метод извлечения сеанса и установка атрибута в сеансе, если он там установлен, и отображение соответствующего сообщения
  • В jsp используйте JSTL для отображения счетчика, например: если набор атрибутов был hitCount, то в jsp используйте ${hitCount}
1 голос
/ 15 апреля 2011

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

hs.setAttribute("counter", i);

Кроме того, инициализация вашего счетчика i должна выглядеть следующим образом:

Integer i = (Integer)hs.getAttribute("counter");
if (i == null)
    i = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...