JavaEE学习笔记(2)-------Servlet

一、什么是Servlet?
Servlet本质上是Java程序——依赖jdk环境
Servlet装配到哪里?——装配到Tomcat容器当中
Servlet的作用?——总的来说,是帮助tomcat服务器扩大对Web应用的功能(增强健壮Web功能)。其装配在Tomcat之中,可以理解为,是tomcat的一个扩展功能的插件。拆开来讲,实际上servlet有两个主要的功能:1.创建动态web页面。2.处理请求、返回响应
流程:浏览器向服务器发送请求,服务器将请求交给Servlet容器处理,Servlet将响应由服务器返还给浏览器
二、Servlet API
每一个自定义的Servlet都需要继承HttpServelt

HttpServelt( 基于Http 协议 )——>GenericServlet(无协议的)——>超级接口:Servlet接口【定义了Servlet生命周期相关的方法】 和 ServletConfig【Servlet配置相关的方法(如获得初始化参数等等)】 ( 序列化接口 )

JavaEE学习笔记(2)-------Servlet_第1张图片

JavaEE学习笔记(2)-------Servlet_第2张图片

HttpServletRequest:包含了请求的相关信息,携带了发送请求方,也就是浏览器的一些信息

HttpServletResponse:包含了响应的相关信息,实际上里面可以携带服务器想传送给浏览器的信息

三、如何创建并使用一个Servlet
JavaEE学习笔记(2)-------Servlet_第3张图片

第一步:创建类继承HttpServlet,并重写doGet()/doPost()
JavaEE学习笔记(2)-------Servlet_第4张图片

第二步:配置servlet
JavaEE学习笔记(2)-------Servlet_第5张图片

① 在web.xml中进行配置

firstServlet
com.test.servlet.MyFirstServlet


firstServlet
/first

② 通过注解配置(@WebServlet()),例如:@WebServlet(description = “mysecondservlet”, urlPatterns = { “/second”, “/mysecondservlet” }, initParams = {
@WebInitParam(name = “num”, value = “3”) })

第三步:访问servlet
JavaEE学习笔记(2)-------Servlet_第6张图片

通过地址栏访问
http://127.0.0.1/TestWeb2/first
发送Get请求,调用Servlet当中的doGet方法
通过超链接访问

发送Get请求,调用Servlet当中的doGet方法
通过表单控件提交访问
表单当中的action指定需要访问的url的路径
表单当中的method指定发送请求的方式(post/get)
四、生命周期
1.实例化——构造方法的调用
2.初始化——init()
3.工作——service()/doGet()/doPost()
4.销毁——destory()

Tip:
1.什么时候实例化和初始化?一般情况下,servlet被第一次访问的时候进行先实例化、再初始化,值得说明的是,实例化和初始化方法仅会执行一次。
特殊情况:可以通过改变实例化和初始化的时间
2.一般情况下,先调用service(),再由service方法根据请求的method方式分配到不同doXXX()。如果没有重写service()方法,那么就直接执行对应method的doXXX()方法。值得说明的时,访问几次servlet,service()/doXXX()就会执行几次
3.销毁方法是当服务停止的时候,或者servlet容器重新载入(Servlet程序文件被修改)的时候调用
4.Tomcat容器当中装载了Servlet容器,Servlet容器当中,每一个部署到Tomcat当中的项目,都会有一个上下文容器,那么每个项目的servlet实际上就是上下文容器去实例化的。

五、Servlet配置
1)通过改变servlet实例化的时机
① 值只能为整数
② 当值为0或者负数的时候表示,只有第一次访问servlet的时候才会对其进行实例化。
③ 当值为正数的时候,就意味着,当servlet容器装配好,我们的servlet实例就会被创建
④ 当值为正数的时候,值越小,优先级越高
⑤ 是写在web.xml文件的指定的当中的,不可以给其它的servlet共享。

2)通过进行初始化参数的赋值

key
value

3)通过ServletConfig.getParameterValue(String key) 获取servlet初始化参数的值
4)以上两个内容的设置都是既可以用web.xml进行配置的,又可以使用注解进行的。

你可能感兴趣的:(servlet,java-ee,学习)