当前位置: 首页 > news >正文

Servlet 读取web.xml文件中的配置参数连接数据库

 

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>

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();
    }
   }
}
}

转载于:https://www.cnblogs.com/ilahsa/archive/2012/09/29/2708460.html

相关文章:

  • win8 开发之旅(2) --连连看游戏开发 项目错误的总结
  • createNewFile()与createTempFile()的不同
  • 工作第四天之采集资源
  • 网络工作室暑假后第一次培训资料(ADO.NET创建访问数据集)整理
  • uva 548 Tree
  • 详细解释:nginx中ngx_http_rewrite_module模块配置及各个参数含义
  • 地理可视化
  • 指向类成员的指针的用处
  • 关于KB2661254安装后,导致HTTPS不能正常访问
  • oracle substr+instr按分隔符取字串
  • PHP实战(2)
  • dhcp 中继代理配置
  • Windows Server 2008 R2修改远程桌面连接数
  • 经典的静态路由的实验
  • 学习jquery mobile
  • 5、React组件事件详解
  • C# 免费离线人脸识别 2.0 Demo
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • js递归,无限分级树形折叠菜单
  • Python语法速览与机器学习开发环境搭建
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 近期前端发展计划
  • 普通函数和构造函数的区别
  • 前端路由实现-history
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 我与Jetbrains的这些年
  • 【干货分享】dos命令大全
  • Prometheus VS InfluxDB
  • 关于Android全面屏虚拟导航栏的适配总结
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • # 透过事物看本质的能力怎么培养?
  • #pragma data_seg 共享数据区(转)
  • $ git push -u origin master 推送到远程库出错
  • $.each()与$(selector).each()
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (力扣题库)跳跃游戏II(c++)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)Linux下编译安装log4cxx
  • (转)负载均衡,回话保持,cookie
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉)JSON.stringify 语法实例讲解
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /proc/vmstat 详解
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [2010-8-30]
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [hdu 1711] Number Sequence [kmp]