1.讓多個Jsp、servlet共享數據;
- <!-- 將i的值自動+1后放入application的變量中 -->
- <%! int i = 0; %>
- <%
- application.setAttribute("counter",String.valueOf(++i));
- %>
- <!-- 輸出i的值 -->
- <%=i%>
在另外的jsp頁面可以用application.getAttribute("counter")直接獲取counter對應的值。
【理解】
我們可以把application理解為一個Map對象,任何Jsp、Servlet都可以把某個變量放入application中保存,並為之指定一個屬性名;而該web應用程序里的其他Jsp、Servlet就可以根據該屬性名來得到這個變量。
2.獲得Web應用配置參數:
Jsp頁面:訪問數據庫所使用的驅動、url、用戶名、密碼均在web.xml中給出。
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@page import="java.sql.*"%>
- ......
- <%
- //從配置參數中獲取驅動
- String driver = application.getInitParameter("driver");
- //獲取數據庫URL
- String url = application.getInitParameter("url");
- //獲取用戶名和密碼
- String user = application.getInitParameter("user");
- String pass = application.getInitParameter("pass");
- //注冊驅動
- Class.forName(driver);
- //獲取數據庫連接
- Connection conn = DriverManager.getConnection(url,user,pass);
- //創建Statement對象
- Statement stmt = conn.createStatement();
- //執行查詢
- ResultSet rs = stmt.executeQuery("select * from newsinfo");
- %>
- <table bgcolor = "9999dd" border="1" align="center">
- <%
- //遍歷結果集
- while(rs.next()){
- %>
- <tr>
- <td><%=rs.getString(1) %></td>
- <td><%=rs.getString(2) %></td>
- </tr>
- <%
- }
- %>
- </table>
web.xml中進行如下配置:
- <context-param>
- <param-name>driver</param-name>
- <param-value>com.mysql.jdbc.Driver</param-value>
- </context-param>
- <context-param>
- <param-name>url</param-name>
- <param-value>jdbc:mysql://localhost:3306/javaee</param-value>
- </context-param>
- <context-param>
- <param-name>user</param-name>
- <param-value>root</param-value>
- </context-param>
- <context-param>
- <param-name>pass</param-name>
- <param-value>root</param-value>
- </context-param>
通過這種方式,可以將一些配置信息放在web.xml文件中進行配置,避免使用硬編碼方式寫在代碼中,從而更好的提高了程序的移植性。