Servlet:是一门动态网页技术,是一门运行在服务端的java小程序,通过http协议接收来自客户端请
请求并发出响应。
Servlet中的方法:
public void services(ServletRequest req,ServletResponse res){
}throws ServletException,java.io.IOException
说明:ServletRequest req:代表请求对象,该对象中有http协议的请求部分的所有内容。它的实现类由服务器提供,封装数据也是服务器来做
ServletResponse res:代表响应对象 ,该对象中由我们写数据(http协议的响应部分)进去。它的实现类同样是服务器提供。
service:有服务器调用,每次请求都会调用一次。服务器采用的是多线程机制。
Servlet的执行过程:
Servlet生命周期:1.第一次访问servlet时服务器调用servlet构造方法,掉init()方法,创建servlet.一旦创建就一直存在在内存中,除非服务器停止工作(只有第一次访问创建
Servlet)
2.创建请求和响应对象。
3.调用service方法(无论是get请求还是post请求都会先调用service方法,之后再根据get请求还是post请求来调用doget()或者dopost())
4.服务器停止工作,执行destroy方法(),servlet被杀死。
ServletConfig:由服务器创建,用来获取<init-param>标签中的<param-value>的值。
例如:<init-param>
<param-name>
AAA
</param-name>
<param-value>
BBB
</param-value>
</init-param>
ServletConfig config =getServletConfig();
System.out.println(config.getInitParameter("AAA"));//就可打印BBB。前提是init()方法没有被覆盖。
ServletContext:
生命周期:
诞生:应用被加载时就有容器创建好
活着:应用不挂就一直活着
死亡:应挂了,就挂了
通过ServletContext获取<context-param>标签里的<param-value>的值代码如下:
<context-param> <param-name> encoding </param-name> <param-value> utf-8 </param-value> </context-param> ServletContext context = getServletContext(); String str = context.getInitParameter("encoding"); System.out.println(str);
执行结果:utf-8