第四篇:用IntelliJ IDEA 搭建基於jersey的RESTful api


編譯器:Intellij IDEA
系統環境: MAC OS
相關技術:Maven、tomcat 7、jdk8

1.創建項目

首先創建一個web Application項目(這里我們打算用maven引入Jersey的相關jar包,所以不用直接創建restful項目,因為 restful項目會把Jersey相關jar包下載到工程lib文件夾下)

創建完項目后我們再用Add Frameworks Support把maven項目的支持引入。

到此為止我們就已經成功創建了一個新的web項目了,可以愉快地對其coding改造了

2.關鍵代碼

2.1環境配置

修改pom.xml, 引入Jersey相關jar包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>pers.marscheng.restful</groupId>
    <artifactId>restfulDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.22.2</version>
        </dependency>
    </dependencies>

</project>

修改web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
	<servlet>
		<servlet-name>JAX-RS Servlet</servlet-name>
		<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
		<init-param>
			<param-name>jersey.config.server.provider.packages</param-name>
			<param-value>pers.marscheng.restful</param-value>
		</init-param>

		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>JAX-RS Servlet</servlet-name>
		<url-pattern>/api/*</url-pattern>
	</servlet-mapping>
</web-app>

其中pers.marscheng.restful對應放置restful demo代碼的包,/api/對應的是restful api映射的地址,一般我們不把這個地址設為/*,因為這樣會覆蓋默認的index地址,除非你自己重新定義了首頁地址。

2.2 執行代碼

配置完環境之后我們就可以寫一個簡單的restful api了。在pers.marscheng.restful下新建Hello.java文件。

package pers.marscheng.restful;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
 * restful測試類
 *
 * @author marscheng
 * @create 2017-07-26 下午3:19
 */
@Path("hello")
public class Hello {

	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String sayHello(){
		return "Hello,I am text!";
	}

	
	@POST
	@Produces(MediaType.TEXT_XML)
	public String sayXMLHello() {
		return "<?xml version=\"1.0\"?>" + "<hello> Hello,I am xml!" + "</hello>";
	}
	
	@GET
	@Produces(MediaType.TEXT_HTML)
	public String sayHtmlHello() {
		return "<html> " + "<title>" + "Hello Jersey" + "</title>"
				+ "<body><h1>" + "Hello,I am html!" + "</body></h1>" + "</html> ";
	}


}

  1. @PATH對應的是我們要配置的restful api的子路勁,比如前面我們配置的是/api/*,則用戶訪問該API的路徑就是https//:ip:port/api/hello
  2. @GET @POST對應的是用戶請求資源用的HTTP方法
  3. @Produces表示返回的數據類型,如MediaType.TEXT_PLAIN對應返回文本類型

3.啟動項目

將maven引入的jar包放到lib文件夾下(如果你直接通過maven把項目打成war包放到Tomcat下,這步可以不用)

在tomcat中引入項目,啟動

用網頁進行get請求

用postman直接進行get請求

用postman進行post請求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM