アットウィキロゴ

servlet

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でのコンパイル

  1. Antのセットアップ
    1. ダウンロード
      http://ant.apache.org/bindownload.cgi
      
    2. PATHを通す
      ANT_HOMEを設定し、PATHに%ANT_HOME%\binを追加する。
      
  2. プロジェクトルートに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>
    
  3. 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を作成する

  1. 以下の様に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")%>
    
  2. SYSTEMERROR.txt
    return_code=9
    error_reason=Exception_occured
    
  3. 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>
    

メモ

  1. javax.servletとjavax.servlet.http
    javax.servlet・・・通信プロトコルに依存しない機能を提供するクラス・インターフェースから構成されている
    javax.servlet.http・・・HTTPに依存する機能を提供するクラス・インターフェースから構成されている
    
  2. 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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。