NI-Lab. homepagE
プログラミング・メモ

// 100   extremeprogramming tools   Tue Feb 20 14:44:12 2001
http://www.xprogramming.com/software.htm

// 99   Kent Beck Testing Framework 入門   Tue Feb 20 14:42:27 2001
http://member.nifty.ne.jp/masarl/article/testing-framework.html

// 98   JavaScriptでリンクに合わせるとメッセージひ表示   Tue Feb 20 12:40:53 2001
<SCRIPT language="JavaScript">
<!--

function showPopup( x, y, msg ) {
popup.innerHTML = '<table bgcolor=#000000 cellspacing=0 border=1><tr><td><font color=red size=2><nobr>' + msg +'</nobr></font></td></tr></table>';
popup.style.left = x + 10;
popup.style.top = y + 10;
popup.style.visibility = 'visible';
}

// -->
</SCRIPT>

<a href="title.html" onMouseOver="showPopup(event.x,event.y,'asdfgh')" >aaaaa</a>
<span id="popup" style="position:absolute;"></span>


// 97   JavaScriptでHTMLを   Tue Feb 20 12:32:39 2001
http://village.infoweb.ne.jp/~fwig2642/yoshi/make_HP/dhtml/view/1-4.htm

// 96   都道府県とか   Mon Feb 19 17:13:24 2001
/**
* 都道府県クラス。<br>
*/
public class Todoufuken
{
private static String kanji[] = {
"北海道","青森県","秋田県","岩手県","宮城県",
"山形県","福島県","新潟県","長野県","群馬県",
"栃木県","茨城県","東京都","神奈川県","千葉県",
"埼玉県","山梨県","静岡県","愛知県","岐阜県",
"三重県","富山県","石川県","福井県","大阪府",
"京都府","滋賀県","奈良県","和歌山県","兵庫県",
"岡山県","広島県","島根県","鳥取県","山口県",
"香川県","徳島県","高知県","愛媛県","福岡県",
"佐賀県","長崎県","熊本県","大分県","宮崎県",
"鹿児島県","沖縄県" };

private static String katakana[] = {
"ホッカイドウ","アオモリケン","アキタケン","イワテケン","ミヤギケン",
"ヤマガタケン","フクシマケン","ニイガタケン","ナガノケン","グンマケン",
"トチギケン","イバラギケン","トウキョウト","カナガワケン","チバケン",
"サイタマケン","ヤマナシケン","シズオカケン","アイチケン","ギフケン",
"ミエケン","トヤマケン","イシカワケン","フクイケン","オオサカフ",
"キョウトフ","シガケン","ナラケン","ワカヤマケン","ヒョウゴケン",
"オカヤマケン","ヒロシマケン","シマネケン","トットリケン","ヤマグチケン",
"カガワケン","トクシマケン","コウチケン","エヒメケン","フクオカケン",
"サガケン","ナガサキケン","クマモトケン","オオイタケン","ミヤザキケン",
"カゴシマケン","オキナワケン" };




/**
* 都道府県名の漢字を指定して、カタカナの名前を取得する。<br>
*/
public static String getKatakana( String kanjiName ) throws NullPointerException
{
for ( int i=0; i < katakana.length ; i++ ) {
if ( kanjiName.equals( kanji[i] ) ) {
return katakana[i];
}
}

return "";
}







}

// 95   NI-Lab.   Sun Feb 18 15:33:46 2001
↓}が一つ余分。

// 94   Perlのリファレンス   Sun Feb 18 15:33:13 2001

getColor(\$r,\$g,\$b);

print $r;
print $g;
print $b;

sub getColor{
local ($a,$b,$c) = @_;
$$a = 10;
$$b = 20;
$$c = 30;
}


}

// 93   NI-Lab,   Sun Feb 18 14:35:43 2001
Perlにおいて、なぜか、
||を使うとエラーになるのに、
orを使うとエラーにならないときがある。
なぜだろう?

// 92   NI-Lab.   Fri Feb 16 22:51:02 2001
そういや、この掲示板、改行がちゃんと反映されてないね……超BUG!

// 91   lifegame   Fri Feb 16 21:34:16 2001
package nilabj.application.lifegame;



/**
*
*/
public class IllegalHeadException extends Exception
{



/**
*
*/
public IllegalHeadException()
{
super();
}



}
package nilabj.application.lifegame;



/**
*
*/
public interface Head
{
public static final int N = 8;
public static final int S = 2;
public static final int W = 4;
public static final int E = 6;



}


package nilabj.application.lifegame;



/**
*
*/
public class Cell implements Head
{



private int x; // x座標
private int y; // y座標
private int head; // 方向



/**
* x座標, y座標, 方向を指定してオブジェクトを生成。<br>
*/
public Cell( int x, int y, int head ) throws IllegalHeadException
{
if (
false ==
( ( head == N ) ||
( head == E ) ||
( head == S ) ||
( head == W ) ) ) {
throw new IllegalHeadException();
}

this.x = x;
this.y = y;
this.head = head;
}



/**
* 指定した方向へ移動する。<br>
*/
private void move( int head ) throws IllegalHeadException
{
switch ( head ) {
case N: y--; break;
case E: x++; break;
case S: y++; break;
case W: x--; break;
default: throw new IllegalHeadException();
}
}



/**
* 向いている方向へひとつ進む。<br>
*/
public void forward()
{
try { move( head ); }
catch ( IllegalHeadException ihe ) { ; } // 発生しない
}



/**
* 向いている方向の逆へひとつ進む。<br>
*/
public void back()
{
}








/**
* x座標を返す。
*/
public int getX()
{
return x;
}



/**
* y座標を返す。
*/
public int getY()
{
return y;
}



/**
* 向いている方向を返す。
*/
public int getHead()
{
return y;
}








}



// 90   javax.servlet.http.HttpServletRequest#isRequestedSessionIdValid() 翻訳   Fri Feb 16 16:01:03 2001
isRequestedSessionIdValid
public boolean isRequestedSessionIdValid()
Checks whether the requested session ID is still valid.
Returns:
true if this request has an id for a valid session in the current session context; false otherwise
See Also:
getRequestedSessionId(), getSession(boolean), HttpSessionContext

isRequestedSessionIdValid
公のブールのisRequestedSessionIdValid()
要求されたセッションIDがまだ有効かどうかチェックします。
リターン:
このリクエストが現在のセッションコンテキストの中に有効なセッ
ションのidを持っている場合、真実です;誤り、さらにそうでなければ
見る:
getRequestedSessionId()、getSession、HttpSessionContext(ブール)

// 89   interfaceで定義したメソッドは、どこのクラスが実装したメソッドとして処理されるのか   Fri Feb 16 13:54:30 2001
<実験ソースコード(全4ファイル)>
public interface IInput {
public void doit();
}

public abstract class Input implements IInput {
public void doit() {
System.out.println("Input!");
}
}

public class InputChild extends Input {
public void doit() {
System.out.println("InputChild!");
}
}

public class Jikken {
public static void main( String args[] ) {
IInput i = new InputChild();
i.doit();
}
}


<表示結果>
InputChild!


<結論>
public class InputChild implements IInput
とするのと同じ結果になる。

// 88   interfaceをimplementsするということ   Fri Feb 16 13:30:42 2001

<実験用ソースコード(全5ファイル)>

interface IA {
void a();
}

interface IB extends IA {
void b();
}

class A implements IA {
public void a() {
System.out.println("This call is method a.");
}
}

class B extends A implements IB {
public void b() {
System.out.println("This call is method b.");
}
}

public class Jikken {
public static void main(String args[]) {
B b = new B();
b.a();
b.b();
}
}


<考察>
クラスBでは、
メソッドa()とメソッドb()を実装していなくてはいけない。
しかし、クラスAを継承することにより、
a()メソッドをすでに持っているため、
クラスBで定義する必要はない。


<結論>
interfaceをimplementsするということは、
interfaceで定義されたメソッドを、implementsしたクラスが実装するということではなく、
interfaceで定義されたメソッドを、implementsしたクラスが持っていればよいということになる。

// 87   Integer#parseInt(String s)の記述ミス(英語版は調べていない)。   Fri Feb 16 11:06:45 2001
parseInt
public static int parseInt(String s)
throws NumberFormatException
2 番目の引数に指定された基数を元にして、文字列の引数を符号付き整数として
解析します。文字列にある文字はすべて、指定された基数の桁に使う文字でなけ
ればなりません。これは、Character.digit(char, int) が負ではない値を返す
かどうかによって調べることができます。ただし、1 番目の文字だけは、負の
値を表すためにマイナス記号の ASCII 文字 '-' ('\u002d') であってもかまい
ません。以上の結果生成された整数値を返します。


2番目の引数はないよー。

