1. 获取web的上下文路径
  2. 获取全局的参数
  3. 作为域对象使用
  4. 请求转发
  5. 读取web项目的资源文件
  1. package day10.about_servletcontext.get_path;
  2. /**
  3. * 首先区别:
  4. * 一个网站只有一个ServletContext对象
  5. * 而每一个Servlet都有一个ServletConfig对象
  6. *
  7. * 但是我们拿Context对象的话,其实是通过Config对象去
  8. * 拿的,因为每一个ServletConfig中都有一个ServletContext
  9. * 的成员变量;
  10. *
  11. * 其次因为ServletConfig是在ServletContext之前创建的;
  12. * 因为ServletContext是在启动的时候创建的
  13. * 而ServletConfig对象是在调用init方法之前创建的。
  14. *
  15. java中获取ServletContext的常见方法
  16. 1.在javax.servlet.Filter中直接获取
  17. ServletContext context = config.getServletContext();
  18. 2.在HttpServlet中直接获取
  19. this.getServletContext()
  20. 3.在其他方法中,通过HttpRequest获得
  21. request.getSession().getServletContext();
  22. */
  23. import java.io.IOException;
  24. import javax.servlet.ServletContext;
  25. import javax.servlet.ServletException;
  26. import javax.servlet.http.HttpServlet;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpServletResponse;
  29. /**
  30. * 【context对象的作用—1】:获取web的上下文路径
  31. * getContextPath();
  32. *
  33. *
  34. * @author mzy
  35. *
  36. */
  37. public class ContextDemo01 extends HttpServlet {
  38. private static final long serialVersionUID = -4556050230938613373L;
  39. public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  40. request.setCharacterEncoding("utf-8");
  41. response.setContentType("text/html;charset=utf-8");
  42. // 1.1:首先要获取到ServletContext对象
  43. /*
  44. * 这种方法原则上没有错:
  45. * 因为加载的顺序上是config在context之前
  46. * 并且context必须通过config对象来获取,
  47. * 但是java设计者为了简化我们的代码,
  48. * 在源码中重新写了这部分;
  49. *
  50. * 他将
  51. * this.getServletConfig().getServletContext();
  52. * 封装到了源码的 getServletContext()的方法中了;
  53. * 但是我们还是需要记得获取context对象必须要获得
  54. * config对象;
  55. *
  56. * 获得context对象,必须要通过config对象来获取;
  57. *
  58. * 以下只是代码的简化而已
  59. *
  60. */
  61. // ServletContext context = this.getServletConfig().getServletContext();
  62. ServletContext context = this.getServletContext();
  63. String path = context.getContextPath();
  64. System.out.println(path);
  65. /*
  66. * 以上就是上下文路径:但是需要注意的是,当我们在eclipse或者myeclipse中修改
  67. * 项目名称的时候,我们修改了之后其实它的上下文路径是没有变的;
  68. * 比如我们原来项目叫做 myday09,修改为myday10之后,我们run这个项目下的文件
  69. * 最后跑出来的时候,可以看见项目名依旧是myday09,所以这个时候的context我们
  70. * 需要去tomcat中改文件夹名称,或者:右键项目Properties-->myeclipse-->web
  71. * -->context root 修改
  72. *
  73. * 当然新版本的myeclipse中没有这种问题,但是老版的myeclipse和eclipse中可能
  74. * 存在这种问题需要注意
  75. */
  76. // String path = context.getContextPath(); 获取上下文路径的好处??
  77. // 主要表现在做请求重定向的时候
  78. response.sendRedirect("/MyFirstServlet/hello.html");
  79. // 作用可以让这个获取文件的路径更加的灵活
  80. response.sendRedirect(context.getContextPath() + "/hello.html");
  81. }
  82. public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  83. request.setCharacterEncoding("utf-8");
  84. response.setContentType("text/html;charset=utf-8");
  85. }
  86. }

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的五大作用(四)

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

  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. Map集合笔记

    一.Map集合的特点 Map集合是一个双列集合 Map中的元素,key和value的数据类型可以相同,也可以不同. Map中的元素,key是允许重复的,value是可以重复的 Map中的元素,key和 ...

  2. (Opencv06)绘制轮廓函数

    (Opencv06)绘制轮廓函数 cv2.drawContours(image, contours, contourIdx, color, thickness) img: 指在哪副图像上绘制轮廓 会改 ...

  3. tomcat与springmvc 结合 之---第18篇 StandContext容器和SpringMVC的监听器的模型

    writedby张艳涛 如何使用tomcat的监听器 public class BootStrap_ex06 { public static void main(String[] args) { Ht ...

  4. vscode安装ESlint配置

    先安装插件ESLint,后面在设置setting.json中配置加入代码: { "files.autoSave": "afterDelay", "ed ...

  5. Go通关03:控制结构,if、for、switch逻辑语句

    if 条件语句 func main() { i:=6 if i >10 { fmt.Println("i>10") } else if i>5 && ...

  6. iOS实现常用地图坐标系转换(swift5)

    // 桥接后,OC工程也可用 // HTMCoorTransform.swift // HTMapKit // // Created by LongMa on 2021/8/3. // import ...

  7. 2010 NOIP提高组题解

    机器翻译 用队列模拟题意即可 #include<cstdio> #include<iostream> #include<cstring> using namespa ...

  8. C语言复习(六)----typedef 的作用

    typedef的作用 重命名变量:typedef unsigned int Uint;//可以使用Uint代替unsigned int 定义新的数据类型 typedef struct Books{ c ...

  9. MobSF移动安全扫描平台环境搭建与试用

    MobSF简介 MobSF(Mobile-Security-Framework)是一种开源自动化的移动应用程序(Android / iOS / Windows)安全测试框架,能够执行静态,动态和恶意软 ...

  10. Java8新特性(二)之函数式接口

    .subTitle { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); border- ...