Servlet读取xml文件的配置参数
2024-09-01 09:32:34
web.xml中数据库连接配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Servelt_ReadingDBFromWebXml</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 通过getServletContext().getInitParameter("XX")读取 -->
<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/sample</param-value>
</context-param> <context-param>
<param-name>username</param-name>
<param-value>root</param-value>
</context-param> <context-param>
<param-name>password</param-name>
<param-value>admin</param-value>
</context-param> <servlet>
<servlet-name>DBServlet</servlet-name>
<servlet-class>demo.DBServlet</servlet-class> <!-- 通过getServletConfig().getInitParameter("XX")读取 -->
<init-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/sample</param-value>
</init-param>
<init-param>
<param-name>username</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>admin</param-value>
</init-param> </servlet> <servlet-mapping>
<servlet-name>DBServlet</servlet-name>
<url-pattern>/readingDB</url-pattern>
</servlet-mapping>
</web-app>
web.xml
Servlet代码:
/**
*
*/
package demo; import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Reading DB Config from web.xml
*/
public class DBServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 1L; private String diverClass;
private String userName;
private String password;
private String url; @Override
public void init() throws ServletException {
diverClass = /* getServletConfig(). */getServletContext().getInitParameter("driver");
userName = /* getServletConfig(). */getServletContext().getInitParameter("username");
password = /* getServletConfig(). */getServletContext().getInitParameter("password");
url = /* getServletConfig(). */getServletContext().getInitParameter("url"); try {
Class.forName(diverClass);
} catch (Exception e) {
e.printStackTrace();
} } @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Connection connection = null;
PreparedStatement statement = null; try {
connection = DriverManager.getConnection(url, userName, password);
statement = connection.prepareStatement("select * from customer");
ResultSet rs = statement.executeQuery(); PrintWriter printWriter = resp.getWriter();
while (rs.next()) {
printWriter.println(rs.getString("id"));
printWriter.println(rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (statement != null) {
statement.close();
} if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Servlet
最新文章
- 利用cubieboard设置samba打印服务器
- c++基础 explicit
- iOS 开发知识小集(1)
- JavaWeb基础:Servlet Request
- MySQL中用户授权/删除授权的方法
- 转载——SQL Server数据库性能优化之SQL语句篇
- ASP.NET Web API是如何根据请求选择Action的?[下篇]
- 【安卓开发】Android为什么选择binder
- Codeforces1036F Relatively Prime Powers 【容斥原理】
- 高并发编程基础Synchronized与Volatile
- Node_初步了解(3)回调,作用域,上下文
- NewWord
- nginx 镜像使用说明
- 基于RecyclerView实现的分组显示信息demo
- php的精确计算
- 关于Python的面试题
- UNDERSTANDING THE GAUSSIAN DISTRIBUTION
- 基于LumiSoft.Net.dll发、收、删邮件
- 在腾讯开发 QQ IM 的工作体验是怎样的?
- Jmeter在命令行运行技巧