REST本来是一个HTTP协议的规范,但是现在收入J2EE规范中。目前J2EE7中rest的版本号是2.0,叫JAX-RS 2.0。因为tomcat作为web服务器,天生不支持JAX-RS,所以要选择一个J2EE服务器。我这里选择的是red hat公司的wildfly 8服务器。
与CDI技术不同,rest是需要配置下web.xml的。当然也可以不配置web.xml,采用注解方式。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>restdemo</display-name>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
这里的配置就是拦截所有rest开始的URL。然后就可以写rest代码了。
package restdemo;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/hello.html")
public class HelloRest {
@GET
@Produces("text/html")
public String hello(){
return "Hello world!";
}
}
在rest规范中,所有以@Path注解的类都是REST服务类。
@GET注解是限定了请求方法
@Produces注解是确定返回内容的MIME类型。
整个的开发过程就是这么简单。
在浏览器运行一下: