通过JAVA的main方法直接访问spring mvc 的controller
2016-09-29 09:51
405 查看
import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import net.sf.json.JSONArray; public class HttpTest { public static void addLog() throws IOException { String url = "http://127.0.0.1:8080/server/httptest";//路径一定要对否则通不过 // 创建默认的httpClient实例. HttpClient client = new DefaultHttpClient(); // 创建httppost通过post方式访问 HttpPost httppost = new HttpPost(url); // 创建参数队列 List<Student> slist = new ArrayList<>(); Student student = new Student(); student.setId("1"); student.setName("名称ss"); slist.add(student); //将数组对象转换为json数组 JSONArray jsonArray = JSONArray.fromObject(slist); System.out.println(jsonArray.toString()); //作为参数发送到controller StringEntity entity = new StringEntity(jsonArray.toString(),"utf-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); httppost.setEntity(entity); HttpResponse response = client.execute(httppost); } public static void main(String args[]) throws ClientProtocolException, IOException{ HttpTest.addLog(); } }
//Student.java代码
public class Student {
String name;
String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
//controller代码
@Controller public class HttpTestController { @RequestMapping(value = "/httptest", method = RequestMethod.POST) @ResponseBody //将Student接收过来,此时过来的是Json数组,里面对应的属性要和Student里面的保持一致,Spring可以将JSON数组自动转换为对象数组 //但是需要在Spring里面配置才能转,否则不识别 //如何配置在下面有介绍 public void httptest(@RequestBody Student[] data) { System.out.println(data[0].getId()+"-------------"); } }
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
</bean>
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
</list>
</property>
</bean>
相关文章推荐
- 通过javamain方法访问Controller
- Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。
- 运行Java应用必须通过main()方法吗?
- 黑马程序员java高新技术篇----通过反射调用main方法
- eclipse 中的Android不能直接運行java main方法
- 运行Java应用必须通过main()方法吗?
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
- java.lang.OutOfMemoryError:Java heap space解决方法(项目中直接运行main方法,做案例,没有启动tomcat的情况)
- Java网络编程(3):为什么不能直接通过IP访问网站
- spring MVC 管理HttpClient---实现在java中直接向Controller发送请求
- spring mvc 注解访问控制器以及接收form数据的方式,包括直接接收日期类型及对象的方法
- java通过反射技术访问私有变量和方法
- Java中通过反射调用其他类中的main方法时要注意的问题
- android eclipse中的Android直接運行java main方法
- 获取文件夹大小的java类,通过类名调用方法,可直接获取文件大小
- Java在静态方法中可通过对象访问其私有方法
- eclipse 中的Android不能直接运行java main方法
- java线程同步时,不同线程通过不同方法,访问同一资源
- Java通过反射访问私有成员变量和私有方法
- HttpClient 通过域名访问请求接口出现java.net.UnknownHostException解决方法