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

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

0

HTMLからサーブレットへの情報の渡し方

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

public class PostParam01 extends HttpServlet {
  public void doGet(HttpServletRequest req,   HttpServletResponse res )throws      IOException, ServletException {
        
res.setContentType("text/plain;charset=Shift-JS");
PrintWriter out = res.getWriter();
String id = req.getParameter("id");
String name = req.getParameter("name");
out.println("id :" + id);
out.println("name :" + name);
    }
}

HTMLです↓
<html>
<head>
<title>formからのリクエスト</title>
<meta http-equiv="Content-Type" content="text/html;charset=Shift-JS"/>
</head>
<body>
<h1>formからのリクエスト</h1>
<form action="/jwmapp/servlet/PostParam01" method="post">
id<input type="text" name="id" size="5"/>
name<input type="text" name="name" size="20"/><br/>
<br/>
<input type="submit" value="実行"/>
</form>
</body>
</html>

フォームを作って、情報を送信したところ
type ステータスレポート

メッセージ HTTPのPOSTメソッドは、このURLではサポートされていません。

説明 The specified HTTP method is not allowed for the requested resource (HTTPのPOSTメソッドは、このURLではサポートされていません。)
という表示がされました。どこか間違っているのでしょうか?

7

回答

85442

閲覧

7件の回答

評価

0

ちゃんと追っていないけど・・

まずContent Typeが間違っているとサーブレットはどう解釈するのだろうか?
と思ったりします

またどうなるのかは判らないですけどPOSTしていてdoGetとは?
いいのかな・・

評価

0

doPostメソッドで受ける。
getParameterはキャストしないといけません。
setCharacterEncodingも指定しといた方がいいよ。

評価

0

アドバイスして頂いたようにソース直してみてフォームから実行したら、

type ??????

????? 

?? The server encountered an internal error () that prevented it from fulfilling this request.

?? 

java.io.UnsupportedEncodingException: Shift-JS
    sun.io.Converters.getConverterClass(Unknown Source)
    sun.io.Converters.newConverter(Unknown Source)
    sun.io.CharToByteConverter.getConverter(Unknown Source)
    sun.nio.cs.StreamEncoder$ConverterSE.<init>(Unknown Source)
    sun.nio.cs.StreamEncoder$ConverterSE.<init>(Unknown Source)
    sun.nio.cs.StreamEncoder.forOutputStreamWriter(Unknown Source)
    java.io.OutputStreamWriter.<init>(Unknown Source)
    org.apache.tomcat.util.buf.WriteConvertor.<init>(C2BConverter.java:167)
    org.apache.tomcat.util.buf.C2BConverter.<init>(C2BConverter.java:46)
    org.apache.catalina.connector.OutputBuffer.setConverter(OutputBuffer.java:579)
    org.apache.catalina.connector.OutputBuffer.checkConverter(OutputBuffer.java:545)
    org.apache.catalina.connector.Response.getWriter(Response.java:614)
    org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
    PostParam01.doPost(PostParam01.java:9)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
    org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:169)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


?? ?????????????????Apache Tomcat/5.5.9????????????

という画面になってしまいました・・・これは一体
何なんでしょう??

評価

0

うーん・・

いちお指摘済みのはず。。

評価

0

すべてソースは治してんですが・・・どうしてでしょう?
後、考えられるものとしてどんなことがありますか?

評価

0

>まずContent Typeが間違っているとサーブレットはどう解釈するのだろうか?
というところ

>java.io.UnsupportedEncodingException: Shift-JS
がそのままそれを示しているのではないかと思うんですけど・・

評価

0

>まあさん
ありがとうございます!!解決できました!!

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