JSP中使用application对象获取Web应用配置参数(三)
《javeee企业应用实战笔记》:
?
JSP内置对象application的作用:
?
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文件中进行配置,避免使用硬编码方式写在代码中,从而更好的提高了程序的移植性。