欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

servlet中servletContext的五大作用(一)

发布时间:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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");}}

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

    总结

    以上是生活随笔为你收集整理的servlet中servletContext的五大作用(一)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。