簡體   English   中英

對Spring MVC Controller的Java HTTP POST請求

[英]Java HTTP POST request to Spring MVC Controller

我有一個具有以下方法定義的Spring MVC控制器:

@RequestMapping(value="SaveReading.htm",method=RequestMethod.POST)
protected void saveReading(Reading reading) throws ServletException, IOException {
    logger.debug("Received reading for id: " + reading.getMonitorId());
}

我需要通過產生POST HTTP請求將數據從Java程序發送到此控制器。

我嘗試了以下代碼:

try {

    url = new URL("http://localhost:8080/WebApp/SaveReading.htm");
} catch (MalformedURLException e) {
    logger.error("Malformed URL ", e);
    return;
}
try {
    conn = (HttpURLConnection)url.openConnection();
    logger.debug("Opened Connection. " + conn.getURL());
    conn.setDoOutput(true);
    conn.setUseCaches(false);
    conn.setRequestMethod("POST");
    conn.connect();

    writer = new OutputStreamWriter(conn.getOutputStream());        
} catch (IOException e) {
    logger.error("Error setting up URL connection: ", e);
}

String data = "";
try {
    data = URLEncoder.encode("monitorId", "UTF-8") + "=" + URLEncoder.encode(id, "UTF-8");
    data += "&" + URLEncoder.encode("timeStamp", "UTF-8") + "=" + URLEncoder.encode(""+new Date().getTime(), "UTF-8");
} catch (UnsupportedEncodingException e) {
    logger.error("Encoding problem ", e);
}
System.out.println("Sending HTTP message: \n" + data);
// Send data
try {
    writer.write(data);
    writer.flush();

Java代碼無法到達控制器。 假設我的Web項目是“ WebApp”,我使用的URL是否正確?

  • web.xml

     <display-name>Web Application</display-name> <servlet> <servlet-name>ReadingsServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ReadingsServlet</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/ReadingsServlet-servlet.xml </param-value> </context-param> 
  • ReadingsServlet-servlet.xml

     <context:annotation-config /> <context:component-scan base-package="com.myapp.familycare"/> <context:component-scan base-package="miscillaneous.property_placeholder" /> <mvc:annotation-driven /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> 

現在可以正常工作。 我不確定以前是什么引起了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM