2012年10月6日
JAVAでランダムな数字をつくる場合、
import java.util.Random;
<略>
Random objRnd=new Random();
int intRan=objRnd.nextInt(2000);
<略>
というように記述すると2,000までの中で乱数を発生させランダムな数字をつくって「intRan」に値を渡してくれます。
しかし、文字列をランダムにつくることができません。
そこであるのがapashe commonsのライブラリーを使う方法です。
まず、「commons.apache.org」内にある「Lang」ライブラリーを使うので、そこをクリックして「http://commons.apache.org/lang/」に移動します。
そうするとページの真ん中より下くらいに「Download 3.1」というのがありますので、そこをクリックして移動するとダウンロードのページに移ります。
「commons-lang3-3.1-bin.tar.gz」と「commons-lang3-3.1-bin.zip」、「commons-lang-2.6-bin.tar.gz」と「commons-lang-2.6-bin.zip」があります(バージョンは執筆時のもの)。
JAVA5.0未満は「commons-lang-2」しか使えませんが、いずれも「Binaries」をダウンロードして、ダウンロードしたものを展開すると複数のファイルがありますが、今回使うのは「commons-langX-X.X.jar(Xはバージョン数字)」です。
Tomcat直下の「lib」内にjarファイルを移してください。Windowsの場合、環境変数の設定が必要です。環境変数の「CLASSPATH」に「;%CATALINA_HOME%\lib\commons-langX-X.X.jar(Xはバージョン数字)」を加える必要があります。バージョンやTomcatの初期環境設定によって変わりますが、同様の環境変数の設定作業が必要と思われます。
※「\」は「¥」半角マークはPC上、同じ意味です。環境によっては「\」で表示される場合「¥」マークと同様と読み替えてください。
jspで動かす場合、そのjspのファイルを配置するところにある「WEB-INF」のフォルダ(ディレクトリ)内に(フォルダが無い場合は作成すること)、「lib」フォルダを作成してください。その中に「commons-langX-X.X.jar(Xはバージョン数字)」のjarファイルを置いて、Tomcatを再起動すると認識します。
なお、サーブレットをLinux上で作成する場合、環境変数の設定が必要になります。
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <body> <% <%=strRand1%><br /> |
(50)は、50文字という意味です。特に数値のみの場合、javaのRandomと異なり文字数となるのでご注意ください。
また、importでは「commons-lang3-X.X.jar」を使う場合は、「org.apache.commons.lang3.RandomStringUtils」、
「commons-lang2-X.X.jar」を使う場合は、「org.apache.commons.lang.RandomStringUtils」となり異なります。
もし動作させて、「RandomStringUtils cannot be resolved」というエラーが出る場合は、上記のimportの記述違い、または、環境変数が通っていないことになります。
上記のJSPを実行すると以下のような例で表示されます。
b691OJTDsHUQ01XH697yMcMAjmbEEDYrh9G4fI8Wt6qcQwH4wS
;-Toh^J,+SE[!.$&nRhH@ sqAq#MvKs,vlZ=8~\/ cP\Z;>(6b
BfOfoJlegQePuhUmiSBrLPajcOEvgFmrYnVktNMTFKwBRKPczk
12058893188269404193410868710352742187509931958849
以上
This site has nothing to do with FBI (Federal Bureau of Investigation).
I support activity of FBI.
If you want to look at a homepage of FBI, trace the following link.
https://www.fbi.gov/
https://www.fbijobs.gov/