あるのはこっち↓
Integer#parseInt(String s, int radix)
2 番目の引数に指定された基数を元にして、
文字列の引数を符号付き整数として解析します。

// 86   Integer#parseInt(String s)の記述ミス(英語版は調べていない)。   Fri Feb 16 11:06:21 2001
parseInt
public static int parseInt(String s)
throws NumberFormatException
2 番目の引数に指定された基数を元にして、文字列の引数を符号付き整数として
解析します。文字列にある文字はすべて、指定された基数の桁に使う文字でなけ
ればなりません。これは、Character.digit(char, int) が負ではない値を返す
かどうかによって調べることができます。ただし、1 番目の文字だけは、負の
値を表すためにマイナス記号の ASCII 文字 '-' ('\u002d') であってもかまい
ません。以上の結果生成された整数値を返します。

2番目の引数はないよー。

あるのはこっち↓
Integer#parseInt(String s, int radix)
2 番目の引数に指定された基数を元にして、
文字列の引数を符号付き整数として解析します。

// 85   ServletRequest#getParameterValues 翻訳   Fri Feb 16 10:46:24 2001
getParameterValues
public java.lang.String[] getParameterValues(java.lang.String name)
Returns an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist.
If the parameter has a single value, the array has a length of 1.

Parameters:
name - a String containing the name of the parameter whose value is requested
Returns:
an array of String objects containing the parameter's values
See Also:
getParameter(java.lang.String)

--------------------------------------------------------------------------------

getParameterValues公のjava.lang。

ストリングの[]getParameterValues(java.lang。 ストリング名)

パラメーターが存在しない場合、与えられたリクエストパラメーターが持っている値をすべて含んでいる多くのストリング・オブジェクトあるいは空を返します。
パラメーターが単一の値を持っている場合、配列は1の長さを持っています。

パラメーター:
名前-値が依頼返却であるパラメーターの名前を含んでいる

ストリング:
パラメーターを含んでいる多くのストリング・オブジェクトは

さらに値を見させます:
getParameter(java.lang。 ストリング)

// 84   ServletRequest#getParameterValues 翻訳   Fri Feb 16 10:43:51 2001
getParameterValues
public java.lang.String[] getParameterValues(java.lang.String name)
Returns an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist.
If the parameter has a single value, the array has a length of 1.

Parameters:
name - a String containing the name of the parameter whose value is requested
Returns:
an array of String objects containing the parameter's values
See Also:
getParameter(java.lang.String)

--------------------------------------------------------------------------------

getParameterValues公のjava.lang。ストリングの[]getParameterValues(java.lang。 ストリング名)パラメーターが存在しない場合、与えられたリクエストパラメーターが持っている値をすべて含んでいる多くのストリング・オブジェクトあるいは空を返します。パラメーターが単一の値を持っている場合、配列は1の長さを持っています。パラメーター:名前-値が依頼返却であるパラメーターの名前を含んでいるストリング:パラメーターを含んでいる多くのストリング・オブジェクトはさらに値を見させます:getParameter(java.lang。 ストリング)

// 83   WebLogic Server 5.1のセットアップと起動   Thu Feb 15 22:11:14 2001
http://www.beasys.co.jp/weblogic/docs/install/startserver.html

// 82   oClassDefFoundErrorの説明訳の間違い   Thu Feb 15 21:48:56 2001
http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/java/lang/NoClassDefFoundError.html
通常のメソッド呼び出し、あるいは new 式を使った新しいインスタンスの作成で
Java Virtual Machine またはクラスローダがクラス定義をロードしようとしたとき、
クラス定義が見からない場合にスローされます。
      ^^^^^^^^^^
     「みつからない」?

// 81   ヒア ドキュメント from Perl   Thu Feb 15 20:28:06 2001
print LOG << "__EOS__";
abcde
fghij
klmno
pqrst
uvwxyz
__EOS__

// 80   アルファベットを大文字から小文字へ変換 PErl   Thu Feb 15 19:23:26 2001
open(LOG, "<$read_file");
@log = <LOG>;
close(LOG);
open(LOG, ">$write_file");
foreach(@log) {
$_ =~ s/a-z/A-Z/g;
$_ =~ tr/A-Z/a-z/;
print LOG $_;
}
close(LOG);

// 79   シンプルなカウンタ(by Java)   Thu Feb 15 18:34:18 2001
public class Counter extends HttpServlet
{

int counter;

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
counter++;
PrintWriter out = response.getWriter();
out.println(counter);
}


}

問題は、アプリケーションサーバ等を終了するとカウンタの値が0に戻ることだ。
つまりメモリ上にカウント数があるだけ。

// 78   ServletとJSPにおける文字化けについて   Wed Feb 14 21:00:02 2001
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html

// 77   オブジェクト指向方法論Drop   Wed Feb 14 09:25:15 2001
http://www.njk.co.jp/otg/Drop/Drop_v20/

// 76   あの『Rubyを256倍使うための本 極道編』の著者:助田雅紀さんのサイト   Tue Feb 13 12:35:08 2001
http://homepage1.nifty.com/markey/
雑記帳

// 75     Sun Feb 11 17:30:51 2001
<html>
<head>
<title>るなてぃっくアンケートフォーム</title>
</head>
<body>
<table border=+2 frame=below>
<tr><td><font size=+2>『るなてぃっくわーるど』アンケートフォーム</font></td></tr>
</table>
<form method=post action="cgi-bin/xxx.cgi">
<table>
<tr>
<td>会員No.:</td>
<td><input type=text name="no." size=2></td><td>P.N:<input type=text name="addr"></tr></table>
<table><tr><td>名前:</td><td><input type=text name="name"></td><td></td><td></td>
<td>E-mailアドレス:<INPUT size=50 name=EMAIL></td></tr>
</table>
<br>
<table>
<tr><td>今回のキャラコンは</td>
<td><input type=radio name="characon" value="kugasaki">久雅崎伊織</td></tr>
<tr><td></td><td><input type=radio name="characon" value="igarashi">五十嵐千</td></tr>
<tr><td></td><td><input type=radio name="characon" value="akibasyou">秋葉抄悠斗</td></tr>
<tr><td></td><td></td><td>さんに決まり!</td></tr>
</table><br>

次回キャラコンテーマは<br>
<textarea name="charatema" rows=3 cols=50></textarea>なんてどう?<br><br>


次回リクエストは <font size=-1>※『誰に何を描いてもらいたいか』を明記のこと。複数回答可。</font><br>
<textarea name="req" rows=3 cols=50></textarea>でお願い!<br><br>
何かご意見・ご感想・質問などあればこちらへ。<br>
<textarea name="opinion" rows=3 cols=50></textarea>
<br><br>
<INPUT TYPE=submit VALUE="submit">
<INPUT TYPE=reset VALUE="reset">
</FORM>
</body>
</html>

