smart-servlet 是一款实现了 Servlet 3.1 规范,支持多应用隔离部署的的 Web 服务器。
smart-servlet 在 smart-http 的基础之上,通过继承 HttpHandle 实现了 Servlet 规范。这意味着任何 smart-http 服务都可以通过单独引入 smart-servlet 核心包的方式,将普通的 http 应用改造成 servlet 应用,而且这个成本是极低的。
项目特色
- 零学习成本,素未谋面,却已相知。保留用户原有的 Tomcat、Undertow 使用习惯。
- 朴实无华,用最初级的设计手法打造专业级服务器。
- 实现 Servlet 核心规范:Request、Response、Session、Cookie、Dispatcher、ServletContext。
- 插件化设计,自由 DIY 服务器。
- 延续一贯的极简、易用、高性能设计风格。
- 开箱即用,运行程序包、maven本地开发/调试插件、springboot starter 一应俱全,满足你的开发、部署等各项需求。
更新内容
- 升级 smart-http 至最新版 1.0.21。
- 根据《Servlet3.1规范中文版》12.2 映射规范 中的定义重新设计 URI 在servlet、filter中的路由解析算法,并通过索引的方式降低过程中字符串的内存开销。
- PrintWriter 输出内容支持缓冲区暂存。
- 重构 url-mapping 处理逻辑。
- servlet、filter 匹配结果支持缓存,提升处理性能,降低内存开销。
- 优化 cookie 解析方式,提升内存利用率。
- 实现 servlet 规范:getRequestedSessionId、isRequestedSessionIdValid、isRequestedSessionIdFromCookie、isRequestedSessionIdFromURL、isRequestedSessionIdFromUrl。
- 采用 org.w3c.dom 解析 web.xml,解除 dom4j 的依赖。
项目体验
-
下载项目进行本地编译。
-
运行archives模块中的
org.smartboot.servlet.starter.Bootstrap
启动服务器。 -
若启动过程无任何异常,打开浏览器访问 http://127.0.0.1:8080/examples。
应用集成
根据业务工程实际情况选择相应的集成方式。
-
maven plugin
适用于传统的 Servlet 或者 Spring MVC 工程,且必须是 maven 工程。需要在 web 模块所在的 pom.xml 中加入以下配置,若存在端口冲突自行调整。完成配置后通过:
mvn smart-servlet:run
启动服务。<!-- pom.xml --> <project> <build> <plugins> <plugin> <groupId>org.smartboot.servlet</groupId> <artifactId>smart-servlet-maven-plugin</artifactId> <version>0.1.1</version> <configuration> <port>8080</port> </configuration> <dependencies> <dependency> <groupId>org.smartboot.servlet</groupId> <artifactId>plugin-session</artifactId> <version>0.1.1</version> </dependency> <dependency> <groupId>org.smartboot.servlet</groupId> <artifactId>plugin-dispatcher</artifactId> <version>0.1.1</version> </dependency> </dependencies> </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>0.1.1</version> </dependency> </dependencies> </project>
注意:本文归作者所有,未经作者允许,不得转载