初始化專案
開啟IntelliJ IDEA,我的版本是Version 2018.1.4。點選Create New Project。在左側的列表中選擇Maven。然後在右側勾選Create from archetype。
然後在右側的列表中選擇org.apache.maven.archetypes:maven-archetype-webapp。點選next。
填寫GroupId和ArtifactId。GroupId定義了專案屬於哪個組織,例如,我們需要使用一個包,名字叫做fastjson,使用者在專案中返回json資料的,是阿里的開源框架,被不少企業使用,是一個極其優秀的Json框架。它的groupId是com.alibaba,artifactId是fastjson。
簡單理解一下,拿Github舉個例子。GroupId就相當於是你的使用者名稱,而ArtifactId就相當於是你的具體某個專案的名稱,也是我們當前的專案的根目錄名稱。例子如下。
GroupId: com.detectivehlh.test
ArtifactId: testDemo
點選next,下兩頁不用設定,直接點選next。此時新建專案成功,右下角會彈出一個提示框,上面寫著Maven projects need to be imported.此時選擇Enable Auto-Import。就可以看到專案開始自動的去載入依賴包了。載入完成之後,專案會多出一個src目錄。
引入jersey和servlet
開啟根目錄下pom.xml檔案,在dependencies標籤中新增如下程式碼,引入servlet。
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22.2</version>
</dependency>
開啟/src/main/webapp/WEB_INF/web.xml。在web-app標籤之間新增如下程式碼。
<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>com.detectivehlh.test</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>
新建專案目錄和檔案
在/src/main目錄下新建java、resources目錄,java放專案java原始碼,resources放專案的靜態資原始檔。
開啟File中的Project Structure,或者使用快捷鍵,command + ;就可以快捷開啟了。將剛剛建立的名為java目錄設定為Sources,resources設定為Resources。然後Apply。然後在java目錄下依次新建com.detectivehlh.test三個包,就是我們的GroupId.
然後在com.detectivehlh.test中新建Hello類。程式碼如下。
package com.detectivehlh.test;
import com.alibaba.fastjson.JSONObject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;
@Path("/hello")
public class Hello {
@Path("get")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getStudent() {
List<Student> lists = new ArrayList<Student>();
lists.add(new Student("1","mayun",23));
lists.add(new Student("2","mahuateng",24));
lists.add(new Student("3","zhouhongyi",25));
JSONObject json = new JSONObject();
return Response.status(Response.Status.OK).entity(json.toJSONString(lists)).build();
}
}
同樣的地方新建Student類。程式碼如下。
package com.detectivehlh.test;
public class Student {
private String id;
private String name;
private int age;
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
引入fastjson
這個時候可以看到,Hello的class中有報錯。是因為沒有在pom.xml中沒有引入對fastjson的依賴。在根目錄下的pom.xml中新增如下依賴。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.21</version>
</dependency>
再回到Hello中就可以看到沒有錯誤資訊了。
配置Tomcat
選擇頂部選單欄中的Run->Edit Configurations。點選左側的+,選擇Tomcat Server->local。配置好Tomcat後,選擇Server旁邊的Deployment標籤,點選下方的+,選擇Artifact,選擇testDemo:war exploded。點選Apply。然後點選右上角的長得像播放鍵的按鈕,啟動專案。
就可以看到會新建一個瀏覽器標籤頁。顯示”Hello World!”,然後改變瀏覽器中的路由為我們寫的介面的路由,/api/hello/get。就可以看到返回的json資料了。
歡迎光臨 個人部落格