// 74     Sun Feb 11 02:18:04 2001
<html>
<head>
<title>下線なしリンクさらにマウスオーバー一括設定?</title>
<STYLE TYPE="text/css">
<!--
a:hover {color:#3333cc; text-decoration:none}
a:link {color:silver; text-decoration:none}
a:visited {color:silver; text-decoration:none}
a:active {color:#800080; text-decoration:none}
-->
</STYLE>
</head>
<body>
<SPAN STYLE
onMouseOver="window.event.srcElement.style.color='#9999ff'"
onMouseOut="window.event.srcElement.style.color='silver'">
<a href="test.html" div title="テーブル「こさし」">テーブル「こさし」へリンク</div><br>
<a href="test4.html" div title="スタイルシートへ!">スタイルシートへ!</div></span>

// 73   カーソルが重なるとセルの背景色が変化する表   Sun Feb 11 02:03:31 2001
http://www.interq.or.jp/pink/taka1112/stylesheet/css_cell_bcgchange.html

// 72   オンマウスで文字スタイル変更   Sun Feb 11 01:58:31 2001
http://hp-design.net/ss/dynas-ss-onmsfont.html

// 71   Mozilla 0.7 Release Notes >> Installing on Windows   Sat Feb 10 17:17:39 2001
ウインドウズ上にインストールすることあなたが以前にMozillaおよび(または)ネットスケープ人的担保マネージャー(Netscape Personal Security Manager)をインストールしたならば、psm.exeを求めてあなたのドライブを探索して、Mozillaをインストールする前にそれが存するホルダーおよびそのすべてのサブホルダーを削除してください。(バグ54637)低いディスク・スペースを備えたJavaをインストールすると、インストーラーは掛かっているかもしれません。(バグ45067)あなたがJavaを備えたMozillaをインストールし始める前に、あなたのディスク・スペースを必ずチェックしてください(システム必要条件(System Requirements)を参照。)。注:ウインドウズ2000およびいくつかのウィンドウズNT装置については、あなたが、Mozillaをインストールする管理者特権を持っていなければなりません。あなたが見る場合、1つの「設置中のエラー5”のメッセージ、管理者特権でログオンし、再びインストールしてみる。(バグ56538)MozillaインストーラーのダウンロードによりMozillaをインストールするためには、これらのステップに従ってください:あなたのマシンへのファイルをダウンロードするためにmozilla-win32-installer.exeリンクをクリックしてください。あなたがファイルをダウンロードし、セット・アップ・プログラムを始める?スめにあなたのマシン上のMozillaプログラム・アイコンをダブルクリックする場所へナビゲートしてください。セット・アップ・プログラムのスクリーン上の授業に従ってください。プログラムは最初自動的にスタートします。.zipファイルをダウンロードし手動でインストールすることによりMozillaをインストールするためには、これらのステップに従ってください:あなたのマシンへの.zipファイルをダウンロードするためにmozilla-win32-talkback.zipリンクあるいはmozilla-win32.zipリンクをクリックしてください。あなたがファイルをダウンロードし、圧縮ファイルをダブルクリックする場所へナビゲートしてください。注:このステップは、あなたが既にWinZipの最近のバージョンをインストールしあなたが、それを使用する方法を知っている、と仮定します。そうでなければ、あなたはwww.winzip.comでWinZipおよびプログラムに関する情報を得ることができます。C:/Programファイル(C:/Program Files)/Mozillaのようなディレクトリーへの.zipファイルを抽出してください。Mozillaを始めるためには、あなたがMozillaを抽出したディレクトリーにナビゲートして、Mozilla.exeアイコンをダブルクリックしてください。


// 70   訂正   Sat Feb 10 04:47:51 2001
(訂正前)なつかしきNBASICのHelloWorld
(訂正後)なつかしきN88BASICのHelloWorld


// 69   なつかしきNBASICのHelloWorld   Sat Feb 10 04:46:56 2001
10 PRINT "Hello, World!"
20 END


// 68   NI-Lab.   Sat Feb 10 04:21:37 2001
↓意味がわからなかったら、コピペか質問をどうぞ>千

// 67   <はじめてのスタイルシート>   Sat Feb 10 04:20:18 2001
以下の2つのファイル(a.html, b.css)を作成する。


--- a.html ここから(この行を含めないように) ------
<html>
<body>
<LINK REL=STYLESHEET TYPE="text/css" HREF="b.css">
<a href="http://www.goo.ne.jp">goo</a><br>
</body>
</html>
--- a.html ここまで --------------------------

--- b.css ここから ---------------------------
<STYLE TYPE="text/css"> 
<!-- 
BODY { line-height: 120% ; } 
A { line-height: 120% ; } 
FONT { line-height: 80% ; } 
H1 { line-height: 200% ; } 
HR { line-height: 150% ; } 
  A:LINK{text-decoration:none}
  A:VISITED{text-decoration:none}
  A:ACTIVE{text-decoration:none}
// --> 
</STYLE> 
--- b.css ここまで ---------------------------


<<<<<   解説   >>>>>
表示されるスタイルをb.cssにて設定する。
b.css 内の A:LINK{text-decoration:none} というのがリンク表示の設定部分。
同様に、A:VISITED~, A:ACTIVE~ も設定しておいたほうが良い。
A:VISITED:~ は、すでに行ったことがあるリンク先へのリンクについての設定。
A:ACTIVE:~ は、リンクの部分をクリックした瞬間について設定。
a.html 内の <LINK REL=STYLESHEET TYPE="text/css" HREF="b.css"> で
b.cssを利用することを宣言している。


// 66   Ant用にセッティングしたバッチファイルnilabj.bat   Fri Feb 9 13:16:54 2001
@echo off
prompt $p$g

set D=c:

set JAVA_HOME=%D%\_java\jdk1.3\n
set ANT_HOME=%D%\_java\ant

set PATH=
set PATH=%PATH%;%JAVA_HOME%\bin
set PATH=%PATH%;%ANT_HOME%\bin

set CLASSPATH=
set CLASSPATH=%CLASSPATH%;.


// 65   Ant-build.xml   Fri Feb 9 13:14:31 2001
<project name="nilabjProject" default="dist" basedir=".">

  <!-- set global properties for this build -->
  <property name="src" value="." />
  <property name="build" value="compiled" />
  <property name="dist"  value="lib" />

  <target name="prepare">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}" />
  </target>

  <target name="compile" depends="prepare">
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}" />
  </target>

  <target name="dist" depends="compile">
    <!-- Create the ${dist} directory -->
    <mkdir dir="${dist}" />

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/nilabj${DSTAMP}${TSTAMP}.jar" basedir="${build}" />
  </target>

  <target name="clean">
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}" />
    <delete dir="${dist}" />
  </target>
</project>


// 64   Javaでファイルリスト取得   Fri Feb 9 13:14:02 2001
	File f = new File("C://_nilabj_project");
	File ff[] = f.listFiles();

	System.out.println( "Name\tFile?\tDirectory?");

	for ( int i=0; i < ff.length; i++ ) {
		System.out.println( ff[i].getName() + "\t" + ff[i].isFile() + "\t" + ff[i].isDirectory() );
	}


// 63   POST実験   Thu Feb 8 20:43:35 2001
--------- 受けるサーブレット ------------------------------
package jikkenserv;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import java.util.*;


public class Mojibake extends HttpServlet
{
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{


	try
	{
		String key;
		String val;
		String val2;

		response.setContentType( "text/html" );
		PrintWriter out = response.getWriter();
		out.println("<html><body>");

		Enumeration enum = request.getParameterNames();
		while ( enum.hasMoreElements() ) {
			key = (String)enum.nextElement();
			val = request.getParameter(key);
			val2 = new String(val.getBytes("8859_1"),"Shift_JIS");
			System.out.println("*** " + key + " : " + val  + " : " + val2 + " ***");
			out.println("*** " + key + " : " + val  + " : " + val2 + " ***<br>");
		}

		out.println("</body></html>");
		out.close();
	}

	catch ( Exception e ) { e.printStackTrace(); }

}


public String getEncodingString(String enc){
    if(enc.equalsIgnoreCase("iso-8859-1"))
      return "ISO8859_1";
    else if(enc.equalsIgnoreCase("iso-2022-jp"))
      return "ISO2022JP";
    else
      return "JISAutoDetect"; 
  }


}




--------- 送信フォーム ------------------------------------
<html>
<body>

<form action="Mojibake" method="post">
<input type="text" name="Text" value="W * E * R * D * N * A">:Text<br>
<input type="checkbox" name="Checkbox1" value="Japan">:Japan<br>
<input type="checkbox" name="Checkbox2" value="India">:India<br>
<input type="radio" name="radio" value="zone">:ZONE<br>
<input type="radio" name="radio" value="mantoman">:MAN to MAN<br>
<textarea name="Textarea">lalamoomoo</textarea><br>

<SELECT NAME="OS">
<OPTION VALUE="MSLinux">MS-Linux
<OPTION VALUE="MAC-X">iMACdonald
<OPTION VALUE="B S D">Berk!
<OPTION VALUE="OTHER">その他
</SELECT><BR>

<INPUT TYPE=submit VALUE="pushit">
</form>

</body>
</html>



--------- 表示結果 --------------------------------------------------

*** Text : W * E * R * D * N * A : W * E * R * D * N * A ***
*** Checkbox2 : India : India ***
*** Checkbox1 : Japan : Japan ***
*** Textarea : lalamoomoo aaaaa sssss ddddd : lalamoomoo aaaaa sssss ddddd ***
*** OS : MSLinux : MSLinux ***
*** radio : mantoman : mantoman ***



// 62   xORBを作ろう   Thu Feb 8 16:30:14 2001
http://java-house.etl.go.jp/~takagi/java/bit-xorb/index-j.html

// 61   ASP   Wed Feb 7 13:53:23 2001
http://www.microsoft.com/japan/developer/workshop/server/asp/server02282000.asp
IIS 5.0 における ASP の機能強化

http://www.microsoft.com/japan/developer/workshop/server/asp/server01242000.asp
ASP コンポーネント ガイドライン


// 60   変数の接頭語   Wed Feb 7 13:50:22 2001

通常、ASP コード内の変数の型は、実際のデータ型ではなくその用途に合わせて宣言されます。

<< 変数の接頭語 >>
接頭語 使用される変数 変数の例 
b または bln  ブール型 bSuccess 
c または cur  通貨型 (Currency) cAmount 
d または dbl  倍精度浮動小数点数型 (Double) dblQuantity 
dt または dat  日付型 (Date) および時刻型 (Time) dtDate 
f または flt  浮動小数点型 (Float) fRatio 
l または lng  長整数型 (Long) lMilliseconds 
i または int  整数型 (Integer) iCounter 
s または str  文字列型 (String) sName 
a または arr  配列 aUsers() 
o または obj  COM オブジェクト oPipeline 

