javaweb之servlet篇
学习servlet是javaweb非常关键的一步
首先你要知道什么是servlet?
servlet简单来说就是一段处理请求与响应的一段java代码,sun公司为了方便编程,高效的处理浏览器的请求与响应,就设计了一个servlet接口。
那么servlet怎么工作的呢?
1、init函数进行初始化
2、处理对service的调用处理
3、servlet死亡
初始化阶段:
当客户端向tomcat发送http请求访问servelt程序,tomcat首先会解析请求,检查内存中是否已经有了该servlet对象:
如果有直接使用对应的servlet对象;如果没有就创建servlet实例对象,然后通过调用init() 方法实现Servlet的初始化工作。
需要注意的是,在整个servlet的生命周期内,init方法只被调用了一次。
执行阶段:
在这个阶段,tomcat服务器会为这个请求 创建 代表HTTP请求的ServletRequest对象 和 代表HTTP响应的 ServletResponse对象,然后将他们作为参数传递给service() 方法。servcie() 方法从ServletRequest对象获取请求的信息并做出处理;通过ServletResponse 对象生成响应的结果。在servlet的整个生命周期内,对于servlet的每一次访问请求,tomcat都会调用servlet的service方法,并且创建新的ServletRequest对象和ServletResponse对象。也就是说service() 方法会servlet的生命周期内会被调用多次。
doGet和’doPost由service方法调用
销毁阶段:
当服务器关闭时,servlet会随着Web应用的销毁而销毁。
在销毁serlvet之前,tomcat 会调用Servlet的destory方法,以便让Servlet对象释放他所占用的资源
sevelet模块代码:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DemoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//之间写上接收相应的参数
//调用service层进而service调用dao层操作数据库 最终结果return到servlet层
//结果返回给相应页面
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
servlet的生命周期
Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet
(2)创建:通过调用servlet构造函数创建一个servlet对象
(3)初始化:调用init方法初始化
(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
(5)卸载:调用destroy方法让servlet自己释放其占用的资源
另外:servlet获取参数的三种方法:
getParameter(String name) |
|
getParameterMap() |
|
String[] |
getParameterValues(String name) |
另外:
servlet在多线程下其本身并不是线程安全的。
如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全
上一篇: php实例-PHP写的简单数字验证码实例
下一篇: PHP数据过滤函数