zoukankan      html  css  js  c++  java
  • Servlet笔记4--ServletConfig接口和ServletContext接口

    ServletConfig接口:

     

     

    ServletContext接口:

      

      代码详解:

      (1)web.xml配置文件:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3          xmlns="http://java.sun.com/xml/ns/javaee" 
     4          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     5          id="WebApp_ID" version="2.5">
     6   
     7      <!-- web.xml文件中配置上下文参数,这些信息被自动封装到ServletContext对象中 -->
     8      <context-param>
     9          <param-name>username</param-name>
    10          <param-value>admin</param-value>
    11      </context-param>
    12      
    13      <context-param>
    14          <param-name>password</param-name>
    15          <param-value>123</param-value>
    16      </context-param>
    17  
    18     <servlet>
    19         <servlet-name>a</servlet-name>
    20         <servlet-class>com.bjpowernode.javaweb.servlet.AServlet</servlet-class>
    21         <!-- 初始化参数:被封装到ServletConfig对象中 -->
    22         <init-param>
    23             <param-name>driver</param-name>
    24             <param-value>com.mysql.jdbc.Driver</param-value>
    25         </init-param>
    26         <init-param>
    27             <param-name>url</param-name>
    28             <param-value>jdbc:mysql://localhost:3306/bipowernode</param-value>
    29         </init-param>
    30         <init-param>
    31             <param-name>user</param-name>
    32             <param-value>root</param-value>
    33         </init-param>
    34         <init-param>
    35             <param-name>password</param-name>
    36             <param-value>123</param-value>
    37         </init-param>
    38     </servlet>
    39     <servlet-mapping>
    40         <servlet-name>a</servlet-name>
    41         <url-pattern>/a</url-pattern>
    42     </servlet-mapping>
    43     
    44     <servlet>
    45         <servlet-name>b</servlet-name>
    46         <servlet-class>com.bjpowernode.javaweb.servlet.BServlet</servlet-class>
    47     </servlet>
    48     <servlet-mapping>
    49         <servlet-name>b</servlet-name>
    50         <url-pattern>/b</url-pattern>
    51     </servlet-mapping>
    52 </web-app>

        (2) 前端页面:

     1 <html>
     2   <head>
     3     <title>ServletConfig接口</title>
     4   </head>
     5   <body>
     6       <a href="/prj-servlet-04/a">AServlet</a>
     7       <br><br>
     8       <a href="/prj-servlet-04/b">BServlet</a>
     9   </body>
    10 </html>

        (3)辅助实体类:

     1 package com.bjpowernode.javaweb.entity;
     2 
     3 public class User {
     4     
     5     private String usercode;
     6     private String username;
     7 
     8     public String getUsercode() {
     9         return usercode;
    10     }
    11     
    12     public void setUsercode(String usercode) {
    13         this.usercode = usercode;
    14     }
    15     
    16     public String getUsername() {
    17         return username;
    18     }
    19     
    20     public void setUsername(String username) {
    21         this.username = username;
    22     }
    23 
    24     @Override
    25     public String toString() {
    26         return "User [usercode=" + usercode + ", username=" + username + "]";
    27     }
    28     
    29 }

        (4) Servlet程序:

      1 package com.bjpowernode.javaweb.servlet;
      2 
      3 import java.io.IOException;
      4 import java.io.PrintWriter;
      5 import java.util.Date;
      6 import java.util.Enumeration;
      7 
      8 import javax.servlet.Servlet;
      9 import javax.servlet.ServletConfig;
     10 import javax.servlet.ServletContext;
     11 import javax.servlet.ServletException;
     12 import javax.servlet.ServletRequest;
     13 import javax.servlet.ServletResponse;
     14 
     15 import com.bjpowernode.javaweb.entity.User;
     16 
     17 public class AServlet implements Servlet {
     18 
     19     private ServletConfig config;
     20 
     21     public void init(ServletConfig config) throws ServletException {
     22         this.config = config;
     23     }
     24 
     25     public void service(ServletRequest request, ServletResponse response)
     26             throws ServletException, IOException {
     27         
     28         response.setContentType("text/html;charset=UTF-8");
     29         PrintWriter out = response.getWriter();
     30         
     31         //获取ServletConfig
     32         ServletConfig config = getServletConfig();
     33         
     34         //获取Servlet Name
     35         String servletName = config.getServletName();
     36         out.print("<servlet-name>" + servletName + "</servlet-name>" + "<br><br>");
     37         
     38         //获取ServletContext,后面讲什么是ServletContext
     39         ServletContext application = config.getServletContext();
     40         out.print("ASevlet's ServletContext = " + application + "<br><br>");
     41         
     42         //通过当前Servlet初始化参数的name获取value
     43         /*String driver = config.getInitParameter("driver");
     44         String url = config.getInitParameter("url");
     45         String user = config.getInitParameter("user");
     46         String password = config.getInitParameter("password");*/
     47         
     48         //获取当前Servlet所有初始化参数的name,然后再根据name获取value
     49         @SuppressWarnings("unchecked")
     50         Enumeration<String> anames = config.getInitParameterNames();
     51         out.print("AServlet: <br>");
     52         while(anames.hasMoreElements()){
     53             String name = anames.nextElement();
     54             String value = config.getInitParameter(name);
     55             out.print(name + "=" + value);
     56             out.print("<br>");
     57         }
     58         out.print("<br>");
     59         
     60         //获取所有上下文(即当前Servlet的四周环境)初始化参数的name,然后再根据name获取value
     61         @SuppressWarnings("unchecked")
     62         Enumeration<String> snames = application.getInitParameterNames();
     63         out.print("ServletContext: <br>");
     64         while(snames.hasMoreElements()) {
     65             String name = snames.nextElement();
     66             String value = application.getInitParameter(name);
     67             out.print(name + "=" + value);
     68             out.print("<br>");
     69         }
     70         out.print("<br>");
     71         
     72         //获取文件绝对路径,参数必须是WebRoot的下一级目录开始写
     73         String realPath = application.getRealPath("/WEB-INF/resources/db.properties");
     74         out.print(realPath + "<br>");
     75         
     76         //创建User对象
     77         User user = new User();
     78         user.setUsercode("1231");
     79         user.setUsername("jackson");
     80         
     81         //向ServletContext范围中存储User数据
     82         application.setAttribute("userObj", user);
     83         application.setAttribute("time", new Date());
     84         
     85     }
     86     
     87     public void destroy() {
     88 
     89     }
     90     
     91     public ServletConfig getServletConfig() {
     92         return config;
     93     }
     94     
     95     public String getServletInfo() {
     96         return null;
     97     }
     98 
     99 
    100 }
     1 package com.bjpowernode.javaweb.servlet;
     2 
     3 import java.io.IOException;
     4 import java.io.PrintWriter;
     5 
     6 import javax.servlet.Servlet;
     7 import javax.servlet.ServletConfig;
     8 import javax.servlet.ServletContext;
     9 import javax.servlet.ServletException;
    10 import javax.servlet.ServletRequest;
    11 import javax.servlet.ServletResponse;
    12 
    13 public class BServlet implements Servlet {
    14 
    15     private ServletConfig config;
    16     
    17     public void init(ServletConfig config) throws ServletException {
    18         this.config = config;
    19     }
    20 
    21     public void service(ServletRequest request, ServletResponse response)
    22             throws ServletException, IOException {
    23         
    24         response.setContentType("text/html;charset=UTF-8");
    25         PrintWriter out = response.getWriter();
    26         
    27         //init的时候已经获取过了config
    28         out.println("BServlet's ServletConfig = " + config + "<br>");
    29         
    30         ServletContext application = config.getServletContext();
    31         
    32         Object obj1 = application.getAttribute("userObj");
    33         Object obj2 = application.getAttribute("time");
    34         out.print(obj1 + "<br>");
    35         out.print(obj2 + "<br>");
    36     }
    37     
    38     public void destroy() {
    39 
    40     }
    41     
    42     public ServletConfig getServletConfig() {
    43         return config;
    44     }
    45     
    46     public String getServletInfo() {
    47         return null;
    48     }
    49 
    50 
    51 }

  • 相关阅读:
    nodejs
    flask中flash(闪现)的使用
    flask中logger日志的使用
    flask中session的使用
    flask开启调试模式
    flask中静态文件的引入
    flask中模板引入
    python web开发屠龙刀flask
    python操作excel基础1-环境搭建
    php算法-dijkstra
  • 原文地址:https://www.cnblogs.com/qjjazry/p/6370257.html
Copyright © 2011-2022 走看看