如何在jsp中生成从1000开始的唯一id序列

发布于 2024-11-02 05:10:01 字数 67 浏览 1 评论 0原文

我希望jsp中的代码生成从1000开始的唯一ID。我可以使用哪种数据类型,以及如何处理它。任何人都可以指导我......

i want code in jsp to generate unique id starting from 1000. Which data type can i use for it, and how to go about it. Can anyone please giude me......

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

橪书 2024-11-09 05:10:01

如果要生成一定范围内的随机整数,可以使用以下代码片段:

public int generateRandomNumber(int start, int end ){
    Random random = new Random();
    long fraction = (long) ((end - start + 1 ) * random.nextDouble());
    return ((int)(fraction + start));
}

例如,要获取 1000 到 8888 之间的随机整数,可以调用 generateRandomNumber(1000, 8888);

如果你想在 JSP 中编写所有的 java 代码(虽然我也不建议这种方法),你可以创建一个像这样的 JSP 页面。你可以获得每次刷新后的随机整数。

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.Random"%>
<%!
    public int generateRandomNumber(int start, int end ){
        Random random = new Random();
        long fraction = (long) ((end - start + 1 ) * random.nextDouble());
        return ((int)(fraction + start));
    }
%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>TEST RANDOM NUMBER</title>
    </head>
    <body>
         <h1>Generate Random Number:<%=generateRandomNumber(1000,8888)%></h1>
    </body>
    </html>

If you want to generate a random integer within a certain range , you can use the following snippets :

public int generateRandomNumber(int start, int end ){
    Random random = new Random();
    long fraction = (long) ((end - start + 1 ) * random.nextDouble());
    return ((int)(fraction + start));
}

For example , to get a random integer within 1000 and 8888 , you can call generateRandomNumber(1000, 8888);

If you want to write all the java code inside a JSP (tough I don't suggest this approach too ) , you can create a JSP page like this .You can get a random integer after every refresh.

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.Random"%>
<%!
    public int generateRandomNumber(int start, int end ){
        Random random = new Random();
        long fraction = (long) ((end - start + 1 ) * random.nextDouble());
        return ((int)(fraction + start));
    }
%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>TEST RANDOM NUMBER</title>
    </head>
    <body>
         <h1>Generate Random Number:<%=generateRandomNumber(1000,8888)%></h1>
    </body>
    </html>
轻许诺言 2024-11-09 05:10:01

您可以使用 java.util.Random< /code>,如果您希望它从 1000 开始,请使用 nextInt() 方法并简单地添加 1000 到其中,你可以简单地将第一个数字设为 1000

另请参见

You can use java.util.Random, Use nextInt() method and simply add 1000 to it, if you want it to be starting from 1000 , you can simply take first no as 1000

Also See

属性 2024-11-09 05:10:01

这些答案都谈到随机数 - OP 正在询问唯一的数字。使用随机数,您仍然有可能出现重复(尽管这种机会确实很小)。

获得唯一数字的一种简单方法是让一个类具有一个静态同步方法,该方法会增加静态声明的计数器并返回它。将计数器设置为从 1000 开始。

我将在 java 类中实现此操作,而不是在 JSP 中。正如 Jogar 之前指出的,将原始 Java 放入 JSP 中很快就会失控。

如果您的应用程序最终可能在多个 JVM 上运行(例如在应用程序服务器集群中),并且该数字需要在整个集群中唯一,那么此解决方案将不起作用。您需要使用外部计数器,例如上面提到的基于数据库的解决方案。

These answers all talk about Random numbers - the OP is asking about unique numbers. Using Random numbers, you still get the possibility of duplicates ( although that chance is admittedly small )

An easy way to get a unique number would be just to have a class that has one static synchronised method that increments a statically declared counter and returns it. Seed the counter to start at 1000.

I would implement this in a java class, rather than JSP. As Jogar points out earlier, putting raw java in a JSP can soon get out of hand.

If your application may end up running on more than one JVM ( such as in an application server cluster ) and the number needs to unique across the entire cluster, then this solution won't work. You'll need to use an external counter, such as the database based solution mentioned above.

知你几分 2024-11-09 05:10:01

您可以使用 db 的 AUT_INCRMENT 功能。 mysql db 生成唯一的 id 。

   create table `TableName`( 
   `v` int UNSIGNED NOT NULL AUTO_INCREMENT , 
   PRIMARY KEY (`v`)
 )  Engine='Default' auto_increment=1000 comment='' row_format=Default  

you can use AUT_INCREMENT feature of db. mysql db to generate unique id .

   create table `TableName`( 
   `v` int UNSIGNED NOT NULL AUTO_INCREMENT , 
   PRIMARY KEY (`v`)
 )  Engine='Default' auto_increment=1000 comment='' row_format=Default  
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文