1.    获取web的上下文路径

2.    获取全局的参数

3.    作为域对象使用

4.    请求转发

5.    读取web项目的资源文件

package day10.about_servletcontext.forward_redirect;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 【context对象的作用-4】:转发
* @author mzy
*
* 本例是请求转发(和请求重定向相似):
*
* 在servlet界面进行跳转的方式(区别):
* 1.请求重定向(重定向浏览器发出了两次请求:重定向动作由浏览器自己完成)
* 1)重定向的话,本质是转到了另一个页面,URL会跟着一起改变。
* 2)重定向的话,可以重定向到另一个项目下的资源。
* 3)重定向是浏览器行为。(浏览器可以请求任何行为)
* 4)重定向浏览器发出了两次请求。
*
* 2.请求转发(转发浏览器只发出了一次请求:转发动作由服务器完成)
* 1)请求转发URL是不会改变的,只是内容变化为转发的地址的内容。
* 2)转发的话,转发只能访问到当前项目下的资源,不能转发到其它项目下的资源。
* 3)转发是服务器行为。(服务器的转发只能转发到当前的项目下)
*
* 接触到的域对象:
* context
* request
* session
*
* 因为请求转发,转发使用的是一个请求:所以就可以使用请求(request)来作为域对象
* 但是如果是重定向的话,浏览器发出了两次请求,两次请求的request就不是同一个域对象了
* 所以在重定向中,不能使用request来作为域对象。
*
*
* 但是context就不一样了,一次只有一个context对象,不管是重定向还是转发都能使用context。
*
*
*
*/
public class ContextDemo04_FowardDemo01 extends HttpServlet { private static final long serialVersionUID = 1686962617232277250L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
/**
* 转发
*/
ServletContext context = this.getServletContext();
// URI
// 1.写法一
RequestDispatcher rd = context.getRequestDispatcher("/hello.html");
rd.forward(request, response); // 2.写法二
this.getServletContext().getRequestDispatcher("/hello.html").forward(request, response); // 3.写法三:sun公司在设计的时候,为了开发者在调用context的请求转发的时候方便;
// 直接让request将context的转发功能带上了,就可以直接写:
request.getRequestDispatcher("/hello.html").forward(request, response); // 但是我们还是要知道本质:
// 首先ServletContext只能通过ServletConfig来获取;
// 然后重定向的功能是ServletContext中提供的;
// 首先要通过ServletContext获得请求转发的对象(RequestDispatcher)通过:getRequestDispatcher方法
// 然后是再通过RequestDispatcher对象调用forward方法进行转发的。
} public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
} }

servlet中servletContext的五大作用(四)的更多相关文章

  1. servlet中servletContext的五大作用(三)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  2. servlet中servletContext的五大作用(二)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  3. servlet中servletContext的五大作用(一)

    获取web的上下文路径 获取全局的参数 作为域对象使用 请求转发 读取web项目的资源文件 package day10.about_servletcontext.get_path; /** * 首先区 ...

  4. servlet中servletContext的五大作用(五)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  5. web中servletcontext和applicationContext

    参看:http://www.cnblogs.com/isisbenben/p/5594323.html servletContext和ApplicationContext有什么区别 servletCo ...

  6. JavaWeb(一)Servlet中的ServletConfig与ServletContext

    前言 前面我介绍了一下什么是servlet,它的生命周期,执行过程和它的原理.这里我们做一个简单的回顾! 什么是Servlet? servlet 是运行在 Web 服务器中的小型 Java 程序(即: ...

  7. Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)

    一.Servlet简介  1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...

  8. [转]web.xml中servlet ,filter ,listener ,interceptor的作用与区别

    原文链接:https://blog.csdn.net/netdevgirl/article/details/51483273 一.概念: 1.servlet:servlet是一种运行服务器端的java ...

  9. servlet中的ServletContext对象

    ServletContext官方叫Servlet上下文.服务器会为每一个Web应用创建一个ServletContext对象.这个对象全局唯一,而且Web应用 中的所有Servlet都共享这个对象(在整 ...

随机推荐

  1. File类与常用IO流第四章——IO字节流

    一切文件在存储时,都是以二进制数字的形式保存的,都是一个一个字节.无论使用什么样的流对象,底层传输的始终是二进制数据. 字节输出流 OutputStream java.io.OutputStream ...

  2. 简单设计一个onedata指标管理体系

    以阿里云的maxcompute的数据仓库架构为例, 从上往下定义, dwp的数据,来源是dws+dim,最主要是dws.这里不讨论dim的作用. dws的数据来源于dwd. dwd的数据来源于ods. ...

  3. ES6 数组Arrary 常用方法

    ES6 数组Arrary 常用方法: <script type="text/javascript"> // 操作数据方法 // arr.push() 从后面添加元素,返 ...

  4. js检测客户端是否安装

    前言 需求背景:一个web下载页面,需要检测pc是否安装了客户端软件(windows软件).网页上有一个打开客户端按钮.若安装了客户端软件,则直接打开,否则下载软件.支持web下载页面在iframe下 ...

  5. python3执行.sql文件

    这个脚本主要是遍历执行文件夹下的sql文件,但是没有辨别文件的格式,所以文件夹下只能够放.sql文件,否则会报错哈. 我的sql文件夹与执行的文件平级,所以dir_path就是sql,大家依照自己的路 ...

  6. 创建Rdemo项目

    1.创建项目工作目录 mkdir /home/sesa464509/R/demo cd /home/sesa464509/R/demo vi sayHello.R ------------------ ...

  7. 就想搞明白,component-scan 是怎么把Bean都注册到Spring容器的!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 忒复杂,没等搞明白大促都过去了! 你经历过618和双11吗?你加入过大促时候那么多复 ...

  8. Deepin 20.1打造软件开发环境

    支持国产操作系统,替代Windows势在必行,不能让美国卡"脖子"是广大计算机爱好者的共同心愿,下面列举一下Deepin V20.1下如何安装常用软件 ============== ...

  9. JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

    检测

  10. webRTC的标准与发展

    Web实时通信(WebRTC)是标准,协议和JavaScript API的集合,两者的组合可实现浏览器(对等)之间的对等音频,视频和数据共享.WebRTC无需依赖第三方插件或专有软件,而是将实时通信转 ...