<< データベース オブジェクトに対する変数の接頭語 >>
接頭語 使用される変数 変数例 
cnn Connection  cnnPubs 
rst Recordset  rstAuthors 
cmd Command cmdEmployee 
fld Field  fldLastName 

<< スコープと使用法の接頭語 >>
接頭語 説明 
g_ Global.asa で作成される 
m_ ASP ページに対してローカルまたはインクルード ファイル内でローカル 
(接頭語なし)  非静的変数、プロシージャに対してローカルな接頭語 

<< 参考文献 >>
http://www.microsoft.com/japan/developer/workshop/server/asp/server122799.asp
ASP ガイドライン
http://www.microsoft.com/isapi/gosupport.asp?TARGET=/support/kb/articles/Q110/2/64.asp
Q110264 INFO: Microsoft Consulting Services Naming Conventions for Visual Basic


// 59   では、次回までお元気で、ペプシ (または、シアトルに住んでいる方は latte) を飲んで!   Wed Feb 7 13:45:23 2001
http://www.microsoft.com/japan/developer/workshop/server/asp/server092799.asp
I Can't Stress It Enough − ASP アプリケーションのロード テスト
Web ストレス ツール

// 58   J2EE, Jini, Beans, WebServer, UNIX, Database   Wed Feb 7 11:28:30 2001
http://www.wakhok.ac.jp/~maruyama/
丸山不二夫のホームページ

// 57   CORBAとか   Wed Feb 7 11:24:26 2001
http://www.skpl.com/doc/doc-j.html
創研プランニング 公開資料 

// 56   Javaで起きることがあるらしい   Wed Feb 7 10:38:19 2001
SIGSEGV   11*  segmentation violation
    si_signo [11]: SIGSEGV   11*  segmentation violation

// 55   Javaでprintf   Wed Feb 7 10:11:56 2001
double d = 3.14159238098731165E-15;
String s = new java.text.DecimalFormat("####0.0#############################").format(d);


// 54   Kent Beck Testing Framework 入門   Wed Feb 7 09:00:56 2001
http://member.nifty.ne.jp/masarl/article/testing-framework.html

// 53   sendmail.cfの設定   Tue Feb 6 21:38:56 2001
http://member.nifty.ne.jp/hardy/linux/sendmailcf.html

// 52   Windows 98/2000上でのUTF-8のページの作り方   Tue Feb 6 14:21:12 2001
http://homepage1.nifty.com/hobbit/html/utf8.html

// 51   文字化け問題   Tue Feb 6 13:47:03 2001
Solaris上で、
char c = 0x2212;
String str = "1" + c + "1"
「1−1」と表示される

SQLServer6.5へ書き込む

SQLServer6.5上で
「1−1」と表示される
「−」のコードは0xff0d


// 50   PostgreSQLをより深く知る   Tue Feb 6 10:51:25 2001
http://www.sra.co.jp/people/t-ishii/postgres95/postbook/ch.3.pdf

// 49   JIS漢字コード 97年改正の概要と将来展望   Tue Feb 6 10:47:29 2001
http://software.nikkeibp.co.jp/software/special/jiscode/nc.html

// 48   従来の文字コードとUnicodeの対応に関する諸問題   Tue Feb 6 10:34:26 2001
http://hp.vector.co.jp/authors/VA001240/article/ucsnote.html

// 47   Javaの逆コンパイラ   Fri Feb 2 11:33:22 2001
Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html


// 46   [VB] Visual Basic 6.0 に添付されている ActiveX コントロール一覧   Thu Feb 1 01:46:55 2001
[VB] Visual Basic 6.0 に添付されている ActiveX コントロール一覧
最終更新日: 1999/03/15
文書番号: J045057  


この資料は以下の製品について記述したものです。

Microsoft(R) Visual Basic(R) Version 6.0 Learning Edition

Microsoft(R) Visual Basic(R) Version 6.0 Professional Edition

Microsoft(R) Visual Basic(R) Version 6.0 Enterprise Edition

Microsoft(R) Visual Basic(R) Version 6.0 RISC Edition for Alpha(以下 Visual Basic 6.0)


概要
この資料は Visual Basic 6.0 に添付されている 
ActiveX コントロールについて記述したものです。



ActiveX コントロールの利用について
統合開発環境の [プロジェクト] メニューの [コンポーネント] に表示される一覧は
システムのレジストリに登録されているすべてのコントロールで、他の
アプリケーションなどによってインストールされたものも含まれます。
以下のリストにないコントロールの使用方法、配布条件については
その提供元に確認してください。

なお、所有している Edition に添付されていないコントロールの使用方法、
および統合開発環境やウィザードなどが使用しているコントロールの
プログラムからの使用はサポート対象外です。



すべての Edition に含まれる ActiveX コントロール
Learning Edition、Professional Edition、Enterprise Edition
 および RISC Edition for Alpha に添付されています。



  コントロール名                ファイル名     正式名称
  ----------------------------+--------------+----------------------------------
  ADO データ                    Msadodc.ocx    Microsoft ADO Data Control 6.0 (OLEDB)
  コモン ダイアログ             Comdlg32.ocx   Microsoft Common Dialog Control 6.0
  DB コンボ                     Dblist32.ocx   Microsoft Data Bound List Controls 6.0
  DB リスト                     Dblist32.ocx   Microsoft Data Bound List Controls 6.0
  データ グリッド               Msdatgrd.ocx   Microsoft DataGrid Control 6.0 (OLEDB)
  データ コンボ                 Msdatlst.ocx   Microsoft DataList Contrtols 6.0 (OLEDB)
  データ リスト                 Msdatlst.ocx   Microsoft DataList Contrtols 6.0 (OLEDB)
  フレキシブル グリッド         Msflxgrd.ocx   Microsoft FlexGrid Control 6.0
  階層フレキシブル グリッド     Mshflxgd.ocx   Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)
  リッチテキスト ボックス       Richtx32.ocx   Microsoft Rich Textbox Control 6.0
  タブ ダイアログ               Tabctl32.ocx   Microsoft Tabbed Dialog Control 6.0
  イメージ リスト               Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  リスト ビュー                 Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  プログレス バー               Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  スライダ                      Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  ステータス バー               Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  タブ ストリップ               Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  ツール バー                   Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  ツリー ビュー                 Comctl32.ocx   Microsoft Windows Common Controls 5.0 (SP2)
  イメージ コンボ               Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  イメージ リスト               Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  リスト ビュー                 Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  プログレス バー               Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  スライダ                      Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  ステータス バー               Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  タブ ストリップ               Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  ツール バー                   Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  ツリー ビュー                 Mscomctl.ocx   Microsoft Windows Common Controls 6.0
  アニメーション                Comct232.ocx   Microsoft Windows Common Controls-2 5.0 (SP2)
  アップダウン                  Comct232.ocx   Microsoft Windows Common Controls-2 5.0 (SP2)
  アニメーション                Mscomct2.ocx   Microsoft Windows Common Controls-2 6.0
  DTPicker                      Mscomct2.ocx   Microsoft Windows Common Controls-2 6.0
  フラット スクロール バー      Mscomct2.ocx   Microsoft Windows Common Controls-2 6.0
  MonthView                     Mscomct2.ocx   Microsoft Windows Common Controls-2 6.0
  アップダウン                  Mscomct2.ocx   Microsoft Windows Common Controls-2 6.0


Windows コモン コントロールは、互換性を維持するためのバージョン 
(Comctl32.ocx および Comct232.ocx) と新しいコントロールと機能が
装備されたバージョン (Mscomctl.ocx および Mscomct2.ocx) の 2 つの
バージョンが添付されています。

新規プロジェクトでは、新しいバージョンの Windows コモン コントロール 
(Mscomctl.ocx および Mscomct2.ocx) を使用してください。
なお、既存のアプリケーションで使用している Windows コモン コントロールを
アップグレードする方法については、次の資料を参照してください。


  文書番号 : J045060
  タイトル : [VB] 32 ビット版から Visual Basic 6.0 への移植時の注意事項


Professional Edition、Enterprise Edition および RISC Edition for Alpha に

