Servlet 学习
Servlet 实际开发很少用到。 【java基础】记录java 入门到放弃过程。
开发环境IDEA
Servlet 对应net 中 一般处理程序。
从基本的例子开发:创建过程 https://www.cnblogs.com/javabg/p/7976977.html
看到IDEA设置这个那个
理解 IntelliJ IDEA 的项目配置和Web部署
https://www.cnblogs.com/deng-cc/p/6416332.html
这个可以跳过。
web.xml配置介绍:图片文字描述
其他的:获取参数,输出,乱码 等 参考网上的api 。想了想就不写了。跟重要记录心得。
通过例子:
发现 我们新建的都是继承 HttpServlet,里面的DoGet,DoPost 都是重写 Ctrl+b 定位到源码 :发现所有的都是通过 service 等等。
运行过程:
生命周期:总结(net mvc ,webfrom ..,vue 各种语言 都有生命周期 个人一句话总结:
程序从运行到结束过程,不同的阶段 提供不同 的方法给外界在不同的时候注入
( 调用可能说的不恰当 是否换成注入?) 毕竟我们写的都是给系统调用。
1).Servlet生命周期 实例化,初始化,提供服务,销毁,被回收:
1,初始化阶段:调用init()方法
2,响应客户请求阶段:调用service()方法 ,Service()方法内部对请求的类型(get/post)进行了判断,自动调用doPost/doGet
3,终止阶段:调用destroy()方法
2).Servlet的单例多线程:
单例:Servlet只在用户第一次请求时被实例化,并且是单例的,在服务器重启或关闭时才会被销毁。
多线程:当请求到达时,Servlet容器(Tomcat...)通过线程池中可用的线程给请求者并执行Service方法,每个线程执行一个单一的 Servlet 实例的 service() 方法
验证:
-
Servlet 通过调用 init () 方法进行初始化?
-
HttpServlet 方法里面没有找到,HttpServlet 继承 GenericServlet
-
单例模式?
-
注意:配置文件中不要定义 <load-on-startup>10</load-on-startup>
- init 会随tomcat启动 而触发
在继续学习情况下:会发现
其中一个比较明显的弊端就是在Servlet编写html代码很痛苦,
最好可以在html文件里面写html代码,同时又能在里面调用java的变量,那么这样就需要学习JSP了。
但是又发现jsp 里面 一会html 一会java代码 。
下个主角 mvc 诞生了。