先介绍一些相关的知识点
Web服务器是提供web服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、apache、nginx等。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎(php)、Web容器)。
所以,我们可以把 IIS、Apache、Nginx、Tomcat等都称为Web服务器,因为他们都提供了web服务。
中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。所以说我们可以把Tomcat、Weblogic、Jboss等叫做Web中间件。
容器是中间件的一种,作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,而不必关注其它系统问题。例如:tomcat(servlet容器),Jboss(EJB容器)。这些容器提供的接口严格遵守J2EE规范中的web application 标准。
servlet的生命周期就是从servlet出现到销毁的全过程。主要分为以下几个阶段:
加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁
服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,service(ServletRequest req,ServletResponse res)方法中执行,最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。
开发过程步骤:
先编写servlet程序,然后去web.xml中配置servlet注册信息,即其名字和对应的servlet程序代码,然后在编写映射路径,即其名字和对应的访问路径。向web服务器注册。
servletContext
servlet应用程序之间相互独立执行
servletContext(上下文)可能是面试题。是在web容器(tomcat)启动的时候,会为每个web程序创建一个对应的ServletContext对象,代表当前web应用工程(包含多个servlet程序),全局唯一,凌驾于所有servlet程序之上,可以用它对web应用进行一些操作。
-
共享数据(后面会用session或者request代替他),在这个servlet中向servletContext中保存的数据可以在另一个servlet中拿到。例:淘宝登录之后跳转不同的界面都携带自己的登录信息。也可以使用io输出到文件中,但是不方便,浪费资源。
-
获取初始化参数(几乎不用),getinitparam
-
请求转发功能实现(后面会用request去做)。
/*向容器的context对象发出请求,要从指定的请求路径,即某个servlet程序获取数据。
*context作为中间商获取到此数据之后会由它转发到当前程序,当前程序接触不到指定的
servlet程序。当前页面路径不变,能够显示指定请求数据,状态码为200,即正常访问.
而重定向则是中间商告诉你去找目标程序,状态码为3
*/
// 指定请求数据的目标转发路径
// RequestDispatcher getp = context.getRequestDispatcher(“getp”);
// 调用forward实现请求转发
// getp.forward(req,resp);
context.getRequestDispatcher("/getp").forward(req,resp); -
读取资源文件(后面用类加载classload,反射去做)
Properties
- 在java目录下新建properties文件
- 在resources目录下新建properties文件
都会在项目build时被打包到同一个路径下:classes,俗称这个路径为classpath类路径。
可以通过getResourcesAsStream获取到流形式的properties配置信息,然后再用一个空白的properties文件load装载这个流,再通过这个新文件去获取信息。