含まれる ActiveX コントロール

  コントロール名                ファイル名     正式名称
  ----------------------------+--------------+----------------------------------
  チャート                      Mschrt20.ocx   Microsoft Chart Control 6.0 (OLEDB)
  コミュニケーション            Mscomm32.ocx   Microsoft Comm Control 6.0
  データ リピータ               Msdatrep.ocx   Microsoft DataRepeater Control 6.0 (OLEDB)
  インターネット トランスファ   Msinet.ocx     Microsoft Internet Transfer Control 6.0
  MAPI メッセージ               Msmapi32.ocx   Microsoft MAPI Controls 6.0
  MAPI セッション               Msmapi32.ocx   Microsoft MAPI Controls 6.0
  マスク エディット             Msmask32.ocx   Microsoft Masked Edit Control 6.0
  マルチメディア                Mci32.ocx      Microsoft Multimedia Control 6.0
  ピクチャ クリップ             Picclp32.ocx   Microsoft PictureClip Control 6.0
  システム情報                  Sysinfo.ocx    Microsoft SysInfo Control 6.0
  Coolbar                       Comct332.ocx   Microsoft Windows Common Controls-3 6.0
  Winsock                       Mswinsck.ocx   Microsoft Winsock Control 6.0


セットアップ プログラムではコピーされない ActiveX コントロール
これらの ActiveX コントロールは、Visual Basic のセットアップ プログラムでは
コピーされないため、CD-ROM から別途インストールする必要があります。
インストール方法については、CD-ROM の Common\Tools\Vb\Japanese フォルダの
 Readme.txt を参照してください。



  コントロール名                ファイル名     正式名称
  ----------------------------+--------------+----------------------------------
  スクリプト                    Msscrpt.ocx    Microsoft Script Control 1.0
  WL チェック ボックス          Mswless.ocx    Microsoft Windowless Controls 6.0
  WL コンボ ボックス            Mswless.ocx    Microsoft Windowless Controls 6.0
  WL コマンド ボタン            Mswless.ocx    Microsoft Windowless Controls 6.0
  WL フレーム                   Mswless.ocx    Microsoft Windowless Controls 6.0
  WL 水平スクロール バー        Mswless.ocx    Microsoft Windowless Controls 6.0
  WL リスト ボックス            Mswless.ocx    Microsoft Windowless Controls 6.0
  WL オプション ボタン          Mswless.ocx    Microsoft Windowless Controls 6.0
  WL テキスト ボックス          Mswless.ocx    Microsoft Windowless Controls 6.0
  WL 垂直スクロール バー        Mswless.ocx    Microsoft Windowless Controls 6.0


なお、RISC Edition for Alpha に含まれているスクリプト コントロール (Msscript.ocx) は
 Intel 用のプログラムです。Alpha 用のスクリプト コントロールは
次の Web よりダウンロードが可能です。


  http://www.asia.microsoft.com/japan/developer/scripting/scriptcontrol/


Enterprise Edition および RISC Edition for Alpha に含まれる ActiveX コントロール

  コントロール名                ファイル名     正式名称
  ----------------------------+--------------+----------------------------------
  リモート データ               Msrdc20.ocx    Microsoft RemoData Control 6.0


以前のバージョンに含まれていた ActiveX コントロール
以前のバージョンとの互換性維持を目的として、Professional Edition、
 Enterprise Edition および RISC Edition for Alpha に添付されています。

これらの ActiveX コントロールは、Visual Basic 6.0 上での十分なテストは行われていません。新規プロジェクトで、これらの ActiveX コントロールを使用することは、お勧めいたしません。



  コントロール名                ファイル名     正式名称
  ----------------------------+--------------+----------------------------------
  クリスタル レポート           Crystl32.ocx   Crystal Report Control 4.6
  アニメーション ボタン         Anibtn32.ocx   Desaware Animated Button Control
  ゲージ                        Gauge32.ocx    MicroHelp Gauge Control
  キー ステータス               Keysta32.ocx   MicroHelp KeyState Control
  チャート                      Mschart.ocx    Microsoft Chart Control 6.0
  DB グリッド                   Dbgrid32.ocx   Microsoft Data Bound Grid Control 5.0 (SP3)
  グリッド                      Grid32.ocx     Microsoft Grid Control
  アウトライン                  Msoutl32.ocx   Microsoft Outline Control
  スピン ボタン                 Spin32.ocx     Outrider SpinButton Control
  グラフ                        Graph32.ocx    Pinnacle-BPS Graph Control
  3D チェック ボックス          Threed32.ocx   Sheridan 3D Controls
  3D コマンド ボタン            Threed32.ocx   Sheridan 3D Controls
  3D フレーム                   Threed32.ocx   Sheridan 3D Controls
  3D オプション ボタン          Threed32.ocx   Sheridan 3D Controls
  3D パネル                     Threed32.ocx   Sheridan 3D Controls
  3D グループ プッシュボタン    Threed32.ocx   Sheridan 3D Controls


なお、RISC Edition for Apha には Visual Basic 5.0 に含まれていた 
ActiveX コントロール (クリスタル レポート、DB グリッド、チャート) のみが
添付されています。

これらの ActiveX コントロールは Visual Basic のセットアップ プログラムでは
コピーされないため、CD-ROM から別途インストールする必要があります。
インストール方法については、次の資料を参照してください。


  文書番号 : J045060
  タイトル : [VB] 32 ビット版から Visual Basic 6.0 への移植時の注意
 

// 45   [IIS]CGI アプリケーションをインストールして構成するには   Wed Jan 31 14:51:30 2001
CGI アプリケーションをインストールして構成するには

CGI プログラム用のディレクトリをセットアップします。
セキュリティを強化するには、CGI プログラムとコンテンツ ファイルを
分ける必要があります。詳細については、「仮想ディレクトリを作成する」を
参照してください。 
CGI プログラムがスクリプトである場合は、適切なスクリプト インタプリタを
入手してインストールします。たとえば、Perl スクリプトを実行するには、
Perl インタプリタが必要です。 
Windows のオペレーティング システムでは、Perl、SED、および AWK を
提供していません。インタプリタは、サード パーティの開発元から入手できます。

CGI プログラムが .exe ファイルである場合は、ディレクトリに
実行アクセス権を設定します。CGI プログラムがスクリプトの場合は、
ディレクトリに実行アクセス権またはスクリプト アクセス権を設定します。
詳細については、「アクセス制御」を参照してください。 
スクリプト アクセス権を指定する場合は、ディレクトリのプロパティ シートで、
スクリプトのインタプリタをスクリプト エンジンとして指定する必要があります。
ディレクトリ内で実行できるのは、スクリプト エンジンとして指定されている
インタプリタだけです。実行可能ファイル (.dll ファイルと .exe ファイル) を
直接実行することはできません。つまり、URL にプログラム名を入れて
ブラウザ要求を行っても、 "Web サーバー上の" 実行可能ファイルを
起動することはできません。スクリプト アクセス権と 
[スクリプト エンジン] オプションを併せて指定することで、
コンテンツ ファイル (.htm ファイルや .gif ファイルなど) と 
CGI スクリプトを同じディレクトリに安全に格納できます。
この場合、コンテンツ ファイルはブラウザに表示され、
スクリプトは実行されますが、無許可のプログラムを実行したり、
スクリプト コマンドをブラウザに表示したりすることはできません。


注意    実行可能ファイルを含むディレクトリに、読み取りアクセス権が
設定されている場合、サイトの利用者は実行可能ファイルをダウンロードして
実行することができます。セキュリティを考慮して、実行可能ファイルは
読み取りアクセス権が設定されていない別のディレクトリに配置することをお勧めします。 


CGI スクリプトを使用する場合は、スクリプトのファイル名の拡張子と
スクリプト インタプリタの間のアプリケーション マッピングを作成します。 
インターネット インフォメーション サービスは、ファイル名の拡張子を
インタプリタにマップします。たとえば、拡張子が .pl のファイルに
格納されている Perl スクリプトを使用する場合は、Perl スクリプトを
実行するプログラムに拡張子 .pl をマップします。拡張子が .bat および
 .cmd のファイルは、コマンド インタプリタ (Cmd.exe) にマップします。
詳細については、「アプリケーションのマッピングを設定する」を参照してください。


NTFS のアクセス権を設定します。 
NTFS のアクセス権を使用する場合は、プログラムを実行するすべてのユーザーに、
ディレクトリに対する実行アクセス権を与える必要があります。匿名ユーザーを
受け付ける Web サイトでは、匿名ユーザー (IUSR_computername アカウント) に、
実行アクセス権を与えます。


インターネット インフォメーション サービスは、標準のサーバー環境変数の
大部分をサポートしています。

リモート サーバーで実行中の Cmd.exe にマップされているスクリプトに
別のスクリプトからアクセスする場合、既定の実行時ディレクトリはローカル
 コンピュータ上の %SYSTEM32% に設定されます。%SYSTEM32% の既定値は、
Windows 2000 では \Winnt\System32、 Windows 95 以降では \Win95\System です。

セキュリティ強化のため、Web サーバーは、マップされている CGI アプリケーションに
コマンド インタプリタの特殊文字を渡しません。特に指定しない限り、
CGI アプリケーションを呼び出す URL で次の文字を使うことはできません。

