梅森(Mason)是一個用於Java Web應用程序中使用的REST資源的開源,輕巧的數據訪問層。它處理傳入的API請求並將參數路由到這些資源。
< dependency >
< groupId >com.metamug</ groupId >
< artifactId >mason</ artifactId >
< version >4.8</ version >
</ dependency >使用JSP標籤來編輯數據庫查詢並請求處理。在不編譯/部署Java類的情況下熱部署REST API。使用JSP標籤構建REST API。
< jsp : directive .include file = " ../fragments/mason-init.jspf " />
<%-- customer.jsp --%>
< m : resource >
< m : request method = " GET " >
< sql : query var = " customers " dataSource = " ${datasource} " >
SELECT name, address, phone, type from retail_customer
</ sql : query >
< c : set target = " ${output} " property = " customers " value = " ${customers} " />
</ m : request >
</ m : resource >樣本項目
梅森將您普通的舊JSP(帶有整潔的標籤庫)變成了休息資源。梅森不鼓勵在Resource JSP中使用Scriptlet。
您可以在JSP中處理,發布,放置,刪除請求。梅森(Mason)已與Tomcat 9進行了測試。 JSTL.JAR用Tomcat運送了JSTL。
在此處了解有關JSP配置的更多信息。 https://tomcat.apache.org/tomcat-9.0-doc/jasper-howto.html
您可以在資源JSP文件中寫入數據庫查詢,如上所述,也可以將它們放入{webAppDir}/WEB-INF/classes/query.properties文件中,並在JSP文件中引用它們以進行重複使用。
Accept標頭將SQL結果轉換為JSON/XML克隆並用MVN打包項目
mvn clean package
之後,您可以在目標文件夾中找到MTG-Mason-1.0.jar 。您可以將此罐子用作Java WebApp中的依賴性。
將Mason Jar文件放入{webAppDir}/WEB-INF/lib中
下載JSTL JAR文件並將其放入{webAppDir}/WEB-INF/lib中
創建一個文件夾{webAppDir}/WEB-INF/resources/{resourceVersion} ,然後在此處放置JSP文件。例如, mywebapp/WEB-INF/resources/v1.0/foo.jsp 。
將MTG-Mason.tld導入JSP文件中。此taglib存在於梅森罐子內,並可以使用MTG前綴。您還需要導入JSTL Taglib。您的JSP文件應包含以下內容
<% @taglib uri = " http://java.sun.com/jsp/jstl/core " prefix = " c " %>
<% @taglib uri = " http://java.sun.com/jsp/jstl/sql " prefix = " sql " %>
<% @taglib uri = " mtg-mason.tld " prefix = " m " %>
<%@ page trimDirectiveWhitespaces="true" %>{webAppDir}/WEB-INF/web.xml中添加以下過濾器和偵聽器< filter >
< filter-name >Router</ filter-name >
< filter-class >com.metamug.mason.Router</ filter-class >
</ filter >
< filter-mapping >
< filter-name >Router</ filter-name >
< url-pattern >/*</ url-pattern >
< init-param >
< param-name >datasource</ param-name >
< param-value >jdbc/mason</ param-value >
</ init-param >
</ filter-mapping >對JSP資源提出的所有請求均通過此過濾器進行路由。
6.在{webAppDir}/META-INF/context.xml文件中查看您的數據源。
您可以查看示例WebApp。
除了Javaee-Web-api,因為它將存在於您的應用程序服務器中,而HSQL,MySQL或PostgreSQL依賴關係中的任何一個都存在。我們還支持Oracle數據庫,但由於其許可,我們無法將Oracle JDBC驅動程序運送。因此,如果您使用的是Oracle數據庫,則必須手動將其驅動程序作為項目的依賴性安裝。
有關如何執行相同操作的說明(s)(您可以參考其中的任何一個)。 https://www.mkyong.com/maven/how-to-to-dad-oracle-jdbc-driver-in-your-maven-local-repository/或https://stackoverflow.com/a/a/a/1074971/4800126
Mason支持application/xml , applicaton/json和application/json+dataset閱讀更多有關其在此處使用的信息。 https://metamug.com/docs/api-request
梅森支持Groovy編寫腳本。您需要將腳本保留在{webAppDir}/WEB-INF/scripts中
示例腳本
// test.groovy
def params = _request . getParams()
res[ ' message ' ] = ' Hello ' + params[ ' name ' ]可以在JSP資源中使用script標籤調用腳本。
< m : script file = " test.groovy " var = " res " />分叉此存儲庫,並針對列出的問題提交公關。該項目的任何捐款都將向以個人身份在該項目上工作的個人開發人員支付。為了獎勵他們的貢獻並使梅森保持社區項目。