首页 > 学院 > 开发设计 > 正文

【Servlet】02-Servlet技术模型

2019-11-08 01:50:23
字体:
来源:转载
供稿:网友

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

HTTP中的各种方法对应HttpServlet方法使用HttpServletRequest接口获取请求首部使用HttpServletResponse接口设置相应首部、设置响应内容类型、使用流、URL重定向拥有生命周期

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

Created with Raphaël 2.1.0Web容器Web容器Servlet类Servlet类Servlet对象Servlet对象加载.class构造方法init()只执行一次哦service()可以反复执行(多线程)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,于是,

// 下面是使用相对URLresponse.sendRedirect("<someurl>");// 下面是使用绝对URL,从项目根寻址response.sendRedirect("/someurl");
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表