javacでのサーブレットのコンパイル
c:\Tomcat6_0_16\webapps\anttest>javac -d WEB-INF/classes -cp .;"C:\Tomcat6_0_16\lib/servlet-api.jar" src/HelloWorldServlet.java
Antでのコンパイル
-
Antのセットアップ
-
ダウンロード
http://ant.apache.org/bindownload.cgi
-
PATHを通す
ANT_HOMEを設定し、PATHに%ANT_HOME%\binを追加する。
-
プロジェクトルートにbuild.xmlを置く
<?xml version="1.0" encoding="Shift_JIS"?>
<project default="compile">
<!-- ソースファイルがあるディレクトリ -->
<property name="src.dir" value="src" />
<!-- クラスファイルを出力するディレクトリ -->
<property name="classes.dir" value="WEB-INF/classes" />
<!-- ライブラリのあるディレクトリ -->
<property name="lib.dir" value="../../lib" />
<path id="classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- コンパイル -->
<target name="compile">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" />
</target>
</project>
-
ant実行
c:\Tomcat6_0_16\webapps\anttest>ant
Buildfile: c:\Tomcat6_0_16\webapps\anttest\build.xml
compile:
[javac] c:\Tomcat6_0_16\webapps\anttest\build.xml:24: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to c:\Tomcat6_0_16\webapps\anttest\WEB-INF\classes
BUILD SUCCESSFUL
Total time: 1 second
javaでAPIを作成する
-
以下の様にjspを作成してiniの様な「名前」=「値」で値を返しえあげる。
<%@ page language="java" contentType="text/plain; charset=Windows-31J" %>
return_code=<%=request.getAttribute("return_code")%>
error_reason=<%=request.getAttribute("error_reason")%>
open_date=<%=request.getAttribute("open_date")%>
-
SYSTEMERROR.txt
return_code=9
error_reason=Exception_occured
-
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>hogeServlet</servlet-name>
<servlet-class>com.mkeka.hogeServlet</servlet-class>
<init-param>
<param-name>SQLSTR</param-name>
<param-value>
SELECT * FROM hogeTable WHERE FLG = '01' AND USER_ID = ?
</param-value>
</init-param>
<init-param>
<init-param>
<param-name>RESPONSE_PAGE</param-name>
<param-value>RESPONSE.jsp</param-value>
</init-param>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>hogeServlet</servlet-name>
<url-pattern>/hogeServlet</url-pattern>
</servlet-mapping>
<error-page>
<error-code>500</error-code>
<location>/SYSTEMERROR.txt</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/SYSTEMERROR.txt</location>
</error-page>
</web-app>
メモ
-
javax.servletとjavax.servlet.http
javax.servlet・・・通信プロトコルに依存しない機能を提供するクラス・インターフェースから構成されている
javax.servlet.http・・・HTTPに依存する機能を提供するクラス・インターフェースから構成されている
-
log4j書き方
private static Log log = LogFactory.getLog(hogeServlet.class.getName());
commons-logging.jar
log4j-1.2.8.jar
#log4j.rootCategory=DEBUG, A1,S1,W1
log4j.rootCategory=DEBUG, A1,W1,S1
# A1 is set to be a FileAppender which outputs to File.
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=/service/log/hogeapp/app.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy MM dd HH:mm:ss} [get39info %t] %-5p: %l %m%n
log4j.appender.W1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.W1.File=/service/log/hogeapp/appwarn.log
log4j.appender.W1.Threshold=WARN
log4j.appender.W1.layout=org.apache.log4j.PatternLayout
log4j.appender.W1.layout.ConversionPattern=%d{yyyy MM dd HH:mm:ss} [get39info %t] %-5p: %l %m%n
log4j.appender.S1=org.apache.log4j.net.SyslogAppender
log4j.appender.S1.SyslogHost=localhost
log4j.appender.S1.Facility=user
log4j.appender.S1.Threshold=ERROR
log4j.appender.S1.layout=org.apache.log4j.PatternLayout
log4j.appender.S1.layout.ConversionPattern=[get39info] %-5p(APL): %l %m%n
javaでHelloWorld Ant編
Servlet API Documentation
最終更新:2010年08月06日 08:53