四个类的对象: ServletConfig,ServletContext,HttpServletRequest,HttpServletResponse

1.ServletConfig

总结重点:ServletConfig对象其实就是携带着一个Servlet类的初始化参数信息,一个Servlet类对应一个 ServletConfig 对象

 容器(tomcat服务器)初始化 一个Servlet 时,会为这个 Servlet 创建一个 ServletConfig 对象,并将 ServletConfig 对象作为参数传递给 Servlet 。通过 这个传递过去的ServletConfig 对象即可获得当前 Servlet 的初始化参数信息。

一个 Servlet 只能对应一个 ServletConfig 对象,即 Servlet 的初始化参数仅对当前 Servlet 有效

public class ServletConfigDemo extends HttpServlet 
{
    private ServletConfig servletConfig;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    {
        //获取Servlet得名字
        this.servletConfig.getServletName();
    }
    @Override
    public void init(ServletConfig config) 
    {
        //从带参init方法中,提取ServletConfig对象
        this.servletConfig = config;
    }
}

2.ServletContext

tomcat容器会为每个 Web 应用(webapps 下的每个目录都是一个 Web 应用)创建一个唯一的 ServletContext 对象,该对象一般被称为“Servlet 上下文”

ServletContext 对象的生命周期从 Servlet 容器启动时开始,到容器关闭或应用被卸载时结束

Web 应用中的所有 Servlet 共享同一个 ServletContext 对象,不同 Servlet 之间可以通过 ServletContext 对象实现数据通讯

3.HttpServletRequest和HttpServletReponse

tomcat服务器接收到来自客户端的 HTTP 请求后,服务器会针对该请求分别创建一个 HttpServletRequest 对象和 HttpServletReponse 对象。

将 HttpServletRequest 对象和 HttpServletReponse 对象以参数的形式传入 service() 方法内,并调用该方法

 通过 HttpServletRequest 对象获取客户端信息以及请求的相关信息

请求处理完成后,将响应信息封装到 HttpServletReponse 对象中

当 Servlet 容器将响应信息返回给客户端后,HttpServletRequest 对象和 HttpServletReponse 对象被销毁

一个HttpServletRequest对象拥有的方法:

 

public class TestServlet extends HttpServlet
{
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = response.getWriter();
        writer.println("请求方式:" + request.getMethod() + "<br/>" +
                "客户端的 IP 地址:" + request.getRemoteAddr() + "<br/>" +
                "应用名字(上下文):" + request.getContextPath() + "<br/>" +
                "URI:" + request.getRequestURI() + "<br/>" +
                "请求字符串:" + request.getQueryString() + "<br/>" +
                "Servlet所映射的路径:" + request.getServletPath() + "<br/>" +
                "客户端的完整主机名:" + request.getRemoteHost() + "<br/>");
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    {
        doGet(request, response);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值