| ( , ; % < >
お勧めはできませんが、レジストリの AllowSpecialCharsInShell の値を
変更すれば、一部の特殊文字を使用できるようになります。
詳細については、「WWW サービスのレジストリ エントリ」を参照してください。



// 44   [IIS] perl スクリプトを実行すると 403 アクセス禁止エラーとなる   Wed Jan 31 14:50:15 2001
[IIS] perl スクリプトを実行すると 403 アクセス禁止エラーとなる
最終更新日: 1997/06/12
文書番号: J030251  


この資料は以下の製品について記述したものです。

Microsoft(R) Internet Information Server version 2.0 and 3.0 (以下 IIS ) 


概要 
Perl をインストールした後、ブラウザで Perl Script を実行すると、
次のような エラー メッセージが表示されます。



   HTTP/1.0 403 アクセスは許可されていません (読み出しアクセスは拒否されました 
   - この仮想ディレクトリはオブジェクトの読み取りを許可していません。) 


原因 
Perl.exe または PerlIS.DLL インタープリタを呼び出しますために、
レジストリ エディタ (Regedt32.exe) を使用して、下記のようにレジストリの変更を行います。



               HKEY_LOCAL_MACHINE
                     \SYSTEM
                         \CurrentControlSet
                             \Services
                                 \W3SVC
                                    \Parameters
                                        \Script Map


拡張子 <.pl> のファイルを仮想ディレクトリで実行さるために、
以下の値を Script Map に追加します。


   ".pl : Reg_Sz : < Path >\<Perl.exe または PerlIS.dll>"


レジストリ編集後、IIS のサービスを再起動させていないときにこのエラーが発生し ます。
 


// 43   [IIS]アプリケーションのマッピングを設定する   Wed Jan 31 14:49:36 2001
アプリケーションのマッピングを設定する
Web アプリケーションの開発には、さまざまなプログラミング言語および
スクリプト言語を使用できます。インターネット インフォメーション
 サービス (IIS) は、Web サイトで要求されたリソースのファイル名の
拡張子を使って、ISAPI プログラムと CGI プログラムのどちらを実行して
要求を処理するかを決定します。たとえば、拡張子が .asp というファイルに
対する要求では、Web サーバーは ASP プログラム (Asp.dll) を呼び出して
その要求を処理します。ファイル名の拡張子を ISAPI プログラムまたは
 CGI プログラムと関連付けることを、"アプリケーションのマッピング" 
と呼びます。IIS は、一般に使われるアプリケーションのマッピングを
サポートするようにあらかじめ構成されています。Web サイトのすべての
アプリケーションあるいは個々のアプリケーションのマッピングを追加
または解除できます。

拡張子をアプリケーションにマップするには

インターネット インフォメーション サービス スナップインで、
Web サイトまたはアプリケーションの開始点ディレクトリをクリックします。 
ディレクトリのプロパティ シートを開き、[ホーム ディレクトリ] タブ、
[仮想ディレクトリ] タブ、または [ディレクトリ] タブをクリックします。 
[構成] をクリックし、[アプリケーションのマッピング] タブをクリックします。 
[追加] をクリックし、[実行ファイル] ボックスに、ファイルを処理する
 ISAPI プログラムまたは CGI プログラムのパスを入力します。
Web サーバーのローカル ディレクトリにあるプログラムを指定する必要があります。 
[拡張子] ボックスに、ISAPI プログラムまたは CGI プログラムに関連付ける
ファイル名の拡張子を入力します。この拡張子を持つファイルを示す URL を受け取ると、
Web サーバーは関連付けられたプログラムを呼び出して要求を処理します。 
スクリプトのアクセス権が設定されたディレクトリで、この種類のファイルの
処理を許可するには、[スクリプト エンジン] チェック ボックスをオンにします。
実行のアクセス権ではなく、スクリプトのアクセス権がディレクトリに
設定されている場合、そのディレクトリ内では、指定されたスクリプト エンジンである
アプリケーションに関連付けられたファイルだけを処理できます。 
重要     [アプリケーションのマッピング] プロパティ シートに [動詞] という
タイトルの列があります。IIS 4.0 では、この列に [除外] というタイトルが
付いていました。今後新しい HTTP 動詞が Hypertext Transport Protocol (HTTP) に
追加された場合に互換性が保たれるように、[動詞] に変更されています。

 

アプリケーションのマッピングを解除するには  [アプリケーションのマッピング] 
プロパティ シートでファイル名の拡張子を選択し、[削除] をクリックします。
削除した拡張子を持つファイルに対する要求があっても、この Web サイトまたは
ディレクトリ内では処理されません。 


// 42   SimpleDateFormat   Wed Jan 31 14:45:24 2001
String s = (new SimpleDateFormat("yyMM")).format(new java.util.Date());
System.out.println(s);


// 41   [IIS] Perl スクリプトの構成とテスト方法   Wed Jan 31 14:20:47 2001
[IIS] Perl スクリプトの構成とテスト方法
最終更新日: 1997/02/26
文書番号: J028692  


この資料は以下の製品について記述したものです。

Microsoft(R) Internet Information Server version 1.0 (以下 IIS ) 

概要 
次の Perl スクリプトは、IIS での CGI スクリプトの構成、
および実行テストに 使用することができます。



詳細 
メモ帳等のテキスト エディタで、以下の内容を記述します。
ファイル名を Helloworld.pl として scripts ディレクトリに保存してください。



  print "HTTP/1.0 200 OK\n";
  print "Content-Type: text/html\n\n";
  print "<HTML>\n";
  print "<HEAD>\n";
  print "<TITLE>Hello World</TITLE>\n";
  print "</HEAD>\n";
  print "<BODY>\n";
  print "<H4>Hello World</H4>\n";
  print "<P>\n";
  print "Your IP Address is $ENV{REMOTE_ADDR}.\n";
  print "<P>";
  print "<H5>Have a nice day</H5>\n";
  print "</BODY>\n";
  print "</HTML>\n";

ファイルを作成したら、Perl を安全に実行できるように設定する必要があります。
Perl.exe は、ユーザーがブラウザからアクセス可能なディレクトリーに置かないよう
にしてください。

レジストリのスクリプト マッピングによって、ユーザーがアクセスできない
ディレクトリに Perl.exe を置くことが可能です。



スクリプト マッピングの設定 
追加のスクリプト マッピングを設定するには 




レジストリ エディタ (Regedt32.exe) を起動して、次を開きます。 

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
      \W3SVC\Parameters\ScriptMap



[編集] メニューから、[値の追加] を選びます。


スクリプトに使用するファイル名の拡張子 .pl を入力します。


データ タイプは REG_SZ です。


文字列エディタで、スクリプトに使われるインタプリタのフル パスを入力します。 

   C:\Reskit\Perl\Bin\Perl.exe %s %s 



WWW サービスを再起動します。 

設定終了後、ブラウザーから Perl スクリプトの実行テストを行うことができます。
IIS のデフォルトのディレクトリ構造を使用すると URL は以下のようになります。


   http://<Server Name>/scripts/helloworld.pl?



// 40   JavaToolz   Wed Jan 31 12:47:49 2001
http://lejos.sourceforge.net/
leJOS: Java based OS for Lego RCX
レゴのマインドストームを操作する

http://coldjava.hypermart.net/servlets/stress.htm
Stress tool ver 1.3
サーブレットに負荷をかけてテストできる

// 39   javax.servlet.ServletContext#getRequestDispatcher 改行有りバージョン   Wed Jan 31 09:53:42 2001
getRequestDispatcher
公共のRequestDispatcher getRequestDispatcher(java. lang. String経路)
リソースのための包装紙が与えられた経路で場所を見つけられて作用するRequestDispatcher物を返す.
要求をリソースに転送するか, または応答にリソースを含むのにRequestDispatcher物を使用することができる.
リソースはダイナミックであるか, または静的な場合がある.
パス名は「/」で始まらなければならなくて, 現在の文脈根に比例して解釈される.
getContextを使用して, RequestDispatcherを外国文脈のリソースに入手しなさい.
ServletContextがRequestDispatcherを返すことができないならば, 
この方法はヌルを返す.

パラメタ:
経路--リソースにパス名を指定するString
リターン:
リソースのための包装紙として指定された経路で機能するRequestDispatcher物
また, 見なさい:
RequestDispatcher, getContext(java. lang. String)


// 38   javax.servlet.ServletContext#getRequestDispatcher 改行有りバージョン   Wed Jan 31 09:52:42 2001
getRequestDispatcher
公共のRequestDispatcher getRequestDispatcher(java. lang. String経路)
リソースのための包装紙が与えられた経路で場所を見つけられて作用するRequestDispatcher物を返す. 要求をリソースに転送するか, 
または応答にリソースを含むのにRequestDispatcher物を使用することができる.
リソースはダイナミックであるか, または静的な場合がある. 
パス名は「/」で始まらなければならなくて, 現在の文脈根に比例して解釈される. getContextを使用して, RequestDispatcherを外国文脈のリソースに入手しなさい. ServletContextがRequestDispatcherを返すことができないならば, 
この方法はヌルを返す.

パラメタ:
経路--リソースにパス名を指定するString
リターン:
リソースのための包装紙として指定された経路で機能するRequestDispatcher物
また, 見なさい:
RequestDispatcher, getContext(java. lang. String)


// 37   javax.servlet.ServletContext#getRequestDispatcher   Wed Jan 31 09:51:50 2001
getRequestDispatcher
公共のRequestDispatcher getRequestDispatcher(java. lang. String経路)
リソースのための包装紙が与えられた経路で場所を見つけられて作用するRequestDispatcher物を返す. 要求をリソースに転送するか, または応答にリソースを含むのにRequestDispatcher物を使用することができる. リソースはダイナミックであるか, または静的な場合がある. 
パス名は「/」で始まらなければならなくて, 現在の文脈根に比例して解釈される. getContextを使用して, RequestDispatcherを外国文脈のリソースに入手しなさい. ServletContextがRequestDispatcherを返すことができないならば, この方法はヌルを返す.

パラメタ:
経路--リソースにパス名を指定するString
リターン:
リソースのための包装紙として指定された経路で機能するRequestDispatcher物
また, 見なさい:
RequestDispatcher, getContext(java. lang. String)


// 36   @IT   Wed Jan 31 09:38:14 2001
http://www.atmarkit.co.jp/

// 35   NI-Lab.   Wed Jan 31 00:42:13 2001
雑談プログラミングMLの過去ログ生成ツールのバグについて原因がわかった。

症状:Message-Idが出力されないメールがある。
原因:Message-IdとMessage-IDのようにヘッダの書き方が2種類ある。

ヒマがあったらなおそう。

// 34   日本語でTomcat   Wed Jan 31 00:01:50 2001
The Ja-Jakarta Project
http://www.ingrid.org/jajakarta/index.html

Servlet.Good-Day.Net
http://servlet.good-day.net/


// 33   DecimalFormat   Tue Jan 30 22:09:20 2001
import java.lang.*;
import java.util.*;
import java.io.*;

import java.text.*;


public class format{

	public static void main(String[] args){
		new format();
	}

	public format(){

		long val = 12345;
		System.out.println("" + (new DecimalFormat("000000")).format( val ));
		System.out.println("" + (new DecimalFormat("######")).format( val ));
		System.out.println("" + (new DecimalFormat("000,000")).format( val ));
		System.out.println("" + (new DecimalFormat("###,###")).format( val ));
	}
}



// 32   コーディングスタイルにおける括弧の書き方いろいろ   Tue Jan 30 01:19:19 2001
http://www.tuxedo.org/~esr/jargon/html/entry/indent-style.html

--- CといえばK&R --- UNIXのカーネルもこのスタイル?
if (<cond>) {
        <body>
}

--- Eric Allman --- BSDのツールを書いたからBSDスタイルとも呼ばれる?
if (<cond>)
{
        <body>
}

--- Whitesmiths C --- 八つのスペースが基本?
if (<cond>)
        {
        <body>
        }

--- GNU EMACS and the Free Software Foundation --- それって Richard Stallman スタイル?
if (<cond>)
  {
    <body>
  }


// 31   Together   Mon Jan 29 18:52:22 2001
http://www.togethersoft.com/
JavaからUMLを!

// 30   Java Decompiler   Mon Jan 29 13:49:38 2001
http://matsu-www.is.titech.ac.jp/~maruyama/java-related.html
Java関係のリンクたち(デコンパイラとかネイティブコンパイラとかツール系?)

http://www.javacats.com/JP/articles/decompiler1.html
http://www.javacats.com/JP/articles/decompiler2.html
Java逆コンパイル技術とリバース・エンジニアリング

// 29   電子署名付きアプレット(SDK1.2版)   Mon Jan 29 13:35:29 2001
http://www.dmz.hitachi-sk.co.jp/Java/Tech/security/12signedapplet.html

// 28   Java Experiment Room   Mon Jan 29 12:42:33 2001
http://www02.so-net.ne.jp/~kikuta/

// 27   JDBCガイド: 使用の開始   Mon Jan 29 12:42:09 2001
http://java.sun.com/products/jdk/1.2/ja/docs/ja/guide/jdbc/getstart/introTOC.doc.html

// 26   PerlでCOOKIEを   Sun Jan 28 02:28:18 2001
$ENV{'HTTP_COOKIE'}
環境変数から拾う。

// 25   PerlでCOOKIEを   Sun Jan 28 02:27:21 2001
Cookieでは、=や;などの記号や日本語はエンコードして記録して、読むときにデコードする。

エンコード
$_ =~ s/(\W)/sprintf("%%%02X", unpack("C", $_))/eg;

デコード
$_ =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($_))/eg;


