package lightbox;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.*;
import java.io.*;
import java.sql.*;
public class webapp {
private Hashtable hashRequest = null;
public ServletContext application = null;
public String appName = "";
private String debug = "";
// *****************************************************// GNO チェック// *****************************************************
public boolean GNO( HttpServletRequest HttpRequest, String Target ) {
return request( HttpRequest, "GNO" ).equals( Target );
}
// *****************************************************// エラーチェック// *****************************************************
public boolean ERROR( ) {
return !get( "ErrMessage" ).equals( "" );
}
// *****************************************************// 入力初期化// *****************************************************
public void Initialize( HttpServletRequest request ) {
Enumeration enumData;
Enumeration enumInit;
String strName;
String strData;
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
// プログラム固有内部変数のクリア
clear();
enumData = request.getParameterNames();
while( enumData.hasMoreElements() ) {
strName = enumData.nextElement().toString();
strData = toShiftjis( request.getParameter( strName ) );
set( strName, strData );
}
enumInit = application.getInitParameterNames();
while( enumInit.hasMoreElements() ) {
strName = enumInit.nextElement().toString();
setApplication(
strName, application.getInitParameter(strName)
);
}
}
// *****************************************************// リクエスト取得// *****************************************************
public String request( HttpServletRequest request, String key ) {
if ( request.getParameter( key ) == null ) {
return "";
}
return request.getParameter( key );
}
// *****************************************************// 第2パス入力データ埋め込み// *****************************************************
public void createIndata( ) {
String key;
String key2;
int nLen;
Enumeration enumData;
enumData = hashRequest.keys();
while( enumData.hasMoreElements() ) {
key = enumData.nextElement().toString();
nLen = str_len( appName );
if ( str_substr( key, 0, nLen ).equals( appName ) ) {
if ( str_substr( key, nLen+1, 2 ).equals( "In" ) ) {
if ( !str_substr( key, nLen+1, 3 ).equals( "In2" ) ) {
key2 = str_substr( key, nLen+1, 50 );
setAdd( "PassData", "<INPUT type=hidden name=" );
setAdd( "PassData", key2 );
setAdd( "PassData", " value=\"" );
setAdd( "PassData", get( key2 ) );
setAdd( "PassData", "\">\n" );
}
}
}
}
}
// *****************************************************// デバッグ用表示 ( getProperty 用 )// *****************************************************
public String getDebug() {
String strName;
String ret = "";
String Work= "";
Set KeySet = hashRequest.keySet();
Object KeyArray[] = KeySet.toArray();
Arrays.sort( KeyArray );
ret = "<TABLE border=0 cellpadding=5 cellspacing=1 bgcolor=black>\n";
ret += "<TH bgcolor=silver>Keys</TH><TH bgcolor=silver>Values</TH>\n";
for( int i = 0 ; i < KeyArray.length; i++ ) {
strName = KeyArray[i].toString();
if ( !strName.equals( appName + "_PassData" ) ) {
ret += "<TR>";
ret += "<TD bgcolor=white>" + strName + "</TD>";
ret += "<TD bgcolor=white>"
+ hashRequest.get( strName ) + "</TD>";
ret += "</TR>\n";
}
}
ret = ret + "</TABLE>\n";
return ret;
}
public void DispData( JspWriter out )
throws java.io.IOException, ServletException {
out.println( getDebug() );
}
public void DispDebug( HttpServletRequest request, JspWriter out )
throws java.io.IOException, ServletException {
if ( request.getParameter( "mode" ) == null ) {
return;
}
if ( request.getParameter( "mode" ).equals( "debug" ) ) {
out.println( getDebug() );
}
}
// *****************************************************// オブジェクト取り出し// *****************************************************
public Object ObjectGet( Object key ) {
Object ret;
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
if ( hashRequest.get( appName + "_" + key ) != null ) {
ret = hashRequest.get( appName + "_" + key );
}
else {
ret = "";
}
return ret;
}
// *****************************************************// プログラム固有内部変数登録// *****************************************************
public void set( Object key, Object value ) {
put( key, value );
}
// *****************************************************// プログラム固有内部変数登録// *****************************************************
public void put( Object key, Object value ) {
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
hashRequest.put( appName + "_" + key, value );
}
// *****************************************************// プログラム固有内部変数に追加// *****************************************************
public void setAdd( Object key, Object value ) {
String Work = get( key );
Work += value;
put( key, Work );
}
// *****************************************************// プログラム固有内部取り出し// *****************************************************
public String get( Object key ) {
String ret;
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
if ( hashRequest.get( appName + "_" + key ) != null ) {
ret = hashRequest.get( appName + "_" + key ).toString();
}
else {
ret = "";
}
return ret;
}
// *****************************************************// アプリケーション変数登録// *****************************************************
public void setApplication( Object key, Object value ) {
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
if ( value == null ) {
hashRequest.put( "APPLICATION_" + key, "" );
}
else {
hashRequest.put( "APPLICATION_" + key, value );
}
}
// *****************************************************// アプリケーション変数取り出し// *****************************************************
public String getApplication( Object key ) {
String ret;
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
if ( hashRequest.get( "APPLICATION_" + key ) != null ) {
ret = hashRequest.get( "APPLICATION_" + key ).toString();
}
else {
ret = "";
}
return ret;
}
// *****************************************************// セッョン変数登録// *****************************************************
public void setSession( Object key, Object value ) {
putSession( key, value );
}
// *****************************************************// セッョン変数登録// *****************************************************
public void putSession( Object key, Object value ) {
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
hashRequest.put( "SESSION_" + key, value );
}
// *****************************************************// セッョン変数取り出し// *****************************************************
public String getSession( Object key ) {
String ret;
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
if ( hashRequest.get( "SESSION_" + key ) != null ) {
ret = hashRequest.get( "SESSION_" + key ).toString();
}
else {
ret = "";
}
return ret;
}
// *****************************************************// 取り出し2// *****************************************************
public String getAppData( Object key ) {
String ret;
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
if ( hashRequest.get( key ) != null ) {
ret = hashRequest.get( key ).toString();
}
else {
ret = "";
}
return ret;
}
// *****************************************************// プログラム固有内部変数のクリア// *****************************************************
public void clear( ) {
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
String strKey;
String strAppName;
Set KeySet = hashRequest.keySet();
Object KeyArray[] = KeySet.toArray();
Arrays.sort( KeyArray );
for( int i = 0 ; i < KeyArray.length; i++ ) {
strKey = KeyArray[i].toString();
try {
strAppName = strKey.substring( 0, appName.length() );
if ( strAppName.equals( appName ) ) {
hashRequest.remove( strKey );
}
}
catch ( IndexOutOfBoundsException e ) {
}
}
}
// *****************************************************// セッション内部変数のクリア// *****************************************************
public void clearSession( ) {
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
String strKey;
String strWork;
Set KeySet = hashRequest.keySet();
Object KeyArray[] = KeySet.toArray();
Arrays.sort( KeyArray );
for( int i = 0 ; i < KeyArray.length; i++ ) {
strKey = KeyArray[i].toString();
try {
strWork = strKey.substring( 0, 7 );
if ( strWork.equals( "SESSION" ) ) {
hashRequest.remove( strKey );
}
}
catch ( IndexOutOfBoundsException e ) {
}
}
}
// *****************************************************// 全ての内部変数をクリア// *****************************************************
public void clearAll( ) {
if ( hashRequest == null ) {
hashRequest = new Hashtable();
}
hashRequest.clear();
}
// *****************************************************// ServletContext 保存// *****************************************************
public void startApplication( ServletContext app, String curName ) {
application = app;
appName = curName;
application.log( "--------------------------------" );
application.log( "プログラム開始 : " + appName );
}
// *****************************************************// LOG// *****************************************************
public void log( String Message ) {
application.log( "-- " + appName + " : " + Message );
}
// *****************************************************// フォームから受け取った文字列が、ISO_8859_1でデコード// されてしまったているので、文字列を元へ戻す為に、いっ// たんISO_8859_1でエンコードし、それを再びShift_JISで// デコードする// *****************************************************
public String toShiftjis( String strData ) {
String ret;
if ( strData != null ) {
try {
ret = new String(
strData.getBytes( "ISO_8859_1" ),
"Shift_JIS"
);
}
catch( UnsupportedEncodingException e ) {
ret = "UnsupportedEncoding";
}
}
else {
ret = "";
}
return ret;
}
// *****************************************************// 文字列比較// *****************************************************
public boolean cmp( String key, String value ) {
return str_cmp( get( key ), value );
}
public boolean str_cmp( String s1, String s2 ) {
return s1.equals( s2 );
}
public boolean cmpi( String key, String value ) {
return str_cmpi( get( key ), value );
}
public boolean str_cmpi( String s1, String s2 ) {
return s1.equalsIgnoreCase( s2 );
}
// *****************************************************// 加工// *****************************************************
public String lower( String key ) {
return str_lower( get( key ) );
}
public String str_lower( String value ) {
return value.toLowerCase();
}
public String upper( String key ) {
return str_upper( get( key ) );
}
public String str_upper( String value ) {
return value.toUpperCase();
}
public int atoi( String key ) {
return str_atoi( get( key ) );
}
public int str_atoi( String value ) {
return Integer.parseInt( value );
}
public String itoa( int value ) {
return Integer.toString( value );
}
public String trim( String key ) {
return str_trim( get( key ) );
}
public String str_trim( String value ) {
return value.trim();
}
public String substr( String key, int start, int len ) {
return str_substr( get( key ), start, len );
}
public String str_substr( String value, int start, int len ) {
if ( start+len > str_len( value ) ) {
return value.substring( start, str_len( value ) );
}
else {
return value.substring( start, start+len );
}
}
public String str_replace( String value, String target, String rpl ) {
int pos = 0;
int next = 0;
String strRet = "";
next = value.indexOf( target, pos );
if ( next == -1 ) {
return value;
}
while( next != -1 ) {
strRet += value.substring( pos, next );
strRet += rpl;
pos = next + str_len( target );
next = value.indexOf( target, pos );
}
if ( pos != str_len( value ) ) {
strRet += str_substr( value, pos, str_len( value ) - pos );
}
return strRet;
}
// *****************************************************// 情報// *****************************************************
public int len( String key ) {
return str_len( get( key ) );
}
public int str_len( String value ) {
return value.length();
}
public boolean find( String key, String target ) {
return str_find( get( key ), target );
}
public boolean str_find( String value, String target ) {
int pos;
pos = value.indexOf( target );
if ( pos == -1 ) {
return false;
}
else {
return true;
}
}
public boolean find( int start, String key, String target ) {
return str_find( start, get( key ), target );
}
public boolean str_find( int start, String value, String target ) {
int pos;
pos = value.indexOf( target, start );
if ( pos == -1 ) {
return false;
}
else {
return true;
}
}
// *****************************************************// トークン// *****************************************************
public void token( String key, String value, String delim ) {
Hashtable hashToken = new Hashtable();
int nCount = 0;
StringTokenizer st = new StringTokenizer( value, delim );
while (st.hasMoreTokens()) {
hashToken.put( nCount, st.nextToken() );
nCount++;
}
set( key, hashToken );
}
public int tokencount( String key ) {
return ((Hashtable)ObjectGet( key )).size();
}
public String tokenget( String key, int nIndex ) {
if ( nIndex < 0 ) {
return null;
}
if ( nIndex >= tokencount( key ) ) {
return null;
}
return ((Hashtable)ObjectGet( key )).get( nIndex ).toString();
}
}
文字列比較
// *****************************************************// 文字列比較// *****************************************************
public boolean cmp( String key, String value ) {
return str_cmp( get( key ), value );
}
public boolean str_cmp( String s1, String s2 ) {
return s1.equals( s2 );
}
public boolean cmpi( String key, String value ) {
return str_cmpi( get( key ), value );
}
public boolean str_cmpi( String s1, String s2 ) {
return s1.equalsIgnoreCase( s2 );
}
大文字小文字変換
// *****************************************************//// *****************************************************
public String lower( String key ) {
return str_lower( get( key ) );
}
public String str_lower( String value ) {
return value.toLowerCase();
}
public String upper( String key ) {
return str_upper( get( key ) );
}
public String str_upper( String value ) {
return value.toUpperCase();
}
文字列数値変換
// *****************************************************//// *****************************************************
public int atoi( String key ) {
return str_atoi( get( key ) );
}
public int str_atoi( String value ) {
return Integer.parseInt( value );
}
public String itoa( int value ) {
return Integer.toString( value );
}
スペース削除
// *****************************************************//// *****************************************************
public String trim( String key ) {
return str_trim( get( key ) );
}
public String str_trim( String value ) {
return value.trim();
}
部分文字列
// *****************************************************//// *****************************************************
public String substr( String key, int start, int len ) {
return str_substr( get( key ), start, len );
}
public String str_substr( String value, int start, int len ) {
if ( start+len > str_len( value ) ) {
return value.substring( start, str_len( value ) );
}
else {
return value.substring( start, start+len );
}
}
文字列置換
// *****************************************************//// *****************************************************
public String str_replace( String value, String target, String rpl ) {
int pos = 0;
int next = 0;
String strRet = "";
next = value.indexOf( target, pos );
if ( next == -1 ) {
return value;
}
while( next != -1 ) {
strRet += value.substring( pos, next );
strRet += rpl;
pos = next + str_len( target );
next = value.indexOf( target, pos );
}
if ( pos != str_len( value ) ) {
strRet += str_substr( value, pos, str_len( value ) - pos );
}
return strRet;
}