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

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

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

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

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


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

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

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

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

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

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

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり