今日は昨日に引き続き、フレームワーク作りに励んでみる。

昨日はカンタンなサーブレットを作るところまでやったので、
今日はそこから、Javaのクラスを実行するように作り変えてみようと思います。

MVCでいうところのControllerっぽい部分をイメージしています。


■src
①Javaコントローラ実行用サーブレット

昨日作成したサーブレットに、コントローラの実行メソッドを追加する。
-------------------------------------------------------------------------------
package jp.ne.hobby.fw.servlet;

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

import jp.ne.hobby.fw.control.HobbyControl;


public class ActionServlet extends HttpServlet {

private static String RET_JSP = "<%@ page contentType=\"text/html;charset=Shift_JIS\"%>\r\n<html>\r\n<head><titile></title></head>\r\n<body>\r\n<h1>Hobby JSP</h1>\r\n</body>\r\n</html>";

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(RET_JSP);
// コントローラの実行
executeControl();
}


/**
* 業務コントローラクラスを実行する
*/
public void executeControl(){
HobbyControl hobbyControl = new HobbyControl();
hobbyControl.execute();
}
}

-------------------------------------------------------------------------------
②Javaコントローラ(とりあえずのクラス)
package jp.ne.hobby.fw.control;

public class HobbyControl {

/**
* コントローラ
*/
public void execute(){
print("DEBUG");
}

public void print(String str){
System.out.println(str);
}

}
-------------------------------------------------------------------------------

とりあえずエラーとか出るけどデバッグで止まることは確認できた。
うん、上出来上出来w


■Result
気ままにプログラミング


次回はHobbyControlを継承した業務コントローラを実行できるようにしたい。


■はじめてのJavaフレームワーク TECHNICAL MASTER

eclipseを好んで使用していますが、コード量が多くなるにつれ、
デバッグ速度がドンドン重くなっていきますね・・・
そしてイマイチ有効な改善策が見つからない。ご存知の方、いらっしゃいましたら参考になるサイト等教えていただけると助かります。
自分でももうちょい調べてみよう。


amazon.co.jp



<追記>

手っとり早く軽くするには、eclipse.iniの下記記述↓↓↓


-vmargs
-Xms40m
-Xmx256m

を、


-vmargs
-Xms40m
-Xmx512m


などと変えてやると良いです。
(メモリの割り当てです)

開発端末だったら1024くらいにすると結構動きます。
eclipseの再起動をお忘れなく!



【Eclipse関連の書籍】
■Eclipse実践開発入門 Java・オープンソース開発・Eclipse 3.2


■標準Eclipse3.3 開発のプロが教える 完全解説 インストールからリッチクライアント開発まで


■はじめてのEclipse3 最新「統合開発環境」の、基礎からアプリケーション開発まで!

完全にその場の思いつきだけでフレームワーク作りをやってみようと思います。
まずは第一弾ってことで。


そもそもサーブレットを久しく作っていなかったので、とりあえず基本からやり直しw

文字列を出力するだけの、超カンタンなJSPを返却するサーブレットをおそるおそる書いてみた。

うん、なんとか動いたww

こんな感じでタラタラやっていこうかと思います。


■src
-------------------------------------------------------------------------------
package jp.ne.hobby.fw.servlet;

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

public class ActionServlet extends HttpServlet {

private static String RET_JSP = "<%@ page contentType=\"text/html;charset=Shift_JIS\"%>\r\n<html>\r\n<head><titile></title></head>\r\n<body>\r\n<h1>Hobby JSP</h1>\r\n</body>\r\n</html>";

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(RET_JSP);
}
}
-------------------------------------------------------------------------------

■Result


気ままにプログラミング


■参考
JSP/サーブレット〈プロへの挑戦〉 「Webアプリケーション」作りの基礎知識

下記のような仕様のマクロを作成してみた。


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

1.バッチファイル(.bat)を作成する

2.作成したバッチファイルを実行する


こんな感じ↓("WriteLine"の部分にバッチファイルの記述内容を記載します。)

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

Sub バッチファイル実行()
'
' バッチファイル実行 Macro
'

'
Const TARGET_DIR = "D:\appl\Macro"

'画面更新を非活性
Application.ScreenUpdating = False

'FileSystemObjectを生成
Dim FSO As Object

'バッチファイルを作成
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile(TARGET_DIR & "\test.bat")
.WriteLine "mkdir test"
.WriteLine "pause"
.Close
End With
Set FSO = Nothing


'バッチファイル実行
Dim d_bat As Double
d_bat = Shell(TARGET_DIR & "\test.bat", vbMaximizedFocus)


'画面更新を活性
Application.ScreenUpdating = True


End Sub

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

■実行結果


気ままにプログラミング

とりあえずできた。

応用すれば、幅が拡がりそう(^ω^)

レンタルサーバー