SQLの窓

2017年04月15日


Pleiades All in One(NEON) で、サーブレットとJSP を作成する手順

関連する記事

Pleiades All in One(NEON) で、Windows アプリを作成する手順( WindowBuilder )

Pleiades All in One(NEON) には、Tomcat8 が同梱されているので普通にすぐ使えます。(Tomcat6とTomcat7 も入ってます)

(少なくとも単独起動に必要です)

プロジェクト作成

▼ 動的 Web プロジェクトを作成します




サーブレット作成



初期のソース


import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class WebApp
 */
@WebServlet("/WebApp")
public class WebApp extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public WebApp() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}


パースペクティブを Java EE にして実行







JSP 作成



▼ ソースを以下に変更して実行
( 全て保存して http://localhost:8080/Web1/NewFile.jsp にアクセス )
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP シンプル</title>
</head>
<body>

こんにちは!

</body>
</html>

サーブレットを以下のように変更

変更後、全て保存して実行( サーバは再起動 )



import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;

@WebServlet("/WebApp")
public class WebApp extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

	public WebApp() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PageContext pageContext = _jspxFactory.getPageContext(this, request, response,
	  			null, true, 8192, true);
	JspWriter out = pageContext.getOut();


	response.setContentType("text/html; charset=UTF-8");

	out.write("<!DOCTYPE html>\r\n");
	out.write("<html>\r\n");
	out.write("<head>\r\n");
	out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n");
	out.write("<title>Insert title here</title>\r\n");
	out.write("</head>\r\n");
	out.write("<body>\r\n");
	out.write("\r\n");
	out.write("こんにちは!\r\n");
	out.write("\r\n");
	out.write("</body>\r\n");
	out.write("</html>");

	_jspxFactory.releasePageContext(pageContext);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

※ JSP がコンパイルされた結果の java ソースコードより転用しています

C:\user\java\Web170415a がワークスペースです
C:\user\java\Web170415a\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Web1\org\apache\jsp\NewFile_jsp.java
posted by lightbox at 2017-04-15 22:25 | Comment(0) | java : JSP | このブログの読者になる | 更新情報をチェックする

2011年10月09日


JSP : 実行中の .jsp と同じフォルダにあるファイルの実際のパスを取得する

jajakarta の 日本語ページドキュメントは日本語が化けるので調べるのが
面倒ですが、application.getRealPath と、request.getServletPath
で実現可能です。

// この値はCGI変数のSCRIPT_NAMEと同じ値
String SCRIPT_NAME = request.getServletPath();
out.print( SCRIPT_NAME );
out.print( "<br />" );

// 文字列分解
String[] pathResult = SCRIPT_NAME.split("/");

// 分解した文字列を必要な部分再配置
int idx = pathResult.length;
String mainPath = "";
for( int i = 1; i < pathResult.length - 1; i++ ) {
	if ( i == 1 ) {
		mainPath += pathResult[i];
	}
	else {
		mainPath += ( "/" + pathResult[i] );
	}
}

// 再配置文字列
out.print( mainPath );
out.print( "<br />" );

// 目的のフルパス
String strRealPath = application.getRealPath( mainPath + "/mydata.txt" );
out.print( strRealPath );
out.print( "<br />" );



posted by lightbox at 2011-10-09 20:09 | java : JSP | このブログの読者になる | 更新情報をチェックする

2011年10月04日


java(JSP) : テーブル名一覧と列名一覧の取得

テータベースは、ODBC 経由の Oracle です

関連する記事

VB.net : GetSchema メソッドでデータベース内のテーブル一覧と指定したテーブルの列名一覧を取得する

Microsoft の ODBC アクセスとあまり変わりはありません。
データベースの情報は接続オブジェクトに依存します
続きを読む( ソースコード )

posted by lightbox at 2011-10-04 14:12 | java : JSP | このブログの読者になる | 更新情報をチェックする

2011年10月01日


JSP : 単純なデータベースの更新( MySQL ODBC 5.1 Driver でDSNを作成しない接続 )

サンプルソースコードを使ってすぐできる実行環境は、以下で用意できます
( 含む Beans で lightbox.webapp )

Tomcat7 のインストールと、すぐ簡単にJSPアプリケーションテスト( DB アクセス、入力等 )

JSP と言っても、WEBアプリケーションには違い無いので、PHP での
$_GET にあたるものが必要になるので、Beans で実装しています。

ただ、TOMCAT + JSP では、メモリに乗ったままの状態で実行される事を
前提としているので、データベースの接続を継続するように記述してあり
ます。接続するのは最初の一度だけで、TOMCAT が終了するまで接続した
ままとなります。
※ reloadable="true" の設定ではアプリケーションを変更した場合にもリセットされます
※ マネージャよりアプリケーションを再起動した場合も同様です

MySQL に対してのアクセスなので実際は少しキャラクタセットの関係で
化ける文字が存在し、そのような時にはアプリケーションが止まってし
まう事がありました。( MySQL 側は UTF8 )

※ キャラクタセットの設定は ODBC ドライバのパラメータで行っています。
続きを読む( ソースコード )

posted by lightbox at 2011-10-01 22:37 | java : JSP | このブログの読者になる | 更新情報をチェックする

2011年09月28日


javamail 1.4.4 + JSP でとにかくメール送信

サンプルソースコードを使ってすぐできる実行環境は、以下で用意できます
( 含む Beans で lightbox.webapp )

Tomcat7 のインストールと、すぐ簡単にJSPアプリケーションテスト( DB アクセス、入力等 )

javamail は こちら(Oracle)からダウンロードします
( JDKは6以降のみで他は何もいりません )

※ 解凍して .jar を TOMCAT の lib にコピーして TOMCATを再起動します

サブミッションポートを使って、SMTP 認証を行うという前提のソースコードです。
テストは、さくらインターネットの環境で行いました。
java_mail.jsp
<!DOCTYPE html>
<html lang="ja">
<%@ page
	language="java"
	import="java.util.*"
	import="javax.mail.*"
	import="javax.mail.internet.*" 
	contentType="text/html;charset=shift_jis" %>
<jsp:useBean id="my" scope="session" class="lightbox.webapp" />

<style type="text/css">
body {
	font-family: "MS ゴシック";
}
</style>
<body>
<h1>javamail 1.4.4</h1>
<%!
// *********************************************************
// 認証用のプライベートクラス
// *********************************************************
private class SimpleAuthenticator extends Authenticator {

	private String user_string = null;
	private String pass_string = null;

	public SimpleAuthenticator( String user_s, String pass_s ) {
		super();
		user_string = user_s;
		pass_string = pass_s;
	}

	protected PasswordAuthentication getPasswordAuthentication(){
		return new PasswordAuthentication( this.user_string, this.pass_string );
	}
}
%>
<%
response.setHeader( "Expires", "Wed, 31 May 2000 14:59:58 GMT" );

// *********************************************************
// lightbox.webapp で入力データを取得
// *********************************************************
my.startApplication( application, "PAGE_01" );
my.Initialize( request );

if ( !my.get( "send" ).equals( "送信" ) ) {
%>

<form method="get">
	宛 先 <input
		type="text"
		name="to"
		value="<%= my.get("to") %>"
		style='width:340px;'
	/><br />

	差出人 <input
		type="text"
		name="from"
		value="<%= my.get("from") %>"
		style='width:340px;'
	/><br />

	題 名 <input
		type="text"
		name="subject"
		value="<%= my.get("subject") %>"
		style='width:340px;'
	/><br />

	<textarea
		name="comment"
		cols="40"
		rows="10"
		style='width:400px;'
	></textarea><br />

	<input
		type="submit"
		name="send"
		value="送信"
	/>
</form>


<%
}
else {
	out.println( "<br /><br />メール送信処理完了..." );
	out.println( "<a href=\"java_mail.jsp\">戻る</a><br />" );

	// *****************************************************
	// プロパティオブジェクトを作成
	// プロパティオブジェクトは、extends Hashtable(連想配列)
	// *****************************************************
	Properties props = new Properties();

	// *****************************************************
	// * 連想配列に送信用サーバのアドレスをセット
	// *****************************************************
	props.put("mail.smtp.host","サーバー");	// ホスト名またはIPアドレス
	props.put("mail.smtp.port","587");	// サブミッションポート
	props.put("mail.smtp.auth", "true" );	// SMTP 認証を行う

	// *****************************************************
	// メール用のセッションを作成
	// *****************************************************
	SimpleAuthenticator sa =
		new SimpleAuthenticator("ユーザ","パスワード");
	Session MailSession = 
		Session.getInstance( props, sa );

	try {

		// *****************************************************
		// メール用のメッセージオブジェクトを作成
		// *****************************************************
		MimeMessage msg = new MimeMessage(MailSession);

		// *****************************************************
		// 宛先
		// *****************************************************
		msg.setRecipients(
			Message.RecipientType.TO,
			my.get("to")
		);

		// *****************************************************
		// 送信者
		// *****************************************************
		msg.setFrom(
			new InternetAddress( my.get("from") ) 
		);

		// *****************************************************
		// 件名
		// *****************************************************
		msg.setSubject(
			MimeUtility.encodeText(
				my.get("subject"),
				"iso-2022-jp",
				"B"
			)
		);

		// *****************************************************
		// 本文
		// *****************************************************
		msg.setContent(
			my.get("comment"),
			"text/plain; charset=\"iso-2022-jp\""
		);

		// *****************************************************
		// 送信
		// *****************************************************
		Transport.send( msg );

	}
	catch (Exception e) {
		out.println("送信エラー");
	}

}

// デバッグ表示
out.println( "<br /><br /><hr />" );
out.println( my.getDebug() );
%>

</body>
</html>



posted by lightbox at 2011-09-28 23:04 | java : JSP | このブログの読者になる | 更新情報をチェックする

2011年09月26日


Tomcat7 のインストールと、すぐ簡単にJSPアプリケーションテスト( DB アクセス、入力等 )

久しぶりに Tomcat へ行ったら、7 になってました。

※ 32-bit/64-bit Windows Service Installer をダウンロードします

( 参考 : Tomcat 6.0.20 のインストール ( 2009/09/22 ) )



当時のささやかなマネージャページのバグも無くなっていましたが、デフォルトでは index ページが表示されないのはそのままです。( ディレクトリリストを表示する( C:\Tomcat5.5\conf\web.xml ) )

6 の時と比べてたいして違いは無いですが、一応画像を取りました。





たいした容量でも無いので全てインストールするのが吉です







ここだけは変更しておいたほうがいいところです。習慣ではありますがスペースを含まないディレクトリ名にして、C:\ の直下に置きます。後から中を見る時には、パスが長くなるのでこうするのがおすすめです。

あと、そのフォルダに対するのアクセス権限が何か特殊になってないかを確認しておく事も、ひょっとして起こるかもしれないトラブルには有効です





Startup Type は Manual にしましょう。Tomcat6.0 と共存できるはずですし、
そのほうが無駄なメモリも使いませんし



そして、すぐアプリケーションテストできるように

以下を利用して下さい。解凍して setup.wsf を実行するとたいていにおいて
使えるようになります( 便利に使うには MKEditor が必要です )




※ Java の SDK はインストールして、bin にはパスが通っているという前提です。

以下は Tomcat6 のインストール時に書いたものですが、今となっては
Java は Oracle になっているし、JDK は 7 が出ていました。

Java SDK のインストール


ただ、このテスト( Tomcat7 ) では、JDK6 を使用しています


関連する記事

Tomcat 5.5.x の インストール


posted by lightbox at 2011-09-26 22:24 | java : JSP | このブログの読者になる | 更新情報をチェックする

2009年09月22日


TOMCAT6 をインストールしてサンプルアプリケーションも自動登録する


Tomcat 6.x のインストールと初期設定
TOMCAT は、インストールしてしまえば、ただの Java の WEB アプリなのですが、
インストールするまでが面倒だったりします。

そこで、テキストエディタで JSP を書いてブラウザで表示するという目的の作業までの
インストール作業を最短距離にしてしまおうというわけです。

Tomcat_2

最も注意すべき問題は、ディレクトリのセキュリティなので、
VBS : バッチ処理でディレクトリ(ファイル)の権限を追加したり削除したりする方法
または、GUI で、アプリケーションディレクトリに対して、Users または
Everyone を追加登録してフルコントロール権限を与えて下さい
( 権限が無いとアプリケーションディレクトリの配置でエラーになります )

posted by lightbox at 2009-09-22 19:37 | java : JSP | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Windows
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり