重定向

来源:互联网 发布:二叉树叶子节点算法 编辑:程序博客网 时间:2024/04/29 10:58

重定向

什么时候重定向

以员工管理信息为例:
添加员工,访问SaveServlet,添加成功后,通知浏览器显示添加后的数据库中的所有数据,指定浏览器访问FindAllServlet

Servlet映射路径

精确匹配

<url-pattern>/save.do</url-pattern>http://ip:port/appName/save.do

通配符匹配

<url-pattern>/*</url-pattern>http://ip:port/appName/任意路径

后缀匹配

<url-pattern>*.do</url-pattern>http://ip:port/appName/以.do结尾的任何路径

优先级:精确匹配 > 通配符匹配 > 后缀匹配

一个Servlet处理多个请求

方案一:

使用精确匹配,多个请求向Servlet中传递参数
弊端:需要传递一个没有业务意义的参数

方案二

使用后缀匹配
获取请求资源路径,并解析
String uri = request.getRequestURI();
uri.substring();

Servlet的生命周期

阶段一:实例化

容器调用Servlet的构造器,创建一个Servlet对象

实例化Servlet的时机
情景一 : 开始容器中没有Servlet对象,只有第一次收到请求后才创建Servlet对象
情景二 : 容器启动之后,立即创建Servlet的对象
Servlet作为整个应用的(核心)前端控制器

<!-- 默认级别 0、1、2 --><load-on-startup>2</load-on-startup>

阶段二:初始化

容器在创建Servlet之后,会立即调用init()方法。
init()方法只会执行一次。

自动创建一个ServletConfigure对象,用于封装Servlet的参数

阶段三:就绪

调用Service()方法,实现功能。每请求一次调用一次。

阶段四:销毁

容器根据自身的算法删除Servlet对象,删除前会自动调用destory()方法。
destory()方法只会被执行一次。

浏览器servlet.do —> 访问servlet
容器创建哪些对象?
Request、Response、XXXSevlet、ServletConfig

Servlet核心类

GenericServlet
HttpServlet
UserServlet extends HttpServlet
UserServlet implements Servlet

Servlet上下文

作用:
1.绑定数据,获取绑定数据
context.setAttribute()
context.getAttribute()
2.获取服务器相关数据
context.getRealPath(“file”);

获取Servlet上下文

  • GenericServlet对象中的getServletContext()
  • ServletConfig对象中的getServletContext()

Servlet上下文的作用

  • setAttribute() 设置绑定数据
  • removeAttribute() 移除绑定数据
  • getAttribute() 获取绑定数据

Servlet上下文中绑定的数据可以被整个容器上的所有组件共享,并且一直可以被访问。

0 0