打开jsp页面时自动增加准入编号

打开jsp页面时自动增加准入编号,jsp,servlets,Jsp,Servlets,我确实根据页面的访问次数增加了入场号……但每次服务器重新启动时,入场号都会被初始化。这是一张申请表。我需要的是每次用户打开表单时,自动递增并显示在表单上的准入编号 我不熟悉java和jsp,请提供帮助。以下是代码: <p>Admission for <input type= "radio" name="whichclass" id="wc1" value="daycare"> <label for="wc1">DayCare</label>

我确实根据页面的访问次数增加了入场号……但每次服务器重新启动时,入场号都会被初始化。这是一张申请表。我需要的是每次用户打开表单时,自动递增并显示在表单上的准入编号 我不熟悉java和jsp,请提供帮助。以下是代码:

<p>Admission for

<input type= "radio" name="whichclass" id="wc1"  value="daycare">

<label for="wc1">DayCare</label>

<input type="radio" name="whichclass" id="wc2" value="nursery">

<label for="wc2">Nursery</label>

<input type="radio" name="whichclass" id="wc3" value="pp1" >

<label for="wc3">PP1</label> 

<input type="radio" name="whichclass" id="wc4" value="pp2">

<label for="wc4">PP2</label></p>

    <% 
        //Get creation time

        Date createTime =  new Date(session.getCreationTime());




        // Get last access time of this web page

        Date lastAccessTime = new Date(session.getLastAccessedTime());

        String title= "Welcome back";   


        Integer visitCount = new Integer(0);

        String visitCountKey= new String("vistCount");

        //Create a variable for Admission number

        Integer adNumber = new Integer(20150);

        String adNumberKey = new String("adNumber");



        //Check if user is new

        if(session.isNew())

        {
            String title1 = "Welcome to Application form";

            session.setAttribute(visitCountKey, visitCount);

            session.setAttribute(adNumberKey, adNumber);
        }

        visitCount= (Integer)session.getAttribute(visitCountKey);

        visitCount= visitCount + 1;


        adNumber= (Integer)session.getAttribute(adNumberKey);

        adNumber = adNumber+1;

        session.setAttribute(visitCountKey,visitCount);

        session.setAttribute(adNumberKey, adNumber);

        %>

<p>Admission number    <input type="text" name="adNum"  value= <%=adNumber %> /></p>
学生入学 托儿所 婴儿室 PP1 PP2

入场证号码


我从你的问题中了解到

大宗报价

您希望跟踪页面被浏览的次数,并每次生成一个表单编号(自动递增),但问题是,每当服务器重新启动时,该编号就会被重新初始化

大宗报价

首先,您使用会话来存储号码。会话对于每个用户都是特定的。不要使用它,因为对于不同的用户,不同的AdNumber将出现在他们的特定会话中。因此,最终可能会有两个不同的用户使用相同的adNumber

一个更好的方法是使用每个JVM的。这样所有用户只有一个adNumber(忽略并发和分布式系统)

但是,对于ServletContext,一旦重新启动服务器,计数也将重置

更好的方法是将ServletContext与数据库或基于文件的系统结合使用。每次计数增加时,如果数据库不可用,您可以将该值存储在数据库或文件中

当服务器重新启动时,您可以检查上下文中是否存在名为“adNumberKey”的属性,如果不存在,则从数据库或基于文件的源读取该值并将其加载到上下文对象中


希望能有帮助

将访问次数存储到数据库中解释非常有用…我将使用servletContext