美文网首页
10. ServletContext对象

10. ServletContext对象

作者: 卡尔书院 | 来源:发表于2020-11-04 15:39 被阅读0次

web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用

  • 共享数据 : 我在这个Servlet中保存的数据,可以在另外一个servlet中拿到 ;


    servletContext

    放置数据类

package com.karl.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        this.getInitParameter();//初始化参数
//        this.getServletConfig();//servlet配置
//        this.getServletContext();//servlet上下文

        ServletContext context = this.getServletContext();
        String username = "karl";//数据
        context.setAttribute("username", username);//将一个数据保存到了servletContext中
    }
}

读取数据类

package com.karl.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class GetServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext context = this.getServletContext();
        String username = (String)context.getAttribute("username");

        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        resp.getWriter().println("名字:"+username);
    }
}

<!--可以配置一些web应用初始化参数-->
    <context-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
    </context-param>
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//读取初始化参数
        ServletContext context = this.getServletContext();
        String url = (String)context.getInitParameter("url");
        resp.getWriter().println(url);
    }

转发和重定向

doGet(){
...
//        RequestDispatcher requestDispatcher = context.getRequestDispatcher("");//转发的路径
//        requestDispatcher.forward(req,resp);//实现转发
        context.getRequestDispatcher("").forward(req, resp);
...
}
转发(上)和重定向(下)

读取资源文件

poperties


classpath路径
读取资源文件

思路: 需要一个文件流;

相关文章

网友评论

      本文标题:10. ServletContext对象

      本文链接:https://www.haomeiwen.com/subject/cbszmktx.html