梅森(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 " />分叉此存储库,并针对列出的问题提交公关。该项目的任何捐款都将向以个人身份在该项目上工作的个人开发人员支付。为了奖励他们的贡献并使梅森保持社区项目。