下午试了一下JSP访问MS SQL Server 2014数据库的表数据,还挺顺利的。
下班后就想再试一下在JSP返回JSON格式的数据,因为只有这样,Java才能单纯地只做后台数据处理,就和其他后台处理的语言一样。
PHP挺简单,什么都不用,一句话就搞定,想着Java也肯定一样,可以很快搞定。
找了一下资料,写了代码:
- <%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>
- <%-- JSP访问MS SQL Server 2014数据返回JSON格式数据 --%>
- <%
- System.out.println("JSP访问MS SQL Server 2014数据返回JSON格式数据");
- %>
- <%@ page import="java.sql.*" %>
-
- <%@ page import="java.io.IOException" %>
- <%@ page import="java.io.PrintWriter" %>
- <%@ page import="java.util.ArrayList" %>
-
- <%@ page import="org.json.JSONArray" %>
- <%@ page import="org.json.JSONException" %>
- <%@ page import="org.json.JSONObject" %>
-
- <%
- String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
- String url="jdbc:sqlserver://XX.XX.XX.XX:1433;DataBase=YY";
- String username="sa";
- String password="CCC";
- Connection DBConn;
-
- Class.forName(driverName);
- DBConn=DriverManager.getConnection(url,username,password);
- Statement stmt=DBConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
- String StrSql="select * from ABC";
- ResultSet rs=stmt.executeQuery(StrSql);
-
- JSONArray ReturnJson=new JSONArray();
-
- while( rs.next() ){
- JSONObject JsonTmp=new JSONObject();
- JsonTmp.put("c01",rs.getString(1));
- JsonTmp.put("c02",rs.getString(2));
- JsonTmp.put("c03",rs.getString(3));
- JsonTmp.put("c04",rs.getString(4));
- JsonTmp.put("c05",rs.getString(5));
- ReturnJson.put(JsonTmp);
- }
-
- response.setContentType("text/json; charset=UTF-8");
- PrintWriter JSPReturn=response.getWriter();
- JSPReturn.write(ReturnJson.toString());
-
- rs.close();
- stmt.close();
- DBConn.close();
- %>
运行。
提示错误:
Only a type can be imported. org.json.JSONArray resolves to a package
JSONArray cannot be resolved to a type
编辑器使用的是IDEA社区版,不支持JavaWeb,也没有语法提示。
是不是与编辑器的编译有关呢?
查了一下,全局和项目我都做了库关联,就是在lib目录下放了JSON.jar。
上面的提示就是没有找到包,没有办法解释JSONArray这个数据类型。
会不会是包的问题或者大小写的问题?打开包:

都是对的。
开始在网上搜索,折腾了快半个小时没有结果,没有找到解决办法,可能就是与编辑器有关。
算了,不折腾了,就直接启动Tomcat,因为Tomcat的lib下我放了JSON.jar,这样可以最直接地找到问题所在。
启动Tomcat,在浏览器里查看,数据出来了,正确返回了JSON格式数据!
Java可是真不省心啊!