在初学Java web的时候,就曾听到过这样一种说法:
  java Web的演变过程大概可以分为4个阶段:
    1. jsp + Servlet + jdbc
    2. spring + struts2+ hibernate(ssh)
    3. spring + SpringMVC + mybatis(ssm)
    4. 微服务阶段。
  所以学习 Java web,可以从第3个阶段开始学习,不用再去关注Servlet,那么Servlet是否还有学习的必要呢?
答案是有,并且非常重要。俗话说万变不离其宗,这个宗指的就是技术的底层,你会发现技术的底层其实都是相通的,只要把握了这个宗,我们就能在技术的浪潮来临时,把握机会,而不是去追逐一个又一个的泡沫。
  我记得初学java的时候,还是大三上,教我们java的老师是我们学院的副院长。他让我们用记事本去编写程序,用命令行去执行程序,而隔壁班用的却是eclipse。当初非常羡慕隔壁班,能用上“高大上”的开发环境,不用去改一个又一个的编译错误。现在想起来,却非常感谢那段经历,它让我对Java程序的执行过程有了更直观的认识,对java这门编程语言本身有了更深刻的认识。
而现在作为一个Java程序员,我们已经习惯了使用IDE和Web框架进行开发,IDE帮助我们做了编译、打包的工作。Spring框架则帮助我们实现了Servlet接口,并把Servlet容器注册到了Web容器中。这样我们就可以专注于实现业务逻辑,但是同时,却缺少了接触底层的机会。
  如果程序一直都处于正常运行的状态,不了解底层其实并没有什么问题,但是如果程序一旦出现了预期之外的异常,那么如果我们不懂底层,就没有办法准确的定位问题。
所以今天要和大家分享的是Servlet的学习:

2|0手工搭建一个Servlet


2|1下载Tomcat


  首先我们需要下载Tomcat :https://tomcat.apache.org/download-90.cgi
  Tomcat的目录如下: (Mac系统、Tomcat 8.5.38)
 
  • /bin:存放在windows(.bat)和Linux(.sh)环境下运行的脚本文件。
  • /conf: 存放配置的文件,其中最重要的是server.xml(配置Servlet)
  • /lib:存放Tomcat以及所有Web应用都可以访问的jar文件
  • /logs:存放Tomcat执行时产生的日志文件
  • /work:存放JSP编译后的产生class文件
  • /webapps:Tomcat的Web应用目录

2|2编写Servlet程序


  我们可以通过继承GenericServlet抽象类或者HttpServlet抽象类来实现我们自己的Servlet。HttpServlet是在GenericServlet的基础上,进一步封装了Http的特性,相对GenericServlet而言使用简单,我们只需要重写doGet和doPost方法即可。所以这里我们使用HttpServlet。(这里我们是使用记事本编写的,如果你是使用ide,请引入javax.servlet包,因为这个包不在jdk的标准开发包中,方法可以参考:https://blog.csdn.net/q343509740/article/details/79515911)