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);
}

我得到一个空响应,所以我想知道是否有办法调用函数 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 中构建整个项目,因为我认为没有进行函数调用。我没有收到任何异常,并且收到了一个 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 回答