Servlet和tomcat容器以及web

1 篇文章 0 订阅

0.动态web资源

程序员若想发送动态web资源(即使用一个Java程序向浏览器输出数据)给用户,需要完成两个步骤:

  1. 编写一个实现了Servlet接口的Java类,该类称为Servlet
  2. 把开发好的Java类部署到web服务器中

1.Servlet

  • Servlet只是一个接口(规范),该接口定义的是一套【处理】网络请求的规范。
    在这里插入图片描述
  • Servlet运行过程
    1.Web服务器先检查容器中是否已装载并创建该Servlet实例对象。若有执行4,若无执行2
    2.装载并创建该Servlet的一个实例对象
    3.调用Servlet实例对象的init()方法
    4.创建一个用于封装HTTP请求消息的HttpServletResquest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法,并将请求和响应对象作为参数传递出去
    5.WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法

访问任何资源都是在访问Servlet(即便是访问图片资源,Tomcat都有默认Servlet处理)

2.tomcat

  • 是web服务器同时是Servlet容器
  • 对于网络协议、http、监听8080端口等Servlet不管,而是由Servlet容器来管,所以要把Servlet部署到容器(tomcat,用来接收和返回请求)中,所以与客户端直接打交道的是tomcat。
  • tomcat监听端口,接受请求后根据url等确定将请求交给那个Servlet去处理(调用该Servlet的service方法,该方法返回一个response对象,tomcat再把这个response返回给客户端)

在这里插入图片描述tomcat的目录层次结构
在这里插入图片描述Javaweb的标准目录结构

tomcat认为资源分三种,因为三种资源最终都交给Servlet处理所以tomcat又叫做Servlet容器:
1.对于静态资源,Tomcat最后会交由一个叫做DefaultServlet的类来处理
2.对于Servlet ,Tomcat最后会交由一个叫做 InvokerServlet的类来处理
3.对于JSP,Tomcat最后会交由一个叫做JspServlet的类来处理

补充:
正规的项目前面都有一个静态服务器(一般是nginx,apache,他们除了做负载均衡这些,最重要的是处理静态文件)如果没有前面的静态服务器,所有的资源都用tomcat的静态资源servlet处理,都会占掉了一个tomcat的线程池的一个线程,这样tomcat的性能就会受到非常大的影响。

3.ServletConfig和ServletContext

在这里插入图片描述
ServletConfig:可以读取web.xml(单个文件)中配置的初始化参数
ServletContext:该对象在Tomcat启动时创建(代表整个应用),用来获取整个应用的配置信息,也可用来读取资源文件

4.request和response对象

http协议有请求头和响应头。request封装了http的请求头,response封装了http的响应头。

通过response对象:
给浏览器输出一些简单的内容
实现文件下载的功能
实现页面自动刷新的功能
实现对数据的压缩
生成验证码图片
重定向跳转…

通过request对象:
得到浏览器的传递过来的各类信息(请求参数、请求头等)
实现防盗链
通过request对象来转发
解决请求参数中文乱码的问题…

Config(获取配置信息)、Context(代表整个Web应用)、Request(HTTP请求)、Response(HTTP响应)、会话机制 (Cookie和Session)

4.web

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值