1. 获取web的上下文路径
  2. 获取全局的参数
  3. 作为域对象使用
  4. 请求转发
  5. 读取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");}}

转载于:https://www.cnblogs.com/mzywucai/p/11053521.html

servlet中servletContext的五大作用(一)相关推荐

  1. 场效应晶体管在电路中的五大作用,你了解哪一种?

    一.场效应晶体管特点 场效应晶体管是电压控制元件,因此和普通双极型晶体管相比,场效应晶体管具有输入阻抗高.噪声低.动态范围大.功耗小.易于集成等特点,这就决定了场效应晶体管与其它电子元件有异曲同工之妙 ...

  2. Servlet中ServletConfig接口和ServletContext接口的作用

    前言: Servlet的作用: Servlet 是接口,是 JavaEE 规范之一.接口起到了规范的作用. Servlet 是 JavaWeb 三大组件之一.三大组件分别是:Servlet 程序.Fi ...

  3. JSP/Servlet中的几个编码的作用

    在JSP/Servlet 中主要有以下几个地方可以设置编码,pageEncoding="UTF-8".contentType="text/html;charset=UTF ...

  4. Java Servlet 中的 ServletConfig 和 ServletContext 之间的区别

    ServletConfig 和 ServletContext 是 Java Servlet 中的两个重要接口,它们都是用来存储 servlet 的配置信息的. ServletConfig 是针对单个 ...

  5. Servlet中(Session、Cookies、Servletcontext)的基本用法

    //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 1.session的设置:              //得到和req相关联的session,如果没有就创建 ...

  6. java中的post的作用,JSP、Servlet中get请求和post请求的区别总结

    在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...

  7. 【Servlet】ServletContext、ServletConfig对象学习、用户登录系统完善

    总结:request.cookie.session.context的区别 这四个对象有不同级别的作用域和生命周期. (1)request:解决了一次请求内的数据共享问题(作用域:一次请求) req.s ...

  8. 一个web项目中web.xmlcontext-param的作用

    转 <context-param>的作用: web.xml的配置中<context-param>配置作用 1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置 ...

  9. Servlet中的Response(HTTP响应对象)用法及笔记

    Servlet中的Response用法及笔记 1.生命周期(创建到销毁的过程,init>service>destroy) 2.生命周期的描述 3.ServletConfig对象的使用 4. ...

最新文章

  1. HDU1533(最小权完美匹配)
  2. Linux的load导入语句,LOAD DATA INFILE语句导入数据进入MySQL的一些注意事项
  3. 如何使自己的程序只运行一次
  4. 5G NGC — eNS(增强的网络切片)
  5. IAP的原理和stm8的IAP
  6. NIO详解(七):进程间通信(MappedByteBuffer)
  7. QuerWrapper常用方法
  8. python描述符详解_Python描述符 (descriptor) 详解
  9. 解决Error: could not open ‘……\jre7\lib\i386\jvm.cfg‘问题
  10. 每天5分钟玩转docker容器技术 pdf_stack 的优势 每天5分钟玩转 Docker 容器技术(113)...
  11. Unity3D 游戏资源提取工具
  12. JavaSE的思维导图
  13. 电商产品精修训练营第3天_ps抠图
  14. oracle公司的crm系统,原创-CRM客户关系管理系统设计-jsp+oracle
  15. JavaDay03.练习2.写一个程序来帮助用户进行电话套餐选择
  16. php怎样给搜索框加放大镜,Win10系统给小娜搜索框添加放大镜和箭头图标的方法...
  17. 抖音小店运营规则;;超详细小店违规处罚条例;丨国仁网络资讯
  18. 两宋词人Top10排排座
  19. 《编程之美》一书八位作者,讲述自己的编程之路
  20. ExpandListView 的一种巧妙写法

热门文章

  1. 东大18春计算机基础在线作业,东大18春学期《计算机基础》在线作业123满分答案...
  2. android关机背景,鍵盤消失后的Android白色背景
  3. java 异步调用webapi_Async Await异步调用WebApi
  4. java rsa算法_求RSA算法JAVA实现源代码(带界面的)
  5. hql 查询条件 set集合_Redis从入门到深入-Sorted_set的value
  6. java中execquery(),javaee登录界面
  7. 730阵列卡支持多大硬盘_华为1000多手机哪款好?推荐只此一款!华为品牌性价比最高千元机...
  8. php完美导出word,PHP使用phpword生成word文档
  9. java如何在指定索引位置插入新元素
  10. 命令行编译和运行java