// 24   1   Sun Jan 28 02:17:43 2001
2

// 23   Java言語規定   Sat Jan 27 00:53:20 2001
http://www.y-adagio.com/public/standards/tr_javalang/
ん?SUNにもあるよな、たぶん。

// 22   NJK   Fri Jan 26 12:39:51 2001
http://www.njk.co.jp/
オブジェクト指向のページとか

// 21   フォームから入力した情報を取得するサーブレット   Fri Jan 26 12:27:38 2001
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import java.util.*;


public class Mojibake extends HttpServlet
{
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{


	try
	{
		String key;
		String val;
		String val2;

		response.setContentType( "text/html" );
		PrintWriter out = response.getWriter();
		out.println("<html><body>");

		Enumeration enum = request.getParameterNames();
		while ( enum.hasMoreElements() ) {
			key = (String)enum.nextElement();
			val = request.getParameter(key);
			val2 = new String(val.getBytes("8859_1"),"Shift_JIS");
			System.out.println("*** " + key + " : " + val  + " : " + val2 + " ***");
			out.println("*** " + key + " : " + val  + " : " + val2 + " ***<br>");
		}

		out.println("</body></html>");
		out.close();
	}

	catch ( Exception e ) { e.printStackTrace(); }

}


// 20   emu?   Fri Jan 26 12:26:16 2001
http://smy.billyjr.com/indexj.htm
http://smy.billyjr.com/smygbe.htm
http://www.snes9x.com/
http://www.emuhq.com/corn/
http://www.nemu.com/
http://www.emulatronia.com/secciones/frames/frames-gamewatch.htm
http://www.geocities.co.jp/Playtown-Spade/3163/
http://www.dtmnt.com/
http://chasms.midgetrebellion.com/
http://www5.airnet.ne.jp/phantasy/saturn/main.html
http://emulatronia.com:82/dcemu.htm
http://www.komkon.org/fms/MG/
http://home5.swipnet.se/%7Ew-50884/emulator/rage.htm
http://www.dysfunction.demon.co.uk/
http://www02.so-net.ne.jp/~m-moriya/pc6001/
http://home.highway.ne.jp/soltin/pc88win.html
http://www.ksky.ne.jp/~yamama/emul/index.htm
http://www.classicgaming.com/mame32/


// 19   vi   Thu Jan 25 19:12:36 2001
http://infofarm.cc.affrc.go.jp/~kadosawa/unix/unix_vi_f.htm
unixコマンドメモ vi, view, vedit スクリーン指向ディスプレイエディタ


// 18   UNIX データベース入門   Thu Jan 25 15:39:46 2001
http://www.wakhok.ac.jp/DB/DB.html

UNIXに限らず便利。SQLのわかりやすい説明。

// 17   Google で 「Tomcat Windows」 検索   Thu Jan 25 12:45:12 2001
ApacheとTomcatによるServlet, JSP実行環境の構築(Windows版)
http://chibita.virtualave.net/java/tomcatinst.htm

JSP Tags. "Tiny Samples"
http://www02.u-page.so-net.ne.jp/qa2/masa_o/tsjsp/index.htm

Tomcatを他のWebサーバに組み込む手順
http://www.dmz.hitachi-sk.co.jp/Java/Tech/servlet/tomcat.html

Useful Documents
http://www.slayers.nu/~kumasaka/Gyoumu/index.html

Tomcat 3.1 を使ってみる
http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/engines/tomcat3.1.html

Hey! Java Programming!
http://www.mars.dti.ne.jp/~torao/program/servlet/tomcat.html

Tomcatのドキュメント
http://www.ingrid.org/jajakarta/tomcat/tomcat-3.2/doc-ja/

ApacheでTomcatする
http://www.itnavi.com/apaTomcat.htm

Java サーブレットエンジンについて
http://www.cityfujisawa.ne.jp/~shino/IT/Memo/tomcat.html

Tomcat の インストール
http://web4.freecom.ne.jp/~wtar/j2ee/tomcat/

Linux に Java Server環境をインストールする
http://tokiori.homeip.net/linux_memo.html


// 16   タクシーに乗るハメになったエラー(早く帰りたいよー)   Thu Jan 25 12:22:23 2001
weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ MBuf used after wri
teTo() called ]
        at weblogic.socket.MBuf.checkNotWritten(MBuf.java, Compiled Code)
        at weblogic.socket.MBuf.getHeader(MBuf.java:213)
        at weblogic.rjvm.ConnectionManagerLocal.sendMsg(LocalRJVM.java, Compiled
 Code)
        at weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:474)
        at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSendRaw(MsgAbbrevOutputSt
ream.java:155)
        at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSend(MsgAbbrevOutputStrea
m.java:163)
        at weblogic.rjvm.MsgAbbrevOutputStream.sendRecv(MsgAbbrevOutputStream.ja
va:186)
        at weblogic.common.internal.BootServicesStub.findOrCreateClientContext(B
ootServicesStub.java:125)
        at weblogic.common.T3Client.connect(T3Client.java:384)
        at weblogic.jdbcbase.t3.Driver.connect(Driver.java:127)


