Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

formでのaction

JSP内でform属性によりクラスファイル(サーブレット)にデータを渡し
たいのですがHTTPステータス404のエラーが出てしまいます。

●ファイル構成
tomcat
 +weapps
  ++e-Learning
   +++Manager
     +++admin.jsp←form属性記入
   +++WEB-INF
     +++src
      ++++e_learning
       +++++UserArticle

admin.jspでは<form name=frm1 action="UserArticle" 
method=POST">としています。また、web.xmlでservlet設定を
<!-- サーブレット名 -->
    <servlet>
        <servlet-name>UserArticle</servlet-name>
        <servlet-class>e_learning.UserArticle</servlet-class>
    </servlet>
    <!-- URLマッピング -->
    <servlet-name>UserArticle</servlet-name>
    <url-pattern>e-Learning/Manager/UserArticle</url-
pattern>

action=で相対パスを書いているはずなのですが、上手く動作してませ
ん。actionでクラスを呼べていないのが原因かと思いますが、上記の現
状からの解決法をご教授ください。宜しくお願いします。

2

回答

78777

閲覧

2件の回答

評価

0

基本的なことはこちらを見ていただくとして
http://www.javaroad.jp/opensource/js_tomcat2.htm
気が付いたことが何点かあります。

1.WEB-INF下にclassesディレクトリが無いようですが、書いていないだけでしょうか?
サーブレットのクラスはWEB-INF/classes下に配備します。
なのでWEB-INF/classes/e_learning/UserArticle.class
と言う構成になります。

2.URLマッピングのタグに<servlet-mapping>がありませんが
<servlet-mapping>
内容
</servlet-mapping>
のように書かなければいけません。

3.action="UserArticle"と<url-pattern>が合っていません。

具体的な内容は、先に書いたリンクを見てもらえれば解決できると思いますので、がんばってください。

評価

0

tamaさん有り難うございます。

>>1.
WEB-INF/classes/e_learning/UserArticle.class構成になっていま
す。
記入漏れでしたすみません。

>>2.
おっしゃる通りで<servlet-mapping>を書いていませんでした。

>>3.
<url-pattern>の知識不足で、<servlet-mapping>〜</servlet-
mapping>であるURLにリクエストがあったときにどのサーブレットを
呼び出すか指定し、url-patternにそのサーブレットを呼び出す場合の
URLを指定するんですね。

これを理解してaction=""UserArticle"
<url-pattern>/Manager/UseArticle</url-pattern>としたら解決し
ました。有り難うございます。

また、何かありましたら宜しくお願いします。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。