目录
场景介绍:
需要接收客户传来的数据,但是客户只有http的客户端,需要项目现场自备http的服务端接收数据。
物料:
源码:
https://download.csdn.net/download/qq_30168227/33302331
启动方式:
源码打成jar包后直接:
java -jar 导出的jar包
然后测试:
代码介绍:
代码截图:
配置文件:
web.properties:
配置项目监听的端口以及接收到生产方传来的数据后存储的位置配置:
注意的是根据《Request.java》代码这里写的,实际存储的数据位置应该是上图中配置文件的路径加上请求来的url,例如请求的接口地址是http://192.168.1.1:18499/Adata,那么实际存储的地址便是:G:\EclipseWorkspace\data\Adata\...
web.xml:
根据客户请求来的URL地址,转到对应的类去处理的配置文件:
例如图中的第11行到18行,定义了如果客户请求输入的URL部分是/token,那么就匹配上了第16行,而第16行又会转到第12行,然后把处理客户的请求逻辑转到第13行定义的类代码中处理。
其他简介:
Configuration.java:
存储配置文件web.properties各项配置:
WebManager.java:
初始化Configuration类并对配置项赋值。留有统一出口getConf(),接下来如果有其他的地方要用到配置文件中配置的内容,例如获取端口可以直接使用WebManager.getConf().getPort()去获取到。
Server.java:
整个程序的入口。
Request.java:
从流中获取并处理请求方发来的内容类。
分解字符串是得到请求内容中的各种需求数据,例如请求方式、协议信息、请求地址等。
Business.java:
根据上类得到的请求内容,匹配分割出所需要的内容。
这里的方法是在Request.java中进行了调用:
Response.java:
相应信息拼接类。可对头信息进行更改。
动态添加内容使用这两个方法:
Dispatcher.java
请求与相应之间的中间类,并且使用多线程并发调度。
这里是在Server.java中进行了调用:
这个类会判断请求的url然后将请求发送到不同的页面去处理:
例如url是/data/funeralBusiness那么就转发到了DataFuneralBusinessServlet类。
JavaFileUtils.java:
检测并自动创建文件夹以及写字符串到文件。
其他类:
其他类都是解析web.xml所用到的类。
二次利用:
- 增加界面:
首先先要在web.xml中配置,例如想要新加A页面:
<servlet>
<servlet-name>A</servlet-name>
<servlet-class>web.A</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>A</servlet-name>
<url-pattern>/A</url-pattern>
</servlet-mapping>
然后在web下增加相应类,即A.java,然后其中配置相应逻辑即可。