// 15   UNICODEは便利なのか大変なのか(両方!)   Thu Jan 25 12:21:33 2001
http://www.unicode.org/Public/UNIDATA/

「、」 U+3001
「。」 U+3002
UnicodeBlock.HIRAGANA以外で。

「ガ」U+30AC
「ガ」U+30AB + U+3099

// 14   Java   Thu Jan 25 12:20:56 2001
以下は、数値と見なされる Unicode 文字の範囲です。 
0x0030 〜 0x0039 ISO-LATIN-1 数字 ('0' 〜 '9') 
0x0660 〜 0x0669 アラビア数字 
0x06F0 〜 0x06F9 拡張アラビア数字 
0x0966 〜 0x096F デヴァーナーガリ文字 
0x09E6 〜 0x09EF ベンガル数字 
0x0A66 〜 0x0A6F グルカ数字 
0x0AE6 〜 0x0AEF グジャラト数字 
0x0B66 〜 0x0B6F オーリヤ数字 
0x0BE7 〜 0x0BEF タミル文字 
0x0C66 〜 0x0C6F テルグ数字 
0x0CE6 〜 0x0CEF カンナダ数字 
0x0D66 〜 0x0D6F マラヤーラム数字 
0x0E50 〜 0x0E59 タイ数字 
0x0ED0 〜 0x0ED9 ラオス数字 
0x0F20 〜 0x0F29 チベット数字 
0xFF10 〜 0xFF19 すべての数字 


// 13   UNICODE   Thu Jan 25 12:20:15 2001
# Start Code; End Code; Block Name
0000; 007F; Basic Latin
0080; 00FF; Latin-1 Supplement
0100; 017F; Latin Extended-A
0180; 024F; Latin Extended-B
0250; 02AF; IPA Extensions
02B0; 02FF; Spacing Modifier Letters
0300; 036F; Combining Diacritical Marks
0370; 03FF; Greek
0400; 04FF; Cyrillic
0530; 058F; Armenian
0590; 05FF; Hebrew
0600; 06FF; Arabic
0700; 074F; Syriac  
0780; 07BF; Thaana
0900; 097F; Devanagari
0980; 09FF; Bengali
0A00; 0A7F; Gurmukhi
0A80; 0AFF; Gujarati
0B00; 0B7F; Oriya
0B80; 0BFF; Tamil
0C00; 0C7F; Telugu
0C80; 0CFF; Kannada
0D00; 0D7F; Malayalam
0D80; 0DFF; Sinhala
0E00; 0E7F; Thai
0E80; 0EFF; Lao
0F00; 0FFF; Tibetan
1000; 109F; Myanmar 
10A0; 10FF; Georgian
1100; 11FF; Hangul Jamo
1200; 137F; Ethiopic
13A0; 13FF; Cherokee
1400; 167F; Unified Canadian Aboriginal Syllabics
1680; 169F; Ogham
16A0; 16FF; Runic
1780; 17FF; Khmer
1800; 18AF; Mongolian
1E00; 1EFF; Latin Extended Additional
1F00; 1FFF; Greek Extended
2000; 206F; General Punctuation
2070; 209F; Superscripts and Subscripts
20A0; 20CF; Currency Symbols
20D0; 20FF; Combining Marks for Symbols
2100; 214F; Letterlike Symbols
2150; 218F; Number Forms
2190; 21FF; Arrows
2200; 22FF; Mathematical Operators
2300; 23FF; Miscellaneous Technical
2400; 243F; Control Pictures
2440; 245F; Optical Character Recognition
2460; 24FF; Enclosed Alphanumerics
2500; 257F; Box Drawing
2580; 259F; Block Elements
25A0; 25FF; Geometric Shapes
2600; 26FF; Miscellaneous Symbols
2700; 27BF; Dingbats
2800; 28FF; Braille Patterns
2E80; 2EFF; CJK Radicals Supplement
2F00; 2FDF; Kangxi Radicals
2FF0; 2FFF; Ideographic Description Characters
3000; 303F; CJK Symbols and Punctuation
3040; 309F; Hiragana
30A0; 30FF; Katakana
3100; 312F; Bopomofo
3130; 318F; Hangul Compatibility Jamo
3190; 319F; Kanbun
31A0; 31BF; Bopomofo Extended
3200; 32FF; Enclosed CJK Letters and Months
3300; 33FF; CJK Compatibility
3400; 4DB5; CJK Unified Ideographs Extension A
4E00; 9FFF; CJK Unified Ideographs
A000; A48F; Yi Syllables
A490; A4CF; Yi Radicals
AC00; D7A3; Hangul Syllables
D800; DB7F; High Surrogates
DB80; DBFF; High Private Use Surrogates
DC00; DFFF; Low Surrogates
E000; F8FF; Private Use
F900; FAFF; CJK Compatibility Ideographs
FB00; FB4F; Alphabetic Presentation Forms
FB50; FDFF; Arabic Presentation Forms-A
FE20; FE2F; Combining Half Marks
FE30; FE4F; CJK Compatibility Forms
FE50; FE6F; Small Form Variants
FE70; FEFE; Arabic Presentation Forms-B
FEFF; FEFF; Specials
FF00; FFEF; Halfwidth and Fullwidth Forms
FFF0; FFFD; Specials


// 12   アナリシスパターン   Thu Jan 25 01:01:15 2001
http://www.awlonline.com/cseng/
Martin Fowler

// 11   NI-Lab.   Wed Jan 24 23:51:47 2001
ObjectFactory
http://www.post.self.ne.jp/~gougi/
Enhydra, CORBA, Java, XML など。


// 10   FILE UPLOAD   Wed Jan 24 23:39:13 2001
<form action="upload" METHOD="post" enctype="multipart/form-data">
<input name="filenmae" type="file">
</form>


// 9   GNU Emacs Lisp Reference Manual   Wed Jan 24 20:23:07 2001
http://flex.ee.uec.ac.jp/texi/eljman/eljman_toc.html

// 8   New Java 2DTM Features in the JavaTM 2 SDK, v1.4   Wed Jan 24 16:42:09 2001
http://java.sun.com/products/jfc/tsc/articles/merlin/2d.html

// 7   WebLogicのメモページ   Wed Jan 24 02:31:42 2001
http://www.monyo.com/~yamaguch/wl/

// 6   Ruby   Wed Jan 24 02:29:44 2001
print "produceD bY NI-Lab.\n";


// 5   Perl   Wed Jan 24 02:29:33 2001
print "produceD bY NI-Lab.\n";

// 4   NI-Lab.   Wed Jan 24 02:27:49 2001
さぁ、これでたっぷりメモを書き込めるぞ。

// 3   NI-Lab.,   Wed Jan 24 02:27:16 2001
なぜか1-2の書き込み時刻がおかしい。
たぶん、自分のマシン上とfreewebのサーバの違いだろう。

// 2   NI-Lab.   Wed Jan 24 02:24:09 2001
include <stdio.h>

void main() {
	printf("produceD bY NI-Lab.");
}

Cのコードはわからない。

// 1   NI-Lab.   Wed Jan 24 02:28:24 2001
タブを含んだコードも書けるように配慮した掲示板です。
しかし、このフィールドでタブを打つとカーソルが移動してしまう……
エディタで書いたあとに貼りつけるのがよさそうだ。

public class Nilab {
	public static void main(String args[]) [
		System.out.println("produceD bY NI-Lab.\n");
	}
}


nibbs 1.10 produceD bY NI-Lab.