Java-html篇——Servlet
Servlet
Servlet基础
- Servlet是在服务器端运行以处理客户端请求而做出的响应的程序
- Servlet是在服务器上运行的小程序,一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。
Tomcat容器等级
Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程。
编写Servlet程序的步骤:
- 继承HttpServlet
- 重写doGet()或者doPost()方法
- 在web.xml中注册Servlet
Servlet执行流程 和生命周期
Servlet执行流程:
接收用户请求 点击一个超链接Get方式请求HelloServlet ,超链接的地址就是一个servlet,超链接的方式提交就是Get请求
Get方式请求HelloServlet ,则服务器就在web.xml中寻找与之相对应的URL地址,即在servlet-mapping中寻找和超链接对应的servlet,再到servlet标签中寻找与之对应的servlet处理类,再去src目录下寻找对应的处理类,根据用户提交的请求处理方式去执行对应的doGet和doPost方法
编写Servlet的doPost方法时,需要抛出ServletExcpetion和IOException异常,不会抛出HttpServletException异常。
Servlet生命周期:
servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。
- 初始化阶段,调用init()方法
- 响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法
- 终止阶段,调用destroy()方法
在下列时刻Servlet容器装载Servlet:
Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的之间添加代码:
<loadon-startup>1</loasdon-startup> //数字越小优先级越高
Servlet容器启动时,自动装载某些Servlet
需要在web.xml文件中进行如下配置:
<servlet>
...
<loadon-startup>1</loasdon-startup> //数字越小优先级越高
</servlet>
当servlet类被更新之后也会重新装载Servlet
Tomcat装载servlet的三种情况
在下列时刻Servlet容器装载Servlet:
- 在Servlet容器启动后,客户首次向Servlet发送请求
- Servlet类文件被更新后,重新装载Servlet
- Servlet被装载后,Servlet容器创建一个Servlet实力并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
Servlet先是调用构造方法被执行 在调初始化方法被执行 再调用doGet()方法
Servlet与JSP内置对象的对应关系
获取初始化参数
在web.xml中配置Servlet时,可以配置一些初始化参数。而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数
Servlet获取表单数据
。。。。。。。。待完善
Servlet路径跳转
<!--使用相对路径访问HelloServlet -->
<!-- /servlet/HelloServlet 第一个/表示服务器的根目录 -->
<a href="servlet/HelloServlet">访问HelloServlet!</a><br>
<!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
<a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>
<!--表单中action的URL地址写法,与超链接方式完全相同。 -->
<a href="servlet/TestServlet">访问TestServlet,跳转到Test.jsp</a>
MVC设计模式
MVC:Model View Controller 主要是分离模型、控制、视图