初学Servlet
浏览器请求
服务器创建对象
调用init方法
调用service方法
接着,服务器会先创建两个对象:ServletRequest请求对象和ServletResponse响应对象,用来封装浏览器的请求数据和封装向浏览器的响应数据 ①:接着服务器会默认在我们写的类里寻找service(ServletRequest req, ServletResponse res)方法,但是DemoServlet中不存在,那么会到其父类中寻找 ②:到父类HttpServlet中发现有此方法,则直接调用此方法,并将之前创建好的两个对象传入 ③:然后将传入的两个参数强转,并调用HttpServlet下的另外个service方法 ④:接着执行service(HttpServletRequest req, HttpServletResponse resp)方法,在此方法内部进行了判断请求方式,并执行doGet和doPost,但是doGet和doPost方法已经被我们自己重写了,所以会执行我们重写的方法 看到这里,你或许有疑问:为什么我们不直接重写service方法? 因为如果重写service方法的话,我们需要将强转,以及一系列的安全保护判断重新写一遍,会存在安全隐患
与浏览器响应
首先我们需要创建一个web工程-配置tomcat
创建一个java类 继承HttpServlet
继承以后重写doGet doPost方法
为了页面能够找到对应的servlet 我们需要在web.xml注册servlet
看一下HttpServlet的关系图(ctrl+alt+u)
Servlet接口中的五个方法
void init(ServletConfig var1);
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) ;
String getServletInfo();
void destroy();
聊一聊servlet的生命周期
servlet (Birth to death)
加载-实例化-初始化-服务-销毁
当用户第一次请求时,首先判断是否存在servlet对象
第一次请求时不存在
则由tomcat创建对象,调用init()方法对其初始化
然后用servic()方法判断是get还是post请求
然后调用对应的方法返回给客户端
-------------------------------
当用户第二次请求时.还是判断是否存在servlet对象
由于第一次访问的时候已经创建对象
所有直接调用service()方法判断提交方式
调用对应的方法返回给客户端
当我们把tomcat关闭时,则会调用destory()方法销毁对象