众所周知,我们创建一个javaweb项目后,在客户端想要访问服务器,得发起http请求,服务器对请求会进行响应,看似简单的请求和响应有很大的门道。虽然我们都会用servlet但是不乏有人不懂其中的原理,接下来我就浅谈一下servlet的一些底层的原理。
1、创建一个javaWeb项目,测试能否正常运行。
1.1、导入servlet的jar包,创建一个类,继承HttpServlet。
1.2、req接收前端传过来的参数,resp是返回给前端的数据。
req接收数据:只能通过这个实例拿到前端给我们的数据
resp进行响应:只能通过这个实例把数据送给前端。
1.3、将项目部署在tomcat上,然后运行。
前端输出从后端返回的字符串
后端输出从前端传入的参数
1.4、一个http请求的生命周期
前端发出HTTP请求时,通过URL找个Servlet实例,tomcat会让这个Servlet实例初始化,请求处理完成后,不会立刻销毁实例。
2、 源码解析
我们创建的servlet类继承了HttpServlet,HttpServlet继承GenericServlet。
当前端发送请求后,通过继承的HttpServlet中的service方法,通过service方法判断解析后的http请求是get还是post请求或者是其他类型的请求,大多数请求都是get和post请求,创建的servlet实例中重写了doget()和dopost()方法,然后通过service方法调用重写后的get或post请求。