P11:ServletContext 应用

创建ServletDemo03

package com.Li.servlet;
//P11的学习,测试获取web.xml中context-param的内容
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 ServletDemo03 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext context = this.getServletContext();

        String url = context.getInitParameter("url");

        resp.getWriter().print(url);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

web.xml :context-param与注册

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">

<!--context-param:配置web应用初始化参数。一般用不上,了解即可-->
   <context-param>
      <param-name>url</param-name>
      <param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
   </context-param>

<!-- ====================================================================================================  -->
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.Li.servlet.HelloServlet</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
   
<!--   配置GetServlet-->
   <servlet>
      <servlet-name>getc</servlet-name>
      <servlet-class>com.Li.servlet.GetServlet</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>getc</servlet-name>
      <url-pattern>/getc</url-pattern>
   </servlet-mapping>

<!--   配置ServletDemo03(注册)-->
   <servlet>
      <servlet-name>gp</servlet-name>
      <servlet-class>com.Li.servlet.ServletDemo03</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>gp</servlet-name>
      <url-pattern>/gp</url-pattern>
   </servlet-mapping>
   
   
</web-app>
<!--在这个项目中,把j2ee换为了Javaee这样就可以用<打出提示了-->

Demo03效果:

  

ServletDemo04:转发效果

package com.Li.servlet;

import javax.servlet.RequestDispatcher;
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 ServletDemo04 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext context = this.getServletContext();
        System.out.println("进入了ServletDemo04");
        //RequestDispatcher requestDispatcher = context.getRequestDispatcher("/gp");
        //requestDispatcher.forward(req, resp);     这两句等同于下面这句
        context.getRequestDispatcher("/gp").forward(req, resp);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

 

Demo04的注册

<!--   配置ServletDemo04(注册)-->
   <servlet>
      <servlet-name>sd4</servlet-name>
      <servlet-class>com.Li.servlet.ServletDemo04</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>sd4</servlet-name>
      <url-pattern>/sd4</url-pattern>
   </servlet-mapping>

效果:实现了转发。但是url路径还是用自己的。

 关系:

A想要C的资源,但是自己只能和B交互。于是转发过程为:ABCBA 。

 *读取资源文件(重点)*:

建立:resources下建立文件。======CSDN也太垃圾了。去不了水印,很影响效果。。。。

 

文件里面的内容为:

 

 Demo05

package com.Li.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;
import java.io.InputStream;
import java.util.Properties;

public class ServletDemo05 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取web文件中properties的内容。并将它输出为一个流
        InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");

        //读取流中的内容
        Properties properties = new Properties();
        properties.load(is);
        String username = properties.getProperty("username");
        String password = properties.getProperty("password");

        //返回前端打印结果。
        resp.getWriter().print(username+":"+password);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

配置web.xml

 <!--   配置ServletDemo05(注册)-->
   <servlet>
      <servlet-name>sd5</servlet-name>
      <servlet-class>com.Li.servlet.ServletDemo05</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>sd5</servlet-name>
      <url-pattern>/sd5</url-pattern>
   </servlet-mapping>

 

效果:

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值