nodejs版jsp/servlet终于完成了
来源:互联网 发布:原生js获取子元素节点 编辑:程序博客网 时间:2024/05/01 23:27
今天终于把所有功能都做完了,贴个示例代码吧:
var os = require("os");var fs = require("fs");var http = require("http");var URL = require("url");var july = require("./webserver.js");var httpd = require("./httpd");var webApplication = july.WebApplicationFactory.create("localhost", "webapp", "/");var servletContext = webApplication.servletContext;var DEBUG = false;if(DEBUG){ var servlets = [ {"name": "UserListServlet", "pattern": "*.do$", "servlet": UserListServlet}, {"name": "BookListServlet", "pattern": "*.do$", "servlet": BookListServlet} ]; for(var i = 0; i < servlets.length; i++) { var a = servlets[i]; servletContext.set(a.name, a.pattern, a.servlet); } /** * filter test */ servletContext.set("test3", "/onlyjsp\\.jsp", function(request, response, servletChain){ response.end("<h1>filter: onlyjsp.jsp</h1><h1>Hello World !</h1>"); });}servletContext.set("test1", "/test1", function(request, response, servletChain){ response.setHeader("Content-Type", "text/html; charset=UTF-8"); var session = request.getSession(true); response.write("<h1>test1.message: Hello World !</h1>"); response.write("<h1>session.sessionId: " + session.sessionId + "</h1>"); var user = session.getAttribute("user"); if(user == null) { response.write("<h1>user.name: null</h1>\r\n"); session.setAttribute("user", {"name": "xuesong.net"}); } else { response.write("<h1>user.name: " + user.name + "</h1>\r\n"); } servletChain.doChain(request, response);});servletContext.set("test2", "(/test1)|(/test2)", function(request, response, servletChain){ response.write("<h1>tets2.requestURI: " + request.requestURI + "</h1>"); response.write("<h1>test2.message: Hello World !" + "</h1>"); response.end();});servletContext.set("test3", "/test3", function(request, response, servletChain){ response.setHeader("Content-Type", "text/html; charset=UTF-8"); var userList = []; for(var i = 0; i < 20; i++) { userList.push({"name": "tome" + i, "sex": 1, "birthday": new Date}); } request.setAttribute("pageNum", 1); request.setAttribute("pageSize", 20); request.setAttribute("total", 373); request.setAttribute("userList", userList); request.getRequestDispatcher("/test.jsp").forward(request, response, servletChain);});servletContext.set("test4", "/form\\.jsp", function(request, response, servletChain){ response.setHeader("Content-Type", "text/html; charset=UTF-8"); response.write("<h1>c: " + request.getParameter("c") + "</h1>"); response.write([ "<form method=\"post\" action=\"form.jsp?c=1\">", "<input type=\"text\" name=\"a\" value=\"a\"/>", "<input type=\"text\" name=\"b\" value=\"b\"/>", "<input type=\"submit\" value=\"submit\"/>", "</form>"].join("\r\n")); response.end();});var server = (function(){ return http.createServer(function(request, response){ if(request.url == "/favicon.ico") { response.writeHead(404, "Not Found", {"Content-Type": "text/plain"}); response.end(); return; } webApplication.dispatch(request, response); });})();server.listen(80, "localhost");console.log("server start on port: 80");虚拟主机支持:
var os = require("os");var fs = require("fs");var http = require("http");var URL = require("url");var july = require("./webserver.js");function test1(){ var app1 = july.WebApplicationFactory.create("localhost", "webapp/app1", "/app1"); var app2 = july.WebApplicationFactory.create("localhost", "webapp/app2", "/app2"); var host1 = new july.VistualHost("localhost"); host1.add(app1); host1.add(app2); var webServer = new july.WebServer(); webServer.add(host1); var server = (function(){ return http.createServer(function(request, response){ webServer.dispatch(request, response); }); })(); server.listen(80, "localhost"); console.log("server start on port: 80");}function test2(){ var app1 = july.WebApplicationFactory.create("www.skin.com", "webapp/app1", "/app1"); var app2 = july.WebApplicationFactory.create("www.aazh.com", "webapp/app2", "/app2"); var host1 = new july.VistualHost("www\\.skin\\.com|skin\\.com"); var host2 = new july.VistualHost("www\\.aazh\\.com|aazh\\.com"); host1.add(app1); host2.add(app2); var webServer = new july.WebServer(); webServer.add(host1); webServer.add(host2); var server = (function(){ return http.createServer(function(request, response){ webServer.dispatch(request, response); }); })(); server.listen(80, "localhost"); console.log("server start on port: 80");}test2();
也可以只用httpd.js做一个静态服务器:
var fs = require("fs");var http = require("http");var httpd = require("./httpd");var http1 = httpd.create("localhost", "webapp", "/");var server = http.createServer(function(request, response){ response.setHeader("Server", "Httpd/1.1"); response.setHeader("Accept-Ranges", "bytes"); console.log("request: " + request.url); http1.service(request, response);});server.listen(7272, "localhost");console.log("server start on port: 7272");
下载地址: https://github.com/xuesong123/javascript-template
- nodejs版jsp/servlet终于完成了
- nodejs版jsp/servlet服务器
- 终于搞清楚了Jsp跟Servlet的关系了。
- 今天终于完成了
- mschap终于完成了
- 终于完成了汇报
- 终于完成了
- mp3终于完成了
- 终于完成了
- 终于完成了EasyMap2.0
- 哈哈,毕业设计终于完成了!
- 项目终于快完成了
- 终于完成了这个UI
- 终于完成了webkit移植
- 聊天系统Java版终于完成V1.0了
- 终于完成了地址收录程序V1.0版
- jsp/servlet 完成文件上传
- 终于把这个东西完成了!
- const用法总结
- 串口通信(Serial Communications)原理
- ubuntu12.04安装带调试功能的Bochs
- 用Wget工具批量下载远程FTP服务器上的文件
- 如何去写一个方法呢?
- nodejs版jsp/servlet终于完成了
- Android 使用Scroller自动滚动第一种实现
- 如何编译和加载.ko模块
- C++虚函数的默认实参
- StringManager Tomcat学习(转载)
- 串口通信
- 丢一年了,竟然能回得来。
- 关于拷贝
- 有关javascript方法命名规范