Servlet是JavaWeb最为核心的内容,是Java提供的一门动态web资源开发技术。
Servlet由谁创建?Servlet方法由谁调用?Servlet由Web服务器创建,Servlet方法由web服务器调用服务器怎么知道Servlet中一定有service方法?因为自定义的Servlet,必须实现Servlet接口并重写其方法,而Servlet接口中有其方法
Servlet的缺点:
Servlet最大的缺点是一个类只能写一个接口,而每一个Servlet都要在web.xml中进行相应的配置,我们想在一个Servlet里写很多个方法的话,则需要采用传递参数的形式,分解到每一个方法中。如果有很多Servlet,就会导致web.xml内容过于繁多。而这样的结构很明显是不利于分组开发的。
另外,在Servlet中,doGet方法和doPost方法有HttpServletRequest和HttpServletResponse参数。这两个参数与容器相关,如果想在servlet中作单元测试,则必须初始化这两个参数。
Servlet的生命周期:
服务终止:当需要释放内存或容器关闭时,容器就会调用Servlet实例的destroy()完成资源的释放
Servlet生命周期涉及三个方法:init()、service()、destory()
init方法在Servlet对象被创建时执行,只执行一次
service方法在Servlet被访问时调用,每访问一次就调用一次
destory方法在Servlet对象被销毁时调用,只执行一次
Servlet中总共有5个方法,剩下两个是获取Servlet信息和获取ServletConfig对象,使用的不是很多
String getServletInfo()// 该方法用来返回Servlet的相关信息,没有什么太大的用处,一般我们返回一个空字符串即可public String getServletInfo() {return "";}
ServletConfig getServletConfig()
体系结构:
@WebServlet("/demo")
public class ServletDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
//TODO GET 请求方式处理逻辑
System.out.println("get...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
//TODO Post 请求方式处理逻辑
System.out.println("post...");
}
}
HttpServlet使用步骤:
继承HttpServlet
重写doGet和doPost方法
--------------------------------------
HttpServlet原理:
获取请求方式,并根据不同的请求方式调用不同的doXxx方法