文件结构
- |– HttpServer.java
- |– Request.java
- |– Response.java
- |– ServletProcessor.java
- |– StaticResourceProcessor.java
- |– IndexServlet.java
文件的作用
-
- 这个类的作用和之前的静态类的服务器作用一样,唯一不同的一点就是在区分静态请求和动态请求上。
- 不过这边也是有一些问题的,因为如果我们的路径并不是包含”servlet”,则这方法也失去了他的意义。
-
- 这边需要注意的是,这边需要实现ServletRequest接口
- 这个类的主要的作用就是从用户的请求中获取数据,其他的,也就不在这个程序中进行获取了
-
- 这个类的主要作用就是将数据写回客户端。代码什么的也就是同之前的,没什么新的。
-
- 这个类的就是一个ClassLoader。
-
- 这个类的作用就是一个分发器,为了保持接口的统一都使用了process(Request, Response)。
个人感悟
- 这样的一个服务器的最中心的作用就是一个分发器,将用户的请求分发,按照静态文件和动态文件进行分类
- 然后,所谓的负载均衡,和分布式,都可以通过这个服务器进行转发。
- 通过写这个服务器也更加深的理解了HTTP协议。这一点下一篇文章继续写。
后续的问题
- 这上面的代码是有安全风险的,因为这样我们就把这个Request和Response的公有方法就暴露在程序员的视线里
- 一个比较好的解决办法就是适配器模式,在传达对象时,通过一个适配器将对外的接口固定,这样才能做到安全。