【Servlet】02-Servlet技术模型

Web应用体系结构中,我们知道,容器控制Servlet的生命周期,负责封装用户请求给特定的Servlet。Servlet的具体职能如下:

  • HTTP中的各种方法对应HttpServlet方法

  • 使用HttpServletRequest接口获取请求首部

  • 使用HttpServletResponse接口设置相应首部、设置响应内容类型、使用流、URL重定向

  • 拥有生命周期

Servlet的一生:
寻找类->加载类->构造对象->init()变成真正的Servlet

Web容器->Servlet类: 加载.class
Web容器->Servlet对象: 构造方法
Web容器->Servlet对象: init()只执行一次哦
Web容器->Servlet对象: service()可以反复执行(多线程)
Web容器->Servlet对象: destory()

Servlet生命中的三大重要时刻:

方法何时调用作用是否可覆盖
init()Servlet实例创建以后,提供服务前初始化Servlet,只运行一次可以
service()第一个客户请求到达时确定调用何种方法,有自己的栈不可以
doGet()/doPost()service()判断以后处理客户端请求至少要覆盖一个

我们知道,Servlet主要是对请求/响应模型进行实现,因此,HttpServlet中重要的方法:
请求:

  • getHeader(String name)

  • getRemotePort()

  • ...

响应:

  • setContentType(String contentType)

  • setHeader(String name, String value)

  • getOutputSream()

  • getWriter()

  • setRedirect(String url)

  • ...

我们的Servlet可以自己处理请求-响应细节,也可以把请求委托给其它中间件(服务器、Servlet)

  • 转发:URL不变,委托其它人(服务器内部跳转)

  • 重定向:直接将请求定向到其它URL(让客户端二次请求)
    p.s. 不能再响应之后(已经往流里写东西了),sendRedirect()

既然我们说到URL,URL也是有相对URL和绝对URL,于是,

// 下面是使用相对URL
response.sendRedirect("<someurl>");
// 下面是使用绝对URL,从项目根寻址
response.sendRedirect("/someurl");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值