• 在Java的JSP中返回JSON格式数据


      下午试了一下JSP访问MS SQL Server 2014数据库的表数据,还挺顺利的。

      下班后就想再试一下在JSP返回JSON格式的数据,因为只有这样,Java才能单纯地只做后台数据处理,就和其他后台处理的语言一样。

      PHP挺简单,什么都不用,一句话就搞定,想着Java也肯定一样,可以很快搞定。

      找了一下资料,写了代码:

    1. <%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>
    2. <%-- JSP访问MS SQL Server 2014数据返回JSON格式数据 --%>
    3. <%
    4. System.out.println("JSP访问MS SQL Server 2014数据返回JSON格式数据");
    5. %>
    6. <%@ page import="java.sql.*" %>
    7. <%@ page import="java.io.IOException" %>
    8. <%@ page import="java.io.PrintWriter" %>
    9. <%@ page import="java.util.ArrayList" %>
    10. <%@ page import="org.json.JSONArray" %>
    11. <%@ page import="org.json.JSONException" %>
    12. <%@ page import="org.json.JSONObject" %>
    13. <%
    14. String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    15. String url="jdbc:sqlserver://XX.XX.XX.XX:1433;DataBase=YY";
    16. String username="sa";
    17. String password="CCC";
    18. Connection DBConn;
    19. Class.forName(driverName);
    20. DBConn=DriverManager.getConnection(url,username,password);
    21. Statement stmt=DBConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    22. String StrSql="select * from ABC";
    23. ResultSet rs=stmt.executeQuery(StrSql);
    24. JSONArray ReturnJson=new JSONArray();
    25. while( rs.next() ){
    26. JSONObject JsonTmp=new JSONObject();
    27. JsonTmp.put("c01",rs.getString(1));
    28. JsonTmp.put("c02",rs.getString(2));
    29. JsonTmp.put("c03",rs.getString(3));
    30. JsonTmp.put("c04",rs.getString(4));
    31. JsonTmp.put("c05",rs.getString(5));
    32. ReturnJson.put(JsonTmp);
    33. }
    34. response.setContentType("text/json; charset=UTF-8");
    35. PrintWriter JSPReturn=response.getWriter();
    36. JSPReturn.write(ReturnJson.toString());
    37. rs.close();
    38. stmt.close();
    39. DBConn.close();
    40. %>

      运行。

      提示错误:

    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可是真不省心啊!

  • 相关阅读:
    灵活的IP网络测试工具——— X-Launch
    【CSS如何实现双飞翼布局】
    网络工程师的关键任务:构建可靠的出海网络架构
    大开眼界,Jenkins 结合 SpringCloud+K8S,打通微服一条龙技术讲解
    数据结构和算法
    vue3.0--2.watch、vue3生命周期函数、Teleport、自定义事件、状态驱动的动态 CSS、Suspense
    梯度下降法 --- 吴恩达深度学习笔记
    一些工具/网站自用总结
    Virtualbox安装安卓模拟器
    【算法】算法学习七:动态规划 | 背包问题 | 最长公共子串(含源代码)
  • 原文地址:https://blog.csdn.net/dawn0718/article/details/126005237