servlet中servletContext的五大作用(四)
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的五大作用(四)的更多相关文章
- servlet中servletContext的五大作用(三)
1. 获取web的上下文路径 2. 获取全局的参数 3. 作为域对象使用 4. 请求转发 5. 读取web项目的资源文件 package day10.about_serv ...
- servlet中servletContext的五大作用(二)
1. 获取web的上下文路径 2. 获取全局的参数 3. 作为域对象使用 4. 请求转发 5. 读取web项目的资源文件 package day10.about_serv ...
- servlet中servletContext的五大作用(一)
获取web的上下文路径 获取全局的参数 作为域对象使用 请求转发 读取web项目的资源文件 package day10.about_servletcontext.get_path; /** * 首先区 ...
- servlet中servletContext的五大作用(五)
1. 获取web的上下文路径 2. 获取全局的参数 3. 作为域对象使用 4. 请求转发 5. 读取web项目的资源文件 package day10.about_serv ...
- web中servletcontext和applicationContext
参看:http://www.cnblogs.com/isisbenben/p/5594323.html servletContext和ApplicationContext有什么区别 servletCo ...
- JavaWeb(一)Servlet中的ServletConfig与ServletContext
前言 前面我介绍了一下什么是servlet,它的生命周期,执行过程和它的原理.这里我们做一个简单的回顾! 什么是Servlet? servlet 是运行在 Web 服务器中的小型 Java 程序(即: ...
- Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)
一.Servlet简介 1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...
- [转]web.xml中servlet ,filter ,listener ,interceptor的作用与区别
原文链接:https://blog.csdn.net/netdevgirl/article/details/51483273 一.概念: 1.servlet:servlet是一种运行服务器端的java ...
- servlet中的ServletContext对象
ServletContext官方叫Servlet上下文.服务器会为每一个Web应用创建一个ServletContext对象.这个对象全局唯一,而且Web应用 中的所有Servlet都共享这个对象(在整 ...
随机推荐
- Python图表库Matplotlib 组成部分介绍
图表有很多个组成部分,例如标题.x/y轴名称.大刻度小刻度.线条.数据点.注释说明等等. 我们来看官方给的图,图中标出了各个部分的英文名称 Matplotlib提供了很多api,开发者可根据需求定制图 ...
- 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节
摘要:ROMA平台的核心系统ROMA Connect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验. 本文分享自华为云社区<ROMA集成关键技术(1)-API流控技术详解& ...
- npm WARN checkPermissions Missing write access to ......解决方法
npm安装出错 npm WARN checkPermissions Missing write access to ...... 解决方法: 删除本地node_modules文件夹,之后再次 npm ...
- Mysql分区表使用
一.什么是分区表 分区表就是按一定规则将一张表分割成多个部分,达到和物理分表同样的效果,但操作起来更 简单,不同于物理分表那样使用时还需要指定使用的数据表.对于使用者来说和操作普通表无差别. 二.优势 ...
- Beautiful Soup4.4.0中文官方文档!最权威的参考---中文官方文档
最好用的解析库Beautiful Soup 解析库-----中文官方文档 https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/
- 版本号是通过import合并而来的,不是继承来的
- php预定义常量运用
当前url 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 当前文件路径 dirname(__FILE__)header(" ...
- jdk的下载与安装教程
最近在学逆向,就是要反编译人家的java代码,在这之前要先安装环境,下面是下载和安装JDK的教程: 1.JDK下载地址: http://www.oracle.com/technetwork/java/ ...
- JavaEE在线就业班2.0-(1)-《博学谷》
JavaEE在线就业班2.0学习笔记 1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java语言是美国 ...
- 表单验证插件jquery-validation以及案例
表单验证插件jquery-validation以及案例 1,获取并引入: (1)获取:官网:https://jqueryvalidation.org/ [home]->[files]->[ ...