- 浏览: 107285 次
- 性别:
- 来自: 成都
文章分类
最新评论
模拟tomcat服务器端代码示例:
客户端http请求模拟示例:
package cd.itcast.day5; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; public class HttpServerDemo { public static void main(String[] args) { (new HttpServer()).run(); } public static class HttpServer { public void run() { String filePath = "D:\\Java\\apache-tomcat-6.0.35\\webapps\\ROOT"; ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(8888); // 开启线程,接收客户端请求. while (true) { Socket socket = serverSocket.accept(); Thread thread = new Thread(new MyHttpServerThread(socket, filePath)); thread.start(); } } catch (IOException e2) { e2.printStackTrace(); } } } public static class MyHttpServerThread implements Runnable { String filePath = null; private Socket socket = null; private File file = null; public MyHttpServerThread(Socket socket, String filePath) { this.filePath = filePath; this.socket = socket; } @Override public void run() { // 读取客户端数据 BufferedReader request = null; // 处理客户端数据并返回. BufferedOutputStream response = null; try { // System.out.println(socket.getInetAddress().getHostAddress() // + " 连接到服务器."); InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); request = new BufferedReader(new InputStreamReader(inputStream)); response = new BufferedOutputStream(outputStream); // 读取Http头信息行:GET /index.html HTTP/1.1 String httpHead = request.readLine(); if (httpHead != null) { String[] arr = httpHead.split(" "); if (arr.length == 3 && ("GET".equals(arr[0]) || "POST".equals(arr[0])) && "HTTP/1.1".equals(arr[2])) { // 获取要访问的文件. if ("/".equals(arr[2])) { file = new File(filePath, "/index.html"); } else { file = new File(filePath, arr[1]); } if (file.exists() && file.isFile()) { responseRequest(response); } else { System.out.println("请求的页面:" + arr[1] + " 不存在!"); } } else { System.out.println("客户端请求非法:" + arr[0]); } } else { System.out.println("未发现客户端请求或请求有误!"); } } catch (Exception e) { e.printStackTrace(); } finally { if (request != null) { try { request.close(); } catch (IOException e1) { e1.printStackTrace(); } } if (response != null) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (socket != null) { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } private void responseRequest(BufferedOutputStream response) throws IOException, FileNotFoundException { // 返回给客户端服务器的Http头信息 response.write("HTTP/1.1 200 ok\r\n".getBytes()); response.write("Server: HttpTest Server/1.1\r\n".getBytes()); response.write("Content-Type: text/html\r\n".getBytes()); response.write(("Content-Length: 5866" + file.length() + "\r\n") .getBytes()); response.write(("Date: " + new Date() + "\r\n").getBytes()); // 与实体部分以空行隔开. response.write("\r\n".getBytes()); FileInputStream fis = new FileInputStream(file); byte[] buff = new byte[1024]; int len = 0; while ((len = fis.read(buff)) != -1) { response.write(buff, 0, len); response.flush(); } fis.close(); } } }
客户端http请求模拟示例:
package cd.itcast.day5; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; public class HttpClientDemo { public static void main(String[] args) { BufferedWriter out = null; BufferedReader in = null; try { Socket socket = new Socket("127.0.0.1", 8888); out = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())); in = new BufferedReader(new InputStreamReader( socket.getInputStream())); //发送Http头信息到服务器.请求页面为httptest.html. out.write("GET /httptest.html HTTP/1.1\r\n"); out.write("Host: localhost\r\n"); out.newLine(); out.flush(); //获取服务器返回内容. String line = null; while ((line = in.readLine()) != null) { System.out.println(line); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
发表评论
-
java远程调试(转载)
2012-12-29 16:43 864新接手的项目采用的是Maven作为编译管理工具,项目内容则是按 ... -
将秒转换成日期格式的java方法:
2012-12-29 12:01 928package net.blogjava.frankieg ... -
java对世界各个时区(TimeZone)的通用转换处理方法(转载)
2012-12-25 15:24 944在进行国际性软件项目开发的过程中,有时候会碰到一些比较特殊的要 ... -
RandomAccessFile
2012-12-19 22:05 757RandomAccessFile RandomAccessF ... -
java-WEB中的过滤器Filter
2012-09-18 22:58 1424过滤器是一个程序,它先于与之相关的s ... -
java-例子:MVC模式,用jstl和el输出数据到jsp页面.
2012-09-09 23:57 1611例子:利用session完成购物车. domain: pac ... -
java中的el——表达式语言
2012-09-09 23:36 830EL 全名为 Expression Lang ... -
java-下载图片(正则表达式、HttpURLConnection、流、socket综合运用)
2012-08-26 22:22 1260package cn.itcast.httpserver; ... -
java-用HttpURLConnection发送Http请求.
2012-08-26 22:00 685注意:利用URL发送的请求,服务器只返回实体部分,不包括htt ... -
java-SAX解析XML示例
2012-08-25 19:13 789JAVA 解析 XML 通常有两种方式:DOM 和SAX ... -
java-增强for循环示例
2012-08-25 19:14 795package cd.itcast.day1; impo ... -
java-反射示例
2012-08-24 14:13 669package cd.itcast.day1; im ... -
java-可变参数示例
2012-08-24 14:07 509package cd.itcast.day1; pu ... -
java-枚举示例
2012-08-24 14:04 666package cd.itcast.day1; /* ... -
java-注解annotation
2012-08-24 13:54 685package cd.itcast.day2; impo ... -
Java-dom编程:操作xml
2012-08-24 13:47 711package cd.itcast.day3.xmldom; ...
相关推荐
简易模拟tomcat服务器项目源码java学习CS架构网络编程;简易模拟tomcat服务器项目源码java学习CS架构网络编程;简易模拟tomcat服务器项目源码java学习CS架构网络编程;简易模拟tomcat服务器项目源码java学习CS架构...
java模拟tomcat的web服务器源码
该服务器是本人模拟Tomcat做的,同时实现了主流的两大框架:struts 和 hibernate的一些功能,做这个东西本是自娱自乐,所以有很多地方尚未完善,构造方法一大堆的参数也让人头疼。希望有兴趣的朋友可以提一些建议,...
java实现模拟tomcat服务器,利用socket接手请求,resquest和respose处理请求发送响应,编写了Servlet接口,用户需要在web.xml配置全类名和URL,编写servlet实现类就可以使用,客户端浏览器,使用java的Swing组件,...
(2)本机部署好Tomcat服务器 (3)本地部署好MySQL数据库 (4)可以用WiFi模块给onenet传数据 1. 先运行waterMain,该程序自动获取onenet云平台4条河流的最新数据信息,只把最新的数据信息存入数据库中 2. 再运行...
案例5 利用DES加密解密 第七章 Java与数据库 案例1 在Applet中应用JDBC访问数据库 案例2 通过JDBC-ODBC桥连接数据库 案例3 通过tomcat数据源访问数据库 案例4 JDBC连接池的实现 案例5 用...
DEMO说明:模拟一次servelt请求,...java代码模拟tomcat服务器启动期间完成的功能,以及当一次完整servlet请求过来,tomcat到底帮我们做了哪些事。 内附TOMCAT服务器模拟完整可运行JAVA代码,以及demo详尽说明文本文档。
此项目为J2EE BS/CS项目 需要 :tomcat6.0f服务器 数据库 struts1/struts2动态库架包 myeclipse7.0集成开发工 链接串口连接数据库驱动 串口发短架包 GPRS模块等 运用了MVC三层架构开发模式 struts1/strts2结合...
该示例应用程序的目的是说明在Azure上使用无服务器,事件驱动的Java构建响应系统。 该项目的结果将是创建一个实时库存中心。 要求 为了创建和部署此示例应用程序,您需要具备以下条件: Azure订阅; 如果您还没有...
本教程适合所有准备在Java Web开发领域发展的开发者,尤其是那些需要深入了解Tomcat服务器配置和管理的候选人。 **使用场景及目标:** 这些教程适用于面试准备阶段,帮助候选人复习和巩固Tomcat知识,提高解决实际...
java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码...
java毕业设计基于SSM+Vue的学生竞赛模拟系统源码+数据库+文档.zip 高分通过项目,已获导师指导。...服务器:tomcat7+ 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件: idea/eclipse Maven包:Maven3.3
java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码...
模拟服务器可以选择搭建在跟开发同一个电脑使用 localhost 连接,或者使用虚拟机 (Linux CentOS6) 搭建服务器,或者使用另外一台双系统 (Linux Ubuntu18 + Windows10) 的电脑来搭建服务器,连接的都是同一个 WIFI。 ...
通过tomcat发布一个小的javaWeb购物车模拟,可以在MyEclips工具中运行,更好的理解客户端浏览器与服务器cookie 与session 的区别。
数据库课程设计-->航天客运订票系统。服务器端使用Tomcat+Servlet,客户端使用Java来实现,数据库使用MySQL。
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
android客户端+Tomcat服务器+MySql数据库实现模仿QQ聊天软件,内附使用说明,适合期末给老师交的一万行代码作业
在Eclipse开发环境,Tomcat应用服务器上,使用JAVA技术并采用MVC模式实现用户登录。 1. 采用JSP+JAVABEAN +SERVLET或者Struts+spring +Hibernate 2. 数据内容内存中提供。 3. 如果登录失败应有相应提示。否则进入...
安装JDK、配置环境变量,打开Eclipse导入ch04项目,运行server.FishServer类启动服务器端,运行java client.SwimFish类启动客户端。注意,同时在多台机上运行客户端才能显示出网络游鱼的效果,在同一台机上打开多个...