TinyWeb是一个Java轻量的web开发库,目前这个包的体积只有49K,支持的功能如下:
tinyweb提供一个基于注解的路由解析,使用起来非常简单方便,下面会有例子。
tinyweb提供一简单的log系统,不需要任何第三方日志包即可完成log功能(但目前还不支持日志输入文件)
使用tinyweb你可以很方便的使用内置的json工具向前台返回json格式数据
DBTool是一个简单方便的数据库工具,使用它你可以方便的从数据库查询数据,结果可以使用Map也可以使用Bean。但是DBTool只是个对JDBC的基本封装,所以所有的SQL都要自己手写,使用的时候也要注意。使用起来非常简单,只需要配置好properties文件然后单用DBTool.getInstance()你就可以使用啦。
tinyweb内部有一个IOC容器用来支持tinyweb的注解。IOC的使用也很简单。
你可以自己开发插件来处理来自客户端的请求,比如可与过滤静态文件、做权限认证……
不需要第三方库,实现文件上传
tinyweb内置了一个验证码生成类(VerificationCode),用起来十分简单
目前就实现了这些功能,后面还会陆续完善,后续计划如下:
一个简单的AOP功能
目前可以使用jsp来渲染视图,暴露视图渲染接口可以用其他的视图渲染引擎来渲染,比如velocity、freemaker
配置web.xml:
<filter>
<filter-name>globalFilter</filter-name>
<filter-class>com.larry.tinyweb.core.GlobalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>globalFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后写一个Action类型:
/**
* 访问http://127.0.0.1:8080/projectname/tiny/hello
*/
@RM("/tiny/")
public class ArticleAction {
public void hello(RequestEntity requestEntity) {
requestEntity.writeString("Hello Tiny");
}
}
就这么简单,更多的功能请移步我基于tinyweb写的博客系统
我自己用这个tinyweb写了一个博客,传送门:TinyBlog
目前这个博客还没完全写完,源码也在osgit上有兴趣的可以看一下:TinyBlog源码
------------------------------------------------------------------------
------------------------------------------------------------------------
今天把自己参考csapp写的web服务器调通了,学到了很多东西。记录下来。 1.gdb调试工具 首先编译链接的时候得加 -g g++ -g -o myweb myweb.cpp web.cpp 然后 gdb -p myweb 如果程序有输入参数 set args 输入参数 break建立断点 r–run执行 c–continue继续 s–step单步执行 n–next 单步但跳过函数 print
一、getopt() 函数原型: #include <unistd.h> int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; //选项的参数指针,即可以或者到某个位置的值 extern int optind, //下一次调用getopt的时,从optind存储的位置处
前言 在写这篇博客的时候,我的这个TinyWebServer项目已经完成了。这个项目从我开学2月份开学开始,一直前后看了很多遍。每多看一遍,都有新的感悟和体会。 从最开始在牛客上的那一个版本,后来嫌弃这样的代码C风格太强烈,于是就有了现在基于基于Modern C++的版本。经历了两个多月期间有一次为了删除某个文件夹的全部日志,本来准备输入rm -rf ./*,结果少打了个.,输成了rm -rf /
log是日志模块,一个合格的服务器当然少不了日志来记录错误异常等等信息。我们想设计一个日志模块,他能顺利写日志但是又不要占用主线程时间去写,所以我们设计异步写日志的模块。 基础知识 日志,由服务器自动创建,并记录运行状态,错误信息,访问数据的文件。 同步日志,日志写入函数与工作线程串行执行,由于涉及到I/O操作,当单条日志比较大的时候,同步模式会阻塞整个处理流程,服务器所能处理的并发能力将有所下降
有错误麻烦大佬指出!!!拜托了!!!! 异步日志实现: 主要包含两个部分: 1. 日志模块 2.阻塞队列模块,其中加入阻塞队列模块主要是解决异步写入日志做准备. 阻塞队列模块: 实现了一个模板类循环队列 block_queue(int max_size = 1000) //根据max_size的大小对循环队列进行构造,这个里面主要有以下几个属性: 1. m_max_
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。 随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。 随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。 随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流
作为开发者,需要不断的对技术点进行总结,并且把它沉淀下来,写技术博文无疑是最好的方式,随着时间流逝,还可以作为自己每个阶段的技术认知轨迹进行回顾和反思,这里将会持续记录对WEB开发相关总结内容。
Web 插件开发-本地开发 安装开发环境 本地开发 开发资源 Web 插件开发-本地开发 更新时间:2018-07-04 18:46:18 本章介绍插件的本地开发步骤。 安装开发环境 请参照 Bone Web 文档安装开发环境:https://bone.aliyun.com/bone-web/bonewebsdk.html?name=zm1rpl 本地开发 创建项目: bone init 1.选
因为Go的net/http包提供了基础的路由函数组合与丰富的功能函数。所以在社区里流行一种用Go编写API不需要框架的观点,在我们看来,如果你的项目的路由在个位数、URI固定且不通过URI来传递参数,那么确实使用官方库也就足够。但在复杂场景下,官方的http库还是有些力有不逮。例如下面这样的路由: GET /card/:id POST /card/:id DELTE /card/:id GE
27. 开发Web应用 Spring Boot非常适合Web应用开发。您可以轻易地使用嵌入式的Tomcat、Jetty或Undertow创建一个独立自足的HTTP服务器。大多数Web应用会使用spring-boot-starter-web模块快速启动并运行。 如果您尚未开发过Spring Boot的Web应用,可以按照入门章节中的“Hello World!”示例操作。
第一次接触到 Flask 时被它的简洁感动了,几行代码就可以快速搭建出一个简单的 Web 服务,于是就义无反顾地踏上了 Flask 的学习之路,慢慢地就学习到了诸如 Jinja2 模板引擎,路由,视图,静态文件和蓝图等。