package helloworld;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement; /**
*/
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L; private String diverClass;
private String userName;
private String password;
private String url; /**
* Default constructor.
*/
public HelloWorld() {
// TODO Auto-generated constructor stub } public String resultSetToJson(ResultSet rs) throws SQLException,JSONException
{
// json数组
JSONArray array = new JSONArray(); // 获取列数
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount(); // 遍历ResultSet中的每条数据
while (rs.next()) {
JSONObject jsonObj = new JSONObject(); // 遍历每一列
for (int i = 1; i <= columnCount; i++) {
String columnName =metaData.getColumnLabel(i);
String value = rs.getString(columnName);
jsonObj.put(columnName, value);
}
array.put(jsonObj);
} return array.toString();
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; Statement stmt = null; ResultSet rs = null; response.setContentType("text/html"); response.setCharacterEncoding("gb2312"); PrintWriter out = response.getWriter(); diverClass = /* getServletConfig(). */getServletContext().getInitParameter("driver");
userName = /* getServletConfig(). */getServletContext().getInitParameter("username");
password = /* getServletConfig(). */getServletContext().getInitParameter("password");
url = /* getServletConfig(). */getServletContext().getInitParameter("url"); String sql = request.getParameter("sql");
if (sql==null){
sql="SELECT * FROM ANIMALS";
} try { Class.forName(diverClass); //conn = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=12345678"); conn = DriverManager.getConnection(url, userName,password); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); HelloWorld hello = new HelloWorld();
try {
String data = hello.resultSetToJson(rs);
out.println(data);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if(rs != null) { rs.close(); rs = null; } if(stmt != null) { stmt.close(); stmt= null; } if(conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter();
out.println("<div style='width:100px;height:100px;background-color:red'>123123</div>"); } }

最新文章

  1. jdbc执行预处理,批处理,LOB字段处理,调用存储过程
  2. 02Spring_Ioc和DI介绍
  3. 记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject
  4. 天天模拟器 和 Genymotion 设置代理
  5. 使用u32过滤器设置基于mac地址的下载限制
  6. Ubuntu 14.04 安装flash插件
  7. 谈谈final、finally、finalize的区别
  8. web版扫雷小游戏(二)
  9. python_安装工具easy_install和pip
  10. 无法安装或运行此应用程序。该应用程序要求首先在&quot;全局程序集缓存(GAC)&quot;中安装程序集
  11. android搭建环境错误 daemon not running. starting it now on port 5037 ADB server didn&#39;t ACK
  12. 别样JAVA学习(五)继承上(1.0)Object类equals()
  13. [译]Java 设计模式之命令
  14. 学习GDI+ (1)
  15. sqlserver数据库发送邮箱
  16. Cocos Creator学习五:触摸和重力传感响应事件
  17. NetSec2019 20165327 Exp0 Kali安装 Week1
  18. 9、js扩展
  19. 利用Django构建web应用及其部署
  20. SQL-根据多个条件更新数据

热门文章

  1. 外部dtd
  2. eclipse怎么显示代码行数
  3. MyBatis之传入参数
  4. python 调用系统命令
  5. 【Xamarin Doc】 Introduction to Storyboards 笔记
  6. 学习之道-从求和起-求和曲线面积瞬时速率极限微积分---求和由高解低已知到未知高阶到低阶连续自然数的K次方之和
  7. 127 2016 int
  8. PureBasic 读取文件中一行的两个数据例子
  9. Error executing aapt: Return code -1073741819
  10. 【转】用树莓派搭建web服务器