- 浏览: 395751 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tyjdzr:
程序已经运行成功,第一次接触webservice,楼主领我入门 ...
java实现webservice实例 -
guosongchao:
楼主介绍的确实简单,但是对于我这种对web service一点 ...
java实现webservice实例 -
gnail_oug:
...
java实现webservice实例 -
safedriver:
楼主真心不错
java实现webservice实例 -
Partys:
Partys 写道addArticleCategories(C ...
RESTful Web Services in Spring 3(上)
首先配置WEB.XML:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- 覆盖default servlet的/, springmvc servlet将处理原来处理静态资源的映射 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法 --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <servlet-name>springmvc</servlet-name> </filter-mapping> </web-app>
然后配置springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 修改说明: 1.修改<context:component-scan以确定要加载的controller,默认为com.**.controller 2.修改class=ControllerClassNameHandlerMapping节点的pathPrefix以确定要生成的前缀 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default-autowire="byName" > <!-- 对web包中的所有controller类进行扫描,以完成Bean创建和自动依赖注入的功能 --> <context:component-scan base-package="com.**.controller" /> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/pages/" p:suffix=".jsp"/> </beans>
SERVLET类:
package com.insigma.controller; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.insigma.domain.Person; @Controller @RequestMapping("/people") public class UserInfoController { private static List list = new ArrayList<Person>(); static { Person person = new Person(); person.setId(new Long(1)); person.setName("He Jing"); person.setTitle("None"); list.add(person); Person person1 = new Person(); person1.setId(new Long(2)); person1.setName("Kevin"); person1.setTitle("Who"); list.add(person1); } @RequestMapping(method = RequestMethod.GET) public String getAll(Model model) { System.out.println("=============> Get list"); model.addAttribute("list", list); return "people"; } @RequestMapping(value = "/{id}", method = RequestMethod.GET) public String getPerson(@PathVariable("id") Long personId, Model model) { System.out.println("=========> Get one person"); Person person; List list2 = new ArrayList<Person>(); for (int i = 0; i < list.size(); i++) { person = (Person) list.get(i); if (person.getId().equals(personId)) { list2.add(person); } } model.addAttribute("list", list2); return "people"; } @RequestMapping(method = RequestMethod.POST) public String savePerson(Person person, Model model) { list.add(person); model.addAttribute("list", list); return "people"; } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) public String deletePerson(@PathVariable("id") Long personId, Model model) { Person person; for (int i = 0; i < list.size(); i++) { person = (Person) list.get(i); if (person.getId().equals(personId)) { list.remove(i); } } model.addAttribute("list", list); return "people"; } @RequestMapping(value = "/{id}", method = RequestMethod.PUT) public String updatePerson(@PathVariable("id") Long personId, Person person, Model model) { Person person2; for (int i = 0; i < list.size(); i++) { person2 = (Person) list.get(i); if (person2.getId().equals(personId)) { person2.setId(person.getId()); person2.setName(person.getName()); person2.setTitle(person.getTitle()); } } model.addAttribute("list", list); return "people"; } }
people.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <html> <body> <table> <tr> <td>People id</td> <td>People name</td> <td>People title</td> <td></td> </tr> <c:forEach items="${list}" var="people"> <tr> <td><input id="pid${people.id}" type="text" value='${people.id}'/></td> <td><input id="pna${people.id}" type="text" value='${people.name}'/></td> <td><input id="pti${people.id}" type="text" value='${people.title}'/></td> <td><input type="button" value="Update" onClick="upd('${people.id}')" /></td> <td><input type="button" value="Delete" onClick="del('${people.id}')" /></td> </tr> </c:forEach> <form id="upForm" action="/TestREST/people" method="POST"> <input id="people_id" name="id" type="hidden" /> <input id="people_name" name="name" type="hidden" /> <input id="people_title" name="title" type="hidden" /> <input type="hidden" name="_method" value="put" /> </form> <form id="delForm" action="/TestREST/people/" method="POST"><input type="hidden" name="_method" value="delete" /></form> </table> <table> <form action="/TestREST/people" method="POST"> <tr> <td>people_id:<input id="people_id" name="id" type="text" /></td> </tr> <tr> <td>people_name:<input id="people_name" name="name" type="text" /></td> </tr> <tr> <td>people_title:<input id="people_title" name="title" type="text" /></td> </tr> <tr> <td><input type="submit" value="Add" /></td> </tr> </form> </table> </body> <Script> function del(id) { document.getElementById('delForm').action = '/TestREST/people/' + id; document.getElementById('delForm').submit(); } function upd(id) { var form=document.getElementById('upForm'); form.action = '/TestREST/people/' + id; form.people_id.value=document.getElementById('pid'+id).value; form.people_name.value=document.getElementById('pna'+id).value; form.people_title.value=document.getElementById('pti'+id).value; form.submit(); } </Script> </html>
评论
6 楼
唯快不破
2010-07-05
请问楼主为什么用ui.Model,而不用ModelAndView?
5 楼
freecode
2010-06-03
参考了spring3.0 sample,我现在采用:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring MVC's Servlet -->
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite default-match-type="wildcard">
<rule>
<from>/img/**</from>
<to>/img/$1</to>
</rule>
<rule>
<from>/js/**</from>
<to>/js/$1</to>
</rule>
<rule>
<from>/ext/**</from>
<to>/ext/$1</to>
</rule>
<rule>
<from>/css/**</from>
<to>/css/$1</to>
</rule>
<rule>
<from>/index2.jsp</from>
<to>/index2.jsp</to>
</rule>
<rule>
<from>/index.jsp</from>
<to>/index.jsp</to>
</rule>
<rule>
<from>/common/**</from>
<to>/common/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring MVC's Servlet -->
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite default-match-type="wildcard">
<rule>
<from>/img/**</from>
<to>/img/$1</to>
</rule>
<rule>
<from>/js/**</from>
<to>/js/$1</to>
</rule>
<rule>
<from>/ext/**</from>
<to>/ext/$1</to>
</rule>
<rule>
<from>/css/**</from>
<to>/css/$1</to>
</rule>
<rule>
<from>/index2.jsp</from>
<to>/index2.jsp</to>
</rule>
<rule>
<from>/index.jsp</from>
<to>/index.jsp</to>
</rule>
<rule>
<from>/common/**</from>
<to>/common/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
4 楼
njthnet
2010-05-13
这个问题我已经解决了,请查看我写的这篇文章
http://www.javabloger.com/article/no-mapping-found-for-http-request-with-uri.html
http://www.javabloger.com/article/no-mapping-found-for-http-request-with-uri.html
3 楼
woxiangbo
2010-04-22
wasdju 写道
引用
Java代码
<!-- 覆盖default servlet的 /, springmvc servlet将处理原来处理静态资源的映射 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
你这样处理以后,那 图片文件和样式文件不都经过这层过滤了 ?
比如 http://www.abc.com/a.gif
http://www.abc.com/c.css
能够正常获取到吗 ?
我这里正常获取不到,麻烦详细解释一下,
我的gmail:woxiangbo@gmail.com
我这里遇到的情况和这个一样,在网上找了许多资料,也没发现更好的解决办法,我用的是spring3.0
我已经解决了这个问题,看到联系我,发我邮箱~
2 楼
wasdju
2010-04-20
引用
Java代码
<!-- 覆盖default servlet的 /, springmvc servlet将处理原来处理静态资源的映射 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
你这样处理以后,那 图片文件和样式文件不都经过这层过滤了 ?
比如 http://www.abc.com/a.gif
http://www.abc.com/c.css
能够正常获取到吗 ?
我这里正常获取不到,麻烦详细解释一下,
我的gmail:woxiangbo@gmail.com
我这里遇到的情况和这个一样,在网上找了许多资料,也没发现更好的解决办法,我用的是spring3.0
1 楼
woxiangbo
2010-04-15
<!-- 覆盖default servlet的 /, springmvc servlet将处理原来处理静态资源的映射 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
你这样处理以后,那 图片文件和样式文件不都经过这层过滤了 ?
比如 http://www.abc.com/a.gif
http://www.abc.com/c.css
能够正常获取到吗 ?
我这里正常获取不到,麻烦详细解释一下,
我的gmail:woxiangbo@gmail.com
发表评论
-
spring框架下配置lucene
2012-02-21 15:34 8586最近这的是投入不少精力在lucene身上,学到一点心得,留此文 ... -
Task Scheduling Simplifications in Spring 3.0
2011-05-19 14:47 2568简单说下基本配置: applicationContex ... -
安装ActiveMQ
2011-04-18 10:28 1186安装activeMQ前先升级jdk到6U24 cd /App ... -
ECLIPSE远程DEBUG
2011-04-18 10:07 1415在服务器上添加监听端 ... -
apache的commons-net实现FTP上传,下载文件
2011-04-15 11:25 2681不多说,上代码: package com.book.s ... -
tdd:测试驱动WEB组件
2011-04-05 21:37 1689相信大家有好多人会使用JUNIT进行单元测试了,但是在WEB开 ... -
利用GeneratedKeyHolder获得新建数据主键值
2010-12-24 14:37 7085有时候我们向DB新插入一条数据,都需要获取对应的主键值。在采用 ... -
dbunit解决XML数据中必须表首行有相应字段问题
2010-11-30 09:51 1690DbUnit设计理念: 熟悉单 ... -
jMock Cookbook 中文版
2010-04-29 10:06 2026他娘的,中文版啊!爽,坚决分享! 这里不多介绍JMOC ... -
linux下配置JDK,tomcat
2010-02-26 15:34 999转自:http://blog.csdn.net/strivem ... -
hsqldb
2010-02-25 00:02 1208import java.sql.Connection; im ... -
RESTful Web Services in Spring 3(下)
2010-02-23 13:44 5580上一篇我主要发了RESTful Web Services in ... -
RESTful Web Services in Spring 3(上)
2010-02-23 10:19 11240通过本文,我将介绍REST的特点,基本设计原则及其简单讲解,最 ... -
使用 Spring 2.5 基于注解驱动的 Spring MVC
2010-02-07 13:09 848来自地址:https://www.ibm. ... -
log4j配置
2010-01-28 14:07 1118<!-- logging begin--> ... -
java中org.apache.commons.digester类用法
2010-01-28 10:52 1469xml文件内容: <?xml version=& ... -
lucene的索引建立及查找
2010-01-27 11:03 999package lucene; import org.a ... -
java实现webservice实例
2010-01-25 18:48 131645今天下午突然想研究下WEBSERVICE,从网上找了好多实例, ... -
Hibernate批量插入的方法
2010-01-22 14:46 1455Session session = sessionFact ... -
编写你的第一个Hibernate程序
2010-01-20 11:51 1161注:转载http://www.nit-pro.org/jszl ...
相关推荐
Spring MVC REST Demo
通过spring 3.0 的mvc 实现rest功能,代码是myeclipse工程,包括依赖包
Spring3MVC-REST-HelloWorld 实例简单代码
该实例展示了 spring3 REST 的使用方法,以及同一种内容,多种不同方式展示的实现,例如同一 User 信息,可以展示为:xml,json,html三种不同的格式。可以参考这篇文章:http://badqiu.javaeye.com/blog/552806
spring mvc基础开发 最基础类 一目了然 适合初学者
使用Spring MVC创建REST服务简单例子
使用Spring MVC3基于注解的形式实现的REST小例子 部署运行: 1. 将工程导入eclipse 2. 添加tomcat属性 工程(右键)——> tomcat project——> update context 3. 启动tomcat 4. 在浏览器中输入...
运行好,调试好的spring3.0 mvc_rest_demo.war ****************************** * 运行说明 ****************************** 1. 直接部署dist/springmvc_rest_demo.war至tomcat并启动服务器 2. 访问...
毕设&课设&项目&实训基于Spring4 mvc rest+JPA2实现的物联网REST服务后台,测试的网页客户端界面设计采用了Bootstrap3设计 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、...
spring mvc 包括 实现各种结构url 和get post 方式 跳转传参 提交等实例,有注释 是初学springmvc 必备入门级 参考.只需5分钟,看了代码就能让你掌握 spring mvc rest 的各种实现
这些内容是作者个人总结所的,主要描述了如何使用Spring MVC搭建Rest服务的全过程,并提供了整个搭建过程的源码。整个搭建过程中使用了Jetty、JAXB2.0和Spring等相关框架和技术,希望下载的人能够对这些技术有所了解...
NULL 博文链接:https://ben-sin.iteye.com/blog/976372
NULL 博文链接:https://zhaoshijie.iteye.com/blog/1036041
NULL 博文链接:https://leiwuluan.iteye.com/blog/1539767
使用Spring MVC 搭建Rest服务 文档
NULL 博文链接:https://nethub2.iteye.com/blog/2333782
spring3 mvc 注解 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换、格式化、验证框架无缝集成 对静态资源处理提供特殊支持 更加灵活的控制器方法签名...
SPRING-MVC-MQ-CXF-REST_Demo
Spring3_MVC注解教程 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换、格式化、验证框架无缝集成 对静态资源处理提供特殊支持 更加灵活的控制器方法...
使用Spring MVC 构建RESTFul 风格的开发DEMO,