侧边栏壁纸
博主头像
惊羽博主等级

hi ,我是惊羽,前生物学逃兵,现系统工程沉迷者 . 贝壳签约工程师 , 曾被雇佣为 联拓数科 · 支付研发工程师 、京东 · 京东数科 · 研发工程师、中国移动 · 雄安产业研究院 · 业务中台技术负责人 .

  • 累计撰写 100 篇文章
  • 累计创建 14 个标签
  • 累计收到 9 条评论

javaweb(1) - Servlet

惊羽
2021-03-16 / 0 评论 / 0 点赞 / 154 阅读 / 2,301 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-06-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. Servlet的理解

1.1 实质

1.1.1 原始java程序 : 本地运行

main method 作为入口,客户端本身也是服务端,运行结果往往是实时反馈的.

1.1.2 CS java应用 : 远程运行

Servlet = Server + Applet ---- > 运行在服务器端java程序,Servlet运行在服务端的Java小程序,是sun公司提供一套规范,用来处理客户端请求、响应给浏览器的动态资源。servlet的本质上是java代码,通过java的API动态的向客户端输出内容.

1.1.3 servlet 调用链路

7b6fa76f0bad46f59e475654833feb27.png

1.2 servlet的三个组件

servlet
filter
listener

2. startup

2.1 理论实现

2.1.1 创建类实现Servlet接口
2.1.2 覆盖尚未实现的方法(着重关注service方法)
2.1.3 在web.xml进行servlet的配置(web.xml就相当于web工程清单)

2.2 常规实现

直接去实现Servlet接口需要覆盖的方法太多,一般继承HttpServlet就够用了

2.2.1 创建类继承HttpServlet类
2.2.2 覆盖doGet和doPost
2.2.3 在web.xml中进行servlet的配置

3. Servlet生命周期

3.1 创建

默认第一次访问时创建 当该对象创建完毕后立即调用init方法
也可以通过配置让服务器一启动就创建Servlet对象,
例如 :

<load-on-startup>1</load-on-startup>

3.2 销毁

服务器关闭或从tomcat容器中将该项目移除

3.3 Servlet接口中API

1)init(ServletConfig config)
2)service(ServletRequest request,ServletResponse response)
3)destroy()

3.3 HttpServlet类中API

1)init()
2)doGet(HttpServletRequest request,HttpServletResponse response)
3)doPost(HttpServletRequest request,HttpServletResponse response)
4)destroy()

4. Servlet的配置

4.1 基本配置

三种配置方式:

4.1.1 完全匹配 客户端的访问资源的地址与配置的地址完全一致
4.1.2 目录匹配 语法:以/开始 以*结束

示例:

/aaa/bbb/*    --- 代表访问/aaa/bbb下的任何资源都匹配
4.1.3 扩展名匹配 语法:以*开始 以扩展名结束

示例:

*.abc

注意:第二种与第三种不能混合使用
例如:

/aaa/bbb/*.abc  ---- 错误的

5. Servlet的继承体系

tomcat引擎负责创建servlet对象,创建完后引擎执行service(ServletRequest request, ServletResponse response)方法,流程 :

--->service(ServletRequest request, ServletResponse response)
--->自己定义的servlet没有service方法
--->去HttpServlet中找service方法
--->将ServletRequest 和ServletResponse 强转
--->获得请求方式  get  post
--->根据不同的请求方式调用不同的方法
--->调用是子类servlet中覆写的doGet和doPost
(实际开发中 不会去直接实现servlet接口会继承HttpServlet类  覆盖内部doGet和doPost方法)
......

6. ServletContext

6.1 含义

servlet的上下文对象,ServletContext就代表一个web应用
ServletContext内部维护着该web应用的一些相关信息

6.2 获取

ServletContext context = config.getServletContext()
ServletContext context = this.getServletContext();

6.3 作用

获得web应用的初始化参数
获得web应用下任何资源的绝对路径
ServletContext是一个域对象

0
广告 广告

评论区