Java Tutorial 第六堂(2)使用 Jersey 實作 MVC
Java Tutorial 第六堂(1)REST 與 JAX-RS << 前情 在 Java Tutorial 第六堂(1) 中處理請求的方法,傳回值都是 Jersey 本身定義了一個 練習 19:使用 Jersey 實作 MVC/Model 2 在 Lab 檔案中,有個 exercises/exercise19/JerseyMVC 目錄,其中已預先建立好 build.gradle、src 下基本的目錄與資源。請在 src/main/webapp/WEB-INF/ 下建立 web.xml,內容如下: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <filter> <filter-name>jersey</filter-name> <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>tw.codedata</param-value> </init-param> <init-param> <param-name>jersey.config.server.provider.classnames</param-name> <param-value>org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value> </init-param> <init-param> <param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name> <param-value>/</param-value> </init-param> <init-param> <param-name>jersey.config.servlet.filter.staticContentRegex</param-name> <param-value>/.*html</param-value> </init-param> </filter> <filter-mapping> <filter-name>jersey</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> 其中 因為 web.xml 中設定,只要是 接著請在 src/main/java/tw/codedata 中建立 Hellos.java 如下: package tw.codedata; import java.util.*; import javax.ws.rs.DefaultValue; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.FormParam; import org.glassfish.jersey.server.mvc.Viewable; @Path("/hellos") public class Hellos { @POST public Viewable add(@FormParam("name") String name) { Map model = new HashMap(); model.put("name", name); return new Viewable("/add", model); } } 我們設計 請在 src/main/webapp 中建立一個 add.jsp 如下: <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Hello, ${it.name}</title> </head> <body> Hello, ${it.name} </body> </html> 接下來,你就可以執行 |