Servlet学习之路day03

ServletContext 上下文对象 了解

用于关联多个Servlet
是多个Servlet之间 通信的桥梁, 用于多个Servlet之间信息额的共享 等等!

ServletContext 在JSP技术中,我们称其为 application!

我们的tomcat启动时,会为每一个项目创建且仅创建一个ServletContext对象!在服务器关闭或应用被卸载时,对象会被销毁!

我们在项目的Servlet中,可以通过一些方法,得到这个对象,并进行数据的存储,修改,删除,获取操作!

如何从Servlet中 得到一个ServletContext对象

在Servlet中,通过一个getServletContext方法 获取上下文对象
格式:

	ServletContext context = getServletContext();
ServletContext常用方法

1.设置&替换数据

	context.setAttribute(String key,Object value);

2.获取数据

	Object value = context.getAttribute(String key);

3.删除数据

	context.removeAttribute(String key);

4.获取项目运行时所在的文件路径

	String 路径 = context.getRealPath("/");

ServletConfig 对象 了解

是一个Java类,每一个Servlet都拥有一个ServletConfig对象

获取对象的两种方式(这两种方式是互斥的):

  1. 在Servlet中,通过ServletConfig() 获取!
  2. 通过重写init方法,使用参数列表中的config对象!

我们可以通过web,xml 向每一个Servlet添加配置信息,在Servlet中可以通过ServletConfig得到这些配置信息!

格式:

	<servlet>
		<servlet-name></servlet-name>
		<servlet-class></servlet-class>
		<init-param>
			<param-name>key</param-name>
			<param-value></param-value>
		</init-param>
	</servlet>

通过ServletConfig如何获取初始化的参数数据

	String value = config.getInitParameter(String key);

获取所有的key

	String[] arr = config.getInitParameterNames();

Servlet 创建时机

web.xml中 Servlet的配置中

 可以通过<load-on-startup> 节点 来指定Servlet启动顺序

当节点值为负值不写时,表示用户第一次请求时,创建此Servlet !
当节点值等于0或大于0时,在Tomcat启动时,创建此Servlet !

如果存在多个等于0或大于0的Servlet,启动顺序是:==值越小越早创建 ==!
值相同时,自上而下顺序创建!

请求重定向 与 请求转发

请求转发与重定向,在一次业务中,可以进行多次!
请求转发与重定向,必须存在结束的操作,也就是必须存在响应!

请求转发*****

一个web组件, 将未处理完成的请求,通过tomcat转交给另一个web组件进行处理!
步骤:

	//1.获取请求转发器
	RequestDispatcher rd = request.getRequestDispatcher("转发的地址");
	//2.进行转发操作
	rd.forward(request,response);
	//简写
	request.getRequestDispatcher("转发的地址").forward(request,response);

特点:

  1. 在转发过程中,多个web组件之间共享一个请求对象 与 响应对象!
  2. 在转发的流程中,浏览器只发起了一次请求,所以浏览器地址不会发生改变!
  3. 转发不能跨项目实现
  4. 相较于重定向来说,效率较高!

请求重定向****

一个web组件,处理完毕请求后,告知浏览器,将请求转向下一个web组件!

格式:

 response.sendRedirect("重定向的地址");

原理:

 当客户端请求服务器时,服务器给浏览器响应一个302的状态码,以及一个location地址。
 浏览器每连接到302状态码时,就会自动寻找响应中的location,并向这个location发起新的请求!

特点:

  1. 产生了两次请求。
  2. 浏览器地址发生改变。
  3. 重定向可以跨服务器实现(例如我们的项目,可以请求重定向至百度)
  4. 性能较低

HttpServletRequest 常用操作

  • request.getMethod() 得到请求的方式
  • getRequestURI() :获取请求地址
  • getRemoteAddr() :获取客户端的IP地址
  • getRemoteHost() : 获取客户端的机器名称
  • getServerName() :获取服务器的名称
  • getServerPort() :获取放服务器运行的端口号
  • getQueryString() :获取GET请求的 网址? 后的字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值