本笔记是记录将Jersey框架集成到SSM_curd demo中,实现使用Jersey框架对增删改查的接口进行RESTful风格的封装。
初始项目结构:
1. 首先添加Jersey框架依赖的jar包:
这里用的是Jersey2.21版本
(1)Jersey依赖
(2)Jersey+Spring的整合包
(3)Spring核心依赖
2. 在src下新建resource目录,并新建StudentResource类
来实现对增删改查接口进行封装。
StudentResource的REST AP实现先空着。
PS:资源类就是一个简单的Java对象(POJO),可以实现任何接口。
3. 新建一个Jersey 资源配置类RestApplication
该类需要继承与ResourceConfig类,然后再其构造方法中
注册资源服务类
注册特性处理类
注册过滤器类
注册异常映射类
.....
4.在web.xml文件中配置Jersey RestApplication servlet位置
<!-- Jersey Servlet配置-->
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.cmss.RestApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
5.在RestApplication类中实现REST API
常用注解含义:
URI相关:@Path:相对的URI path;同时可以在该注释中嵌入变量.例如:@Path("/update/{id}")
HTTP请求相关:
@POST:表明被注释的方法用于处理HTTP Post请求
@GET:表明被注释的方法用于处理HTTP Get请求
@PUT:表明被注释的方法用于处理HTTP Put请求
@DELETE:表明被注释的方法用于处理HTTP Delete请求
@PathParam: 该注释一种从URI路径参数中提取参数,使其用于资源方法。
输入相关:@Consumes:该注释用于指定客户端发送的资源可以使用的表示的MIME媒体类型。
输出相关:@Produces:表明被注释的方法会产生MIME媒体类型的内容。
MIME Media类型有:text/plain
6.将项目部署到Tomcat服务器,并使用Postman对封装接口进行测试
遇到的错误:
JSON显示出现中文乱码
<!-- 解决Jersey中文显示乱码问题-->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<servlet-name>jersey-servlet</servlet-name>
</filter-mapping>
参考文档:
https://blog.csdn.net/top_code/article/details/51973503