您的位置:首页 > 其它

Servlet笔记4--ServletConfig接口和ServletContext接口

2017-02-06 14:39 405 查看
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 }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: