【JavaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(4)—— 获取应用信息

开门见山

ServletContext 对象不仅包含了我们之间说的应用初始化参数和应用域属性,还有包含有关 Web 应用的信息。

例如,当前 Web 应用的根路径、应用的名称、应用组件间的转发以及容器下其他 Web 应用的 ServletContext 对象等。

ServletContext 接口访问当前应用信息的方法

· getContextPath() 返回当前 Web 应用的根路径

· getServletContextName() 返回 Web 应用的名字,也就是 元素中 元素

· getRequestDispatcher(String path) 返回一个用于向其他 Web 组件转发请求的 RequestDispatcher 对象

· getContext(String uripath) 根据参数指定的 URL 返回当前 Servlet 容器中其他 Web 应用的 ServletContext() 对象,URL 必须以 “/” 开头的绝对路径

获取应用信息方法

【代码】ContextAppInfoServlet.java
【JavaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(4)—— 获取应用信息_第1张图片
【运行结果】
【JavaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(4)—— 获取应用信息_第2张图片
【Bug 处理】

对,没错,出 Bug了,如果你出现了这个 Bug。

就看之前的文章吧

改 Bug 改了半个点,头秃。
【JavaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(4)—— 获取应用信息_第3张图片

代码奉上

【ContextAppInfoServlet.java】

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class ContextAppInfoServlet

*/

@WebServlet("/ContextAppInfoServlet")

public class ContextAppInfoServlet extends HttpServlet {

   private static final long serialVersionUID = 1L;

   

   public ContextAppInfoServlet() {

         super();

   }

   



   /**

    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

    */

   protected void doGet(HttpServletRequest request,

                HttpServletResponse response) throws ServletException, IOException {

         // 设置响应到客户端MIME类型和字符编码方式

         response.setContentType("text/html;charset=UTF-8");

         // 获取当前ServletContext对象

         ServletContext context = super.getServletContext();

         // 获取容器中URL路径为“/chapter01”的应用的ServletContext对象

         ServletContext contextByUrl = context.getContext("/chapter02");

         // 获取当前Web应用的上下文根路径

         String contextPath = context.getContextPath();

         // 获取当前Web应用的名称

         String contextName = context.getServletContextName();

         // 获取容器中URL路径为“/chapter02”的应用的应用名称

         String contextByUrlName = contextByUrl.getServletContextName();

         // 获取转发请求的RequestDispatcher对象

         RequestDispatcher rd = context.getRequestDispatcher("/ForwardServlet");

         // 获取输出流

         PrintWriter out = response.getWriter();

         out.println("

当前Web应用的上下文根路径是:" + contextPath + "

"); out.println("

当前Web应用的名称是:" + contextName + "

"); out.println("

容器中URL路径为“/chapter02”的应用的应用名称是:" + contextByUrlName); }

}

你可能感兴趣的:(【JavaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(4)—— 获取应用信息)