java servlet中的会话

时间:2011-04-15 09:16:19

标签: java jsp session servlets java-ee

我想为下面的servlet程序做,“创建一个名为com.SessServlet的servlet。如果你在新的浏览器中访问servlet然后 这是第一次显示'欢迎,新人'。刷新同一页面时,应显示“欢迎回来”。您正在访问<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 个答案:

答案 0 :(得分:1)

您应该将该计数器存储为sessionVariable,这样您就可以使用它 在pw.close();来电后,您需要这一行:

hs.setAttribute("counter", i);

此外,您的计数器i的初始化应如下所示:

Integer i = (Integer)hs.getAttribute("counter");
if (i == null)
    i = 0;

答案 1 :(得分:1)

提示:

  • 创建Servlet
  • 来自service()方法检索会话和会话中的set an attribute如果其他地方设置了ans显示相应的消息
  • 在jsp上使用JSTL显示计数器,例如:如果属性集是hitCount,那么在jsp上使用${hitCount}