【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
在这里插入图片描述
【运行结果】
在这里插入图片描述
【Bug 处理】

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

就看之前的文章吧

改 Bug 改了半个点,头秃。
在这里插入图片描述

代码奉上

【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("<P>当前Web应用的上下文根路径是:" + contextPath + "</p>");

         out.println("<p>当前Web应用的名称是:" + contextName + "</p>");

         out.println("<p>容器中URL路径为“/chapter02”的应用的应用名称是:" + contextByUrlName);

   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值