基于REST的Jersey框架
项目中用到的control层是想做成webservice的接口的形式,所以选择的是RESTful,选择的是Jersey框架。Jersey框架本身小巧,是轻量级的框架。这里就不详细写了,只是想写出restful服务的一些优点:
首先:REST使得现在流行的互联网应用在架构设计上回归本质,能够更加充分的利用REST架构风格中的各种架构属性提升应用的品质。
其次:REST的轻量级、简单的特点更现行某些技术的复杂性形成鲜明的对比,使得构建应用或服务变得简单易行。在开发者来看,一旦理解了REST技术内容,设计应用系统或服务时,可以使架构更加接近WEB本质,充分利用已有的基础设施。对于应用系统或服务的使用者来将,REST推荐使用有意义的URI作为资源接口,系统更加容易理解,系统间交互或人机交互更加友好。
只是简单了解一下rest的现实意义,这次用到rest主要是考虑到做的项目会涉及到移动手机端,为了更好的在PC端和移动端同时表现出色,采用的是基于rest的Jersey框架。
写出一些Jersey的一些用法:方便以后再用到的时候可以参考一下。
一、Jersey中的一些常用注解
| 注解 | 作用 | 说明 |
| @GET | 查询请求,对应服务器发出的get请求 | 用于处理服务器发出的get请求 |
| @POST | 插入请求,对应处理服务器发出的post请求 | 对于表单的post方式的提交的,一定会用到post注解 |
| @PUT | 更新请求 | |
| @DELETE | 删除请求 | |
| @Path | 请求的路径 | 这里是可以传递参数,在路径中 |
| @Produce | 返回的指定的数据类型 | 可以是json,字符串,用到的最多的json格式的 |
| @Consumes | 接受的指定的数据的类型 | 这个一般可以不写,一般情况下form表单提交的数据需要注明一下 |
| @PathParam | URL中传递的参数用到这个注解注明一下 | |
| @QueryParam | url中传递的参数 | |
| @FormParam | form表单中提交的数据需要这个注解注明 | |
| @BeanParam | 通过Bean形式传递的数据的时候 | |
| @Context | 获取一些数据环境的属性 | 一般就是获取httpServletRequest和HttpServletResponse |
注解就是这些,因为比较少的原因,可能比较容易记住。注意在编写代码时候灵活使用。
二、Jersey框架的搭建以及使用
1、导入jar包,这是必不可少的
直接利用maven,增加maven支持就可以,这个比较简单,但是前提是你得有maven仓库啊!
|
<!--jersey --> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <version>2.13</version> </dependency> <!--JAXB API --> <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2.1</version> </dependency> <!-- Json支持 --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs</artifactId> <version>1.9.12</version> </dependency> <!-- 编译需要,tomcat里面有 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> |
我比较苦逼,得自己下载jar包

好像还挺多的,不过还好了。
2、设置web.xml文件,添加Jersey拦截器
|
<servlet> <servlet-name>JerseyServlet</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <!-- 配置自己的资源加载类去加载资源 --> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.cisdi.jersey.api.ApplicationAPI</param-value> </init-param> <!-- 配置默认的资源包路径,使用默认的配置类去加载资源 --> <!-- <init-param> --> <!-- <param-name>jersey.config.server.provider.packages</param-name> --> <!-- <param-value>com.cisdi.jersey.api</param-value> --> <!-- </init-param> --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JerseyServlet</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> |
3、就自己去摸索着去写你自己的项目了
总结:刚开始用Jersey框架时候总会遇到一些麻烦
1、注意区分服务器中get和post请求
get请求在传递参数的时候可以通过URL中直接传递,不过如果前台与后台的编码格式不统一会出现中文乱码的问题,需要注意。
post的请求,需要在前台通过form表单进行提交,不用担心编码格式不统一的情况。
2、注意参数返回的Json格式的数据
Json格式的数据在通过ajax方式返回到页面的时候,注意格式。其他的就是看你ajax以及Json数据的熟练度了,还有jQuery。

浙公网安备 33010602011771号