0

私は HTTP リクエストを処理し、それに対して何らかの処理を行いたいと考えていました。次のことはできますか?

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/soap+xml;charset=utf-8");
    char[] cbuf = new char[10000];

    PrintWriter out = response.getWriter();

    InputStreamReader in = new InputStreamReader(request.getInputStream());

    in.read(cbuf,0,10000);

    int req_len = request.getContentLength(); 

    String inputLine = new String(cbuf);

    Spoof sp = new Spoof();

    String xml_response = sp.spoof_second(inputLine.substring(0, req_len), request.getParameter("mode"));    

    out.println(xml_response);
}

null 応答が返ってきたので、関数 spoof_second() を呼び出す方法があるかどうか知りたいと思いました。

私の web.xml は次のようになります。

<?xml version="1.0"?>
<web-app
 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"
 version="2.4">
 <servlet>
    <servlet-name>home</servlet-name>
    <servlet-class>website.web.HomeServlet</servlet-class>
 </servlet>
 <servlet-mapping>
    <servlet-name>home</servlet-name>
    <url-pattern>/home</url-pattern>
 </servlet-mapping>

[http://localhost:4321/website/home?mode=record] にリクエストを送信しているので、モードは正しく、inputLine も正しいので、印刷して確認しました。私が確信していないのは、関数呼び出しが行われていないと思うので、Eclipse でプロジェクト全体をビルドする方法です。例外は発生せず、null コンテンツの HTTP 200 OK 応答を受け取ります。

4

1 に答える 1

0

このようなリクエストを使用している場合http://localhost:4321/website/home?mode=record、これはを呼び出しますdoGet。do Postの場合、HTMLフォームを作成し、action="home"andmethod="post"とaddsubmitボタンを設定します。その送信時に、フォーム内のすべてのデータが送信されます。

于 2012-07-03T05:12:34.153 に答える