smart-servlet 是一款实现了 Servlet 3.1 规范,支持多应用隔离部署的的 Web 容器。
smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了 Servlet 规范。这意味着任何 smart-http 服务都可以通过单独引入 smart-servlet 核心包的方式,将普通的 http 应用改造成 servlet 应用,而且这个成本是极低的。
为了更好融入现有的 Java 技术生态,尤其是 Spring 生态,我们在应用层面做了很多便利的设计:
binary distributions
二进制软件包,可将 War 包部署到指定目录下以启动服务。类似:apache-tomcat-x.xx.xx.tar.gz
maven plugin
通过maven插件的形式集成 smart-servlet,用于本地项目开发调试。类似于:tomcat7-maven-plugin。
springboot starter
类似于: spring-boot-starter-tomcat、spring-boot-starter-undertow、spring-boot-starter-jetty。
功能清单 | 社区版 | 企业版 | 说明 |
---|---|---|---|
开源 | 企业版是在社区版的基础上提供一些增强能力,可以理解为社区版是企业版的子集。具体差异以实际发布版本为准。 | ||
商用能力 | 社区版相较企业版所缺少的授权项,在某些情况下可能无法满足企业商用标准 | ||
软件包 | 开箱即用,解码后可部署 War 包运行,用于生产环境部署。 | ||
maven-plugin | 集成pom.xml本地启动服务 | ||
springboot starter | 继Tomcat、Undertow、Jetty之后的第四个spring-boot-starter-web包 | ||
多应用部署 | 通过类加载器的隔离机制,实现单Web容器部署多应用 | ||
JSP页面支持 | 暂未实现 | ||
Session规范 | 暂未实现 | ||
Cookie规范 | 暂未实现 | ||
服务配置维护 | 默认 | 自定义 | 社区版采用了默认的服务配置,仅适合本地项目的开发、调试。如需应用到生产环境,需要购买企业版以作服务配置调优。 |
价格 | 免费 | 订阅制 | 具体方案待定 |
如何选择适合自己的版本?
社区版:
提供了完整的Servle规范实现,可供技术人员学习交流。
具备了基本的运行能力,可用于本地的开发调试。
对于低流量的个人站点,亦可部署社区版(应对高并发的能力有限)。
企业版:
提供专业级的Web容器服务能力,支持参数调优以获得最佳的性能、稳定性表现。
适合本地开发调试,以及生产环境应用。
采用订阅制模式收取一定费用,为了更好的建设、发展该项目。
smart-servlet 还未正式发布,如需体验需要通过本地编译来使用,请按以下步骤操作:
拉取本仓库代码。
进入工程主目录执行 mvn install
,当控制台出现以下信息时,说明编译成功。
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] smart-servlet-parent ............................... SUCCESS [ 1.168 s]
[INFO] servlet-core ....................................... SUCCESS [ 10.142 s]
[INFO] smart-servlet-spring-boot-starter .................. SUCCESS [ 2.107 s]
[INFO] smart-servlet-maven-plugin ......................... SUCCESS [ 6.330 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
根据你自身的工程情况选择相应的集成方式。
maven plugin
面向传统的 Servlet 或者 Spring MVC 工程,但必须是maven工程。需要在 web 模块所在的pom.xml中加入以下配置,若存在端口冲突自行调整。
<!-- pom.xml -->
<project>
<build>
<plugins>
<plugin>
<groupId>org.smartboot.servlet</groupId>
<artifactId>smart-servlet-maven-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<configuration>
<port>8080</port>
</configuration>
</plugin>
</plugins>
</build>
</project>
springboot starter
对于Springboot提供的集成方式,替换原 spring-boot-starter-web 默认绑定的 Servlet 容器。
<!-- pom.xml -->
<project>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.smartboot.servlet</groupId>
<artifactId>smart-servlet-spring-boot-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
完成配置,下一步启动你的应用。
本项目还处于研发阶段,还未完成所有 Servlet 标准的兑现。如若在使用过程中发现问题可提 Issues 反馈,我们会尽快安排处理,感谢您的理解和支持!
今天在研究Spring mvc 的时候碰到了这样的一个问题: Could not open ServletContext resource [/WEB-INF/dispatcherservlet-servlet.xml] 原因是我的web.xml里面是这样配置的: [html] view plain copy <servlet> <servlet-name>dispatcherse
解决方案 因为会默认加载[/WEB-INF/DispatcherServlet-servlet.xml] 所以要在web.xml中修改配置 原来的 <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.Dispat
1、在pom.xml当中引入smart-doc的配置 在pom.xml的<build>标签的<plugins>标签下增加smart-doc的配置 <!--smart-doc begin--> <plugin> <groupId>com.github.shalousun</groupId> <artifactId
我们一般通过 SSH 进行授权访问,通过 git:// 进行无授权访问,但是还有一种协议可以同时实现以上两种方式的访问。 设置 Smart HTTP 一般只需要在服务器上启用一个 Git 自带的名为 git-http-backend 的 CGI 脚本。 该 CGI 脚本将会读取由 git fetch 或 git push 命令向 HTTP URL 发送的请求路径和头部信息,来判断该客户端是否支持
Smart Select 可以自动帮你把原生的select变成一个由 分组单选按钮 构成的动态页面。在很多iOs native应用中你可以看到这种特性。 Smart Select 布局 Smart Select 布局非常简单,只需要在 列表 中插入 <select>,并且给 item-link 加上 "smart-select" class即可。 <div class="list-block">
无论是评估您的每日健康水平、制定个人训练计划、在合适的强度下训练,还是接收即时反馈,Smart Coaching 均可提供独特、易用的功能来满足您的个人需求,并让您在训练时享受最大乐趣,并发挥出最大的积极性。 手表的 Polar Smart Coaching 具有以下功能: Training Load Pro FuelWise™ 手腕式跑步功率测量 跑步计划 跑步指数 训练效益 智能卡路里 持续心
无论是评估您的每日健康水平、制定个人训练计划、在合适的强度下训练,还是接收即时反馈,Smart Coaching 均可提供独特、易用的功能来满足您的个人需求,并让您在训练时享受最大乐趣,并发挥出最大的积极性。 手表的 Polar Smart Coaching 具有以下功能: Training Load Pro FuelWise™ 手腕式跑步功率测量 跑步计划 跑步指数 训练效益 智能卡路里 持续心
描述 (Description) 智能选择是一种通过使用复选框和无线电输入将表单选择更改为动态页面的简便方法。 我们可以使用下表中指定的各种类型的智能选择 - S.No 类型和描述 1 智能选择布局 智能选择布局使用smart-select类在select元素内定义列表视图。 2 使用搜索栏进行智能选择 智能选择使用search bar搜索元素,并通过将data-searchbar类设置为true
聚合支付 目前已经接入支付渠道:微信(条码支付、扫码支付)、支付宝(条码支付、扫码支付); 后台自动生成对账文件 统一下单 业务通过统一下单接口可以发起任意三方支付渠道的支付订单。业务系统不必关心该如何调用三方支付,统一下单接口会根据业务系统选择的支付渠道ID,选择对应支付渠道的支付产品,发起下单请求,然后响应给业务系统支付请求所需参数。 URL地址:http://127.0.0.1:3020/a
Json-smart 是一个高性能的JSON处理类库。 Getting Start guide Json-smart 接口跟 json-simple 十分相似,因此很容易从json-simple迁至 json-smart。 Migration Guide Available Json-smart 是基于Java的最快的Json API之一。 详情请参考测试基准. Benchmarks 特点: 比
smart-http 是一款采用 Java 语言编写的 Http 服务器,有别于业界知名的 Web容器:Tomcat、Undertow,smart-http 并不支持 Servlet 规范,但对于 Http 服务器所需的各项能力,它都具备。 smart-http 天生就是异步非阻塞的 I/O 模型,因为其通信内核采用了 smart-socket。所以无论是性能还是稳定性,都是非常出色的。 在 4核