ServletContext-14

来源:互联网 发布:知乎 张艺兴 编辑:程序博客网 时间:2024/06/05 05:19

表示Servlet的上下文,该接口由容器实现,每个部署到容器的的Web项目都有唯一的ServletContext接口的实例与之关联,他是包含在ServletConfig实例中的
ServletConfig提供的功能
获取环境信息
读取全局参数
访问静态资源
保存与读取全局属性
动态注册Servlet,filter,listener
在Servlet中获取ServletContext的实例
1.在init方法中:ServletConfig中的getServletContext方法
2.在service方法中:
GenericServlet中的getServletContext方法
ServletRequest中的getServletContext方法
得到过后就可以获取环境信息了,方法请参见api

全局参数的配置与读取
在web.xml中使用context-param,param-name,param-value等标签配置的全局参数

访问静态资源

package com.ls.javaees1;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.net.MalformedURLException;import java.net.URL;import java.util.Enumeration;import java.util.Set;import javax.servlet.ServletConfig;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;@WebServlet(name = "servlet1", urlPatterns = "/servlet1", loadOnStartup = 1)public class Servlet1 extends HttpServlet {    @Override    public void init(ServletConfig config) throws ServletException {        ServletContext context = config.getServletContext();        System.out.println(context.getServerInfo());        System.out.println(context.getMajorVersion());        System.out.println(context.getMinorVersion());        System.out.println(context.getServletContextName());        System.out.println(context.getContextPath());        System.out.println(context.getVirtualServerName());        Enumeration<String> names = context.getInitParameterNames();        while(names.hasMoreElements()){            String name=names.nextElement();            System.out.println(name+"="+context.getInitParameter(name));        }        try {            URL url=context.getResource("/index.jsp");            System.out.println(url);        } catch (MalformedURLException e) {            e.printStackTrace();        }        InputStream is=context.getResourceAsStream("/index.jsp");        Set<String> paths=context.getResourcePaths("/");        for (String path : paths) {            System.out.println(path);        }        System.out.println(context.getRealPath("/"));    }    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        ServletContext context1 = getServletContext();        ServletContext contex2 = request.getServletContext();    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html");        PrintWriter out = response.getWriter();        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");        out.println("<HTML>");        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");        out.println("  <BODY>");        out.print("    This is ");        out.print(this.getClass());        out.println(", using the POST method");        out.println("  </BODY>");        out.println("</HTML>");        out.flush();        out.close();    }}
原创粉丝点击