web服务器的安装
web访问原理
- 浏览器发送请求(报文)给服务的端口。服务器通过处理发送响应(报文)给浏览器。底层是通过使用socket的输出流将文件发送给浏览器。
Servlet
- 在webcontent下存档静态资源,比如html,css,js,这些资源所生成的网页都是静态的,如果需要动态的网页,就需要使用到后台语言,java。
- Servlet是运行在web服务器的小程序,它接受从客户端发送的请求并对其响应,通常使用http协议,也就是超文本传输协议
- 要实现一个servlet有三种方式
- 实现Servlet接口
- 继承GenericServlet
- 继承HttpServlet
Servlet的生命周期
- servlet生命周期相关的三个方法:
- inti方法,调用一次,进行初始化
- service方法,每当请求一次,就调用一次
- destory方法,生命周期结束时调用一次
- servlet是一个单例,以多线程的方式处理请求
Servlet体系结构
- 实现Servlet的三种方式
- 直接实现Servlet接口
- 继承GenericServlet,它实现Servlet接口,主要是完成三个部分功能
- 保存了ServletConfig对象
- 预留了一个无参的inti方法给子类重写。做初始化
- 提供了另外一个重载Service的方法, 参数为HttpServletRequest和HttpServletResponse
- 继承HttpServlet,它继承了GenericServlet,在父类基础上,对不同的请求方式进行了区分,也就是提供了doGet处理get类型的请求,提供了doPost处理post类型的请求
DefaultServlet
- 当浏览器请求的时候,可能请求的是动态资源,比如Servlet,也可能请求静态资源,比如html,js,css,image等等,不管是请求的是什么类型资源,其实都先是去工程中的web.xml中去找,如果能匹配上,就找到处理的servket类,如果匹配不上就使用tomcat全局的web.xml中配置的DefaultServlet处理
- 如果请求的index.html存在,DefaultServlet会使用文件输入流将文件数据读到内存,然后使用socket的输出流,写到客户端浏览器上
- 如果请求的index.html不存在,DefaultServlet会向浏览器写一个404的页面
HttpRequest和HttpResponse对象
- HttpRequest: 浏览器发送给服务端的报文。
- HttpResponse:服务端发送给浏览器的报文。