【发布时间】:2012-07-03 01:05:04
【问题描述】:
我想处理一个 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 响应,内容为空。
【问题讨论】:
-
可以调用doPost里面的方法;你还有其他问题。我敢打赌 inputLine 是空的。
-
doPost是一个方法,在另一个方法中调用的方法在 Java 中是完全有效的,所以您的问题应该是其他问题,也许如果您发布异常我们可以提供更多帮助 -
System.out xml_response。我认为这是作为 Null 值返回的。
-
没有例外,当我执行 out.println(inputLine) 时它是正确的。我在 Tomcat 上部署代码,所以我不确定如何在 Eclipse 中构建项目,以及是否必须将类文件保存在任何文件夹中。我只是在 Tomcat 管理器中重新加载部署。
-
能否把这个方法的代码贴出来
sp.spoof_second