engineerのブログ -2ページ目

seasar web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID"
version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>test</display-name>

<filter>
<filter-name>setCharacterEncoding</filter-name>
<filter-class>jp.test.filter.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>MS932</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>s2filter</filter-name>
<filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>s2filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>s2container</servlet-name>
<servlet-class>org.seasar.struts.servlet.S2StrutsServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.seasar.struts.servlet.S2ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/config/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/config/toolbox.xml</param-value>
</init-param>
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/config/velocity-user.properties</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>

<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>s2container</servlet-name>
<url-pattern>/s2container</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- Struts Tag Library Descriptors -->
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>

</jsp-config>

<error-page>
<error-code>400</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>402</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/jsp/notFoundError.jsp</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/WEB-INF/jsp/error.jsp</location>
</error-page>

</web-app>

抽象クラス

抽象クラス

インスタンスを生成できないクラス



では何に使うか?

型として使用することができる。(変数として使う)



absract public class Animal



これはAnimal型を使用して子クラスのインスタンスを生成する。





Animal animal = 子クラスのインスタンス



     ↑Animal オブジェクト



-

abstarctはメソッドにも使用できる



abstract public void walk();



抽象メソッドが存在する場合、必ず抽象クラスになる。

よって子クラスで必ずオーバーライドしなくてはいけない。



つまり、オーバーライドを強制できる



Animal animal にabstract public walkがないと

子クラスのwalkメソッドを呼び出せない。




メソッドのオーバーライド

◎メソッドのオーバーライド

異なる引数があるものはオーバーロード





同じシグニチャのメソッドを定義

void walk()



戻り型 メソッド名 引数の並び(型と個数が同じ)





アクセス修飾子



名前 クラス フィールド・メソッド

private × クラス内からしか見えない

なし     同じパッケージ内

protected × 子クラス

public    どこからでも



継承すると

Animal animal = new Dog();

が使用できる



Animal animal = ○○



これは、Animalインスタンスができているとは限らない



Animal animal = new Dogや new Cat



animal.walk



メソッドの透過的な呼び出し

とは↓

下位レベルを意識しなくてよい







Animal オブジェクトと言われたら



 Animalインスタンスかも

 Dogインスタンスかも

 Catインスタンスかも