北京网站设计研究与开发公司,wordpress资讯类主题,做网站建设个体经营小微企业,jsp网站开发用到什么技术说明
采用第三方开源库作为嵌入式web服务器并且对外提供自定义接口#xff0c;goahead是个不错的选择#xff0c;它支持内存CGI并且可以很方便的嵌入到自己的程序中#xff0c;在中小公司中很受欢迎。
简介
GoAhead是一个开源,免费,功能强大#xff0c;可以在多个平台运…说明
采用第三方开源库作为嵌入式web服务器并且对外提供自定义接口goahead是个不错的选择它支持内存CGI并且可以很方便的嵌入到自己的程序中在中小公司中很受欢迎。
简介
GoAhead是一个开源,免费,功能强大可以在多个平台运行的嵌入式WebServer主要特性有
支持ASP嵌入式的javascript标准的CGI执行内存中的CGI处理GoFroms扩展的API快速响应每秒可处理超过50个请求完全和标准兼容如果不包含SSL仅要求60K的内存包含SSL要求500K内存web页面可以存在ROM或文件系统中支持多种操作系统包括eCos 、LINUX 、LynxOS 、QNX 、VxWorks 、WinCE、 pSOS等
环境准备
下载地址
官网
编译安装
使用当前最新版本goahead-4.1.3在Ubuntu上编译。goahead 支持多种工具编译使用make编译
make //编译本平台goahead
make -f projects/goahead-linux-default.mk //指定makefile
make install
* 使用make编译不需要执行 configureconfigure中有说明。生成的文件在bulid/linux-x86-default/目录下安装时会将该目录下的文件拷贝至对应目录配置文件安装在/etc/goahead目录下默认网页目录/var/www/goahead。
运行
执行命令
./goahead -v --home 配置文件路径 网页文件路径 绑定IP:监听端口
./goahead -v --home /etc/goahead /var/www/goahead 127.0.0.1:8080开源库入门
目录结构
doc //帮助文档
src //源码
test //测试示例doc目录下有说明文档但是说明和示例不是很详细可以参照test目录下的测试例子来验证。test目录下的示例test.c默认不会编译需要手动修改makefile仿照原有编译代码添加代码如下
# test
# 48
DEPS_48 $(BUILD)/bin/libgo.so
DEPS_48 $(BUILD)/.install-certs-modified
DEPS_48 $(BUILD)/obj/test.oifeq ($(ME_COM_MBEDTLS),1)LIBS_48 -lmbedtls
endif
ifeq ($(ME_COM_MBEDTLS),1)LIBS_48 -lgoahead-mbedtls
endif
ifeq ($(ME_COM_MBEDTLS),1)LIBS_48 -lmbedtls
endif
ifeq ($(ME_COM_OPENSSL),1)LIBS_48 -lgoahead-openssl
endif
ifeq ($(ME_COM_OPENSSL),1)
ifeq ($(ME_COM_SSL),1)LIBS_48 -lsslLIBPATHS_48 -L$(ME_COM_OPENSSL_PATH)
endif
endif
ifeq ($(ME_COM_OPENSSL),1)LIBS_48 -lcryptoLIBPATHS_48 -L$(ME_COM_OPENSSL_PATH)
endif
LIBS_48 -lgo
ifeq ($(ME_COM_OPENSSL),1)LIBS_48 -lgoahead-openssl
endif
ifeq ($(ME_COM_MBEDTLS),1)LIBS_48 -lgoahead-mbedtls
endif$(BUILD)/bin/test: $(DEPS_48)echo [Link] $(BUILD)/bin/test$(CC) -o $(BUILD)/bin/test $(LDFLAGS) $(LIBPATHS) $(BUILD)/obj/test.o $(LIBPATHS_48) $(LIBS_48) $(LIBS_48) $(LIBS) $(LIBS)自定义程序
实际使用中并不是直接使用goahead需要实现的有
提供webservice接口提供动态网页与主程序配合
自定义程序可以参照test目录下test.c实现以上功能。goahead更新比较频繁4.1.3版本相比之前工作中使用的版本接口命名和使用都有了一些改变以test目录下的示例和当前版本的帮助文档为准。
提供webservice接口
初始化时添加action定义
websDefineAction(test, actionTest);action支持get和post方式访问
* get方式
http://192.168.70.210:8080/action/test?xxxxxx
* post
form action/action/test methodpost....
/form提供动态网页
初始化时添加Jst定义
websDefineJst(aspTest, aspTest);static int aspTest(int eid, Webs *wp, int argc, char **argv)
{char *test hello asp;return websWrite(wp,%s,test);
}在ASP网页中添加如下代码
% aspTest();%在浏览器上访问该ASP网页时网页中该部分代码将会被替换成aspTest函数的执行结果。
与主程序配合
可以在主程序中初始化goahead如测试代码test.c中的一样这样就是同一个进程。也可以通过进程通信的方式在服务器进程和主进程之间进行通信。