servlet中servletContext的五大作用(一)
- 获取web的上下文路径
- 获取全局的参数
- 作为域对象使用
- 请求转发
- 读取web项目的资源文件
package day10.about_servletcontext.get_path;
/**
* 首先区别:
* 一个网站只有一个ServletContext对象
* 而每一个Servlet都有一个ServletConfig对象
*
* 但是我们拿Context对象的话,其实是通过Config对象去
* 拿的,因为每一个ServletConfig中都有一个ServletContext
* 的成员变量;
*
* 其次因为ServletConfig是在ServletContext之前创建的;
* 因为ServletContext是在启动的时候创建的
* 而ServletConfig对象是在调用init方法之前创建的。
*
java中获取ServletContext的常见方法
1.在javax.servlet.Filter中直接获取
ServletContext context = config.getServletContext();
2.在HttpServlet中直接获取
this.getServletContext()
3.在其他方法中,通过HttpRequest获得
request.getSession().getServletContext();
*/
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 【context对象的作用—1】:获取web的上下文路径
* getContextPath();
*
*
* @author mzy
*
*/
public class ContextDemo01 extends HttpServlet {
private static final long serialVersionUID = -4556050230938613373L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
// 1.1:首先要获取到ServletContext对象
/*
* 这种方法原则上没有错:
* 因为加载的顺序上是config在context之前
* 并且context必须通过config对象来获取,
* 但是java设计者为了简化我们的代码,
* 在源码中重新写了这部分;
*
* 他将
* this.getServletConfig().getServletContext();
* 封装到了源码的 getServletContext()的方法中了;
* 但是我们还是需要记得获取context对象必须要获得
* config对象;
*
* 获得context对象,必须要通过config对象来获取;
*
* 以下只是代码的简化而已
*
*/
// ServletContext context = this.getServletConfig().getServletContext();
ServletContext context = this.getServletContext();
String path = context.getContextPath();
System.out.println(path);
/*
* 以上就是上下文路径:但是需要注意的是,当我们在eclipse或者myeclipse中修改
* 项目名称的时候,我们修改了之后其实它的上下文路径是没有变的;
* 比如我们原来项目叫做 myday09,修改为myday10之后,我们run这个项目下的文件
* 最后跑出来的时候,可以看见项目名依旧是myday09,所以这个时候的context我们
* 需要去tomcat中改文件夹名称,或者:右键项目Properties-->myeclipse-->web
* -->context root 修改
*
* 当然新版本的myeclipse中没有这种问题,但是老版的myeclipse和eclipse中可能
* 存在这种问题需要注意
*/
// String path = context.getContextPath(); 获取上下文路径的好处??
// 主要表现在做请求重定向的时候
response.sendRedirect("/MyFirstServlet/hello.html");
// 作用可以让这个获取文件的路径更加的灵活
response.sendRedirect(context.getContextPath() + "/hello.html");
}
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的五大作用(四)
1. 获取web的上下文路径 2. 获取全局的参数 3. 作为域对象使用 4. 请求转发 5. 读取web项目的资源文件 package day10.about_serv ...
- 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都共享这个对象(在整 ...
随机推荐
- springMVC-7-数据处理转换
我们为什么要对数据进行处理? 需求:在上个crud中我们如果需要每次修改的时候都要把时间也记录下来 解决:在jsp中新增一个input,在employee中新增一个Data字段 问题:input输出来 ...
- shell脚本(6)-shell数组
一.数组介绍 一个变量只能存一个值,现实中很多值需要存储,可以定义数组来存储一类的值. 二.基本数组 1.概念: 数组可以让用户一次性赋予多个值,需要读取数据时只需通过索引调用就可以方便读出. 2. ...
- js 正序、倒序、按字段排序方法
js 基础--sort方法: arrayObject.sort(sortby); 参数:定义排序规则(正序.倒序.按字段排序)的函数: 返回值:对数组的引用.请注意,数组在原数组上进行排序,不生成副本 ...
- 使用 Python 翻译 CHM 帮助文档
此方法绝对切实可行 翻译成品项目: https://github.com/foyoux/InstallShield2020-Documents 效果预览 安装 docts 库 pip install ...
- Python - 函数实战
前言 参考的是慕课网提供的实战,自己编码 http://www.imooc.com/wiki/pythonlesson1/function2.html 什么是模块化程序设计 在进行程序设计时将一个大程 ...
- RHCSA_DAY02
Linux:一切皆文件 分区:/boot:做引导盘 /swap:虚拟内存----最大20gb /data:自己放文件用 /:根分区 - 图形界面: - Ctrl+Shift +号 //调整命令 ...
- Windows协议 LDAP篇 - 组&OU
LDAP搜索 LDAP查找 位操作 以userAccountControl为例,CN=User-Account-Control,CN=Schema,CN=Configuration,DC=muxue, ...
- ffuf 基础食用指南
PS: 1. 下文出现的某些字典 有可能是因为摆出效果 我自己瞎搞得字典 2. 分享一些好的工具 3. 其实Wfuzz也很好用的 4. 很早之前就在语雀写过Wfuzz和ffuf的笔记 但是一直没有公开 ...
- 30K入职腾讯,全靠这份606页的Android面试指南
前言 光阴似箭,日月如梭,时间真的过得飞快. 加上实习,从事 Android 开发,差不多有 5 年了.在上家公司职务.薪酬感觉已经到达了天花板,没有上升的余地.而且在这家公司过于安逸了,想换个有挑战 ...
- Android开发三年,面了八家公司终于腾讯上岸,含泪整理面经
在下2017年毕业,目前从事android开发工作已经3年多了,前段时间刚完成一次跳槽,面试了几家公司,将一些面试经验分享给大家,希望对大家有所帮助. 写在前面 这次跳槽总共是面了8家,(2小,4中, ...