利用servlet访问数据库返回json数据

假的工程师      2022-02-10     133

关键词:

  本次使用的是 Mysql 数据库,表中有已以几条记录,我们通过 Servlet  读取数据,并返回为 JSON 格式的数据。

 

1.  新建工程文件,项目结构如图

用到的 jar 包下载地址 http://files.cnblogs.com/files/boguse/jar.zip

由于Eclipse web 项目中,当执行 Class.forName("om.mysql.jdbc.Driver");时 不会去查找驱动的。所以本实例中我们需要把 mysql-connector-java-5.1.39-bin.jar 拷贝到 WEB-INF 下 lib 目录。

 

 

2. Servlet 编写

Servlet的定义:Servlet(Server Applet)-全称Java Servlet,是用Java编写的服务器端程序。 其主要功能在于交互式地浏览和修改数据,生成动态Web内容。 Servlet是100%运行在服务器端,为客户端请求作出响应的纯java应用程序。

 1 package TestJson;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.sql.*;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 import net.sf.json.JSONArray;
11 import net.sf.json.JSONObject;
12 
13 
14 public class Test extends HttpServlet {
15          private static final long serialVersionUID = 1L;
16       
17     public Test() {
18         super();
19         // TODO Auto-generated constructor stub
20     }
21 
22     /**
23      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
24      */
25     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
26         
27         // 设置响应内容类型
28         // 设置响应内容类型
29         response.setContentType("text/json; charset=utf-8");
30                 PrintWriter out = response.getWriter();
31                 
32                 
33                  try { 
34                      
35                      Class.forName("com.mysql.jdbc.Driver");
36                      Connection connect = DriverManager.getConnection( 
37                              "jdbc:mysql://localhost:3306/test?useSSL=false","map","maptest");
38 
39                     Statement stmt = connect.createStatement(); //创建Statement对象
40                     String sql;
41                     sql = "SELECT * FROM admininfo";
42                     ResultSet rs = stmt.executeQuery(sql);
43                     JSONArray jsonarray = new JSONArray();  
44                     JSONObject jsonobj = new JSONObject(); 
45                     // 展开结果集数据库
46                     while(rs.next()){
47                         // 通过字段检索
48                         jsonobj.put("管理员", rs.getString("Aname"));  
49                         jsonobj.put("密码", rs.getString("Apwd"));  
50                         jsonobj.put("等级", rs.getString("Alevel"));                           
51                          
52                         jsonarray.add(jsonobj);             
53                       }
54                     // 输出数据
55                     out = response.getWriter();
56                     
57                     out.println(jsonarray);
58                     // 完成后关闭
59                     rs.close();   
60                     stmt.close();   
61                     connect.close();                  
62                  }catch (Exception e) { 
63                       out.print("get data error!"); 
64                       e.printStackTrace(); }
65                       
66                   }     
67                    
68             /**
69              * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
70              */
71             protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
72                 // TODO Auto-generated method stub
73                 doGet(request, response);
74             }
75         }

 

3. 配置文件(web.xml)

想要运行该 Servlet,需要在web容器里注册上面的 Servlet,在 web.xml 文件中加入如下代码

<servlet>
     <servlet-name>Test</servlet-name> 
     <servlet-class>TestJson.Test</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>Test</servlet-name>
        <!--浏览器中输入的url,可以随意取名  但是注意加"/" -->
        <url-pattern>/Test</url-pattern>
    </servlet-mapping>

  

4. 将项目添加至 Tomcat ,并运行 Tomcat 

现在调用这个 Servlet,输入链接:http://localhost:8080/TestDemo/Test ,将显示以下响应结果:

 

我当初遇到了这个问题,Tomcat 运行后无法正常访问 Servlet ,然后发现是应为 Servlet 没有编译,这时需要将 Ecplise 设置为自动编译,然后重启 Ecplise 即可。

 

原文地址:http://www.cnblogs.com/boguse/p/6769092.html 

用jquery的post方法提交数据需要servlet返回的数据类型是json的数据格式,应该怎么做??

...)解析一下才能是json数据格式的。参考技术A首先你要在servlet里在返回之前就要把返回的数据组装成json格式的字符串,在前台接收的数据就是json格式了,不需要再转的。我平时就是这样做的,没问题啊。追问$.post()这个方法不... 查看详情

struts返回json数据

... 想要在struts中返回json格式数据有两种办法。  1.使用servlet的输出流  实际上就是在struts中获取response对象的输出流。然后写入你要返回的json数据,本质和用servlet返回json数据是一样的,需要自己导入json的jar包。不做详细... 查看详情

springboot03_利用fastjson返回json数据

自上一节:SpringBoot02_返回json数据,可以返回json数据之后,由于有些人习惯于不同的Json框架,比如fastjson,这里介绍一下如何在SpringBoot中集成fastjson来实现对数据的json序列化。在使用fastjson时,可以有以下两种集成方式,但是都... 查看详情

springmvc返回json数据

servlet相关XML配置<!--这个不启用会报错--><mvc:annotation-driven/><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><propertyname="messageConverters"&g 查看详情

servlet中利用阿里云包fastjson-1.2.43.jar把map转为json并返回前端

1.引入fastjson-1.2.43.jar包到lib下面,下载地址链接:https://pan.baidu.com/s/1pLxGe9P密码:6xswimportcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importjavax.servlet.ServletException;importjavax.serv 查看详情

java访问一个接口得到接口返回json,步骤是怎么做的

...Ajava访问一个接口得到接口返回JSON,步骤是怎么做的写个servlet,将结果转换成ArrayJson对象,打印出这个json就行,前端通过ajax去请求获得json数据。java转json需要用到相应的jar包,百度一下吧。java中的接口是一种特殊的类,使用关... 查看详情

jsonp跨域访问servlet接口获取json数组,并且渲染数据,前后端完整

       啊哈哈哈哈哈哈哈哈哈哈哈我太激动了~其实这个工作我一直在拖延啊,就觉得哇,好难啊,不想做欸==      然后硬着头皮研究了一整个下午+晚上终于搞清楚了~~~~哇哈哈哈哈~... 查看详情

从 JSON 访问数据返回“未定义”

】从JSON访问数据返回“未定义”【英文标题】:AccessingdatafromJSONreturns"undefined"【发布时间】:2018-09-0222:26:17【问题描述】:我正在ReactwithRecharts中使用来自静态json文件的数据进行数据可视化。当用户单击条形图时,该值... 查看详情

java怎么给其他公司提供一个接口,需要对方调用接口返回一个json格式的数据

具体格式是:http://192.128.3.4:8080/servlet?jsonstr="id":"123","name":"zhangsan","code":"2344"java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他... 查看详情

response返回json数据到前台页面

...据返回》http://blog.csdn.net/anialy/article/details/8665471简述:在servlet填充Response的时候,做JSON格式的数据转换使用的类是net.sf.json.JSONObject,传入response对象和返回的显示类,修改response,返回前台JSON格式数据代码:/**   查看详情

servlet

表单登入提交到servlet然后servlet获取用户名跟密码去数据库查找有无此人,有则显示某某某欢迎回来。没有此人则显示此用户不存在数据库form:用表格或者div+css都可以做  核心配置文件的配置最后用访问路径访问表单页面... 查看详情

无法在 Flutter 中访问我的 json 数据,它总是为我的数据返回 Nullvalue

】无法在Flutter中访问我的json数据,它总是为我的数据返回Nullvalue【英文标题】:Can\'taccessmyjsondatainFlutter,ItalwaysreturnsaNullvalueformydata【发布时间】:2021-11-2621:15:11【问题描述】:请帮忙,我很笨。我有一个问题,我无法在我的Futu... 查看详情

关于首次利用servlet调用数据库时会产生的一些问题

首先声明一点就是,这时正常的java加上web的技术的结合,没有使用maven工程和框架。正常的网页访问是直接启动tomcat就可以了,但是调用一些动态资源或者实现一些后端功能都要用到servlet进行调用和操作。这时就要用到web包下... 查看详情

springboot02_返回json数据

...端分离的情况下多数都是通过Json来进行交互,下面就来利用SpringBoot返回Json格式的数据。1:新建Pesron.java@DatapublicclassPerson{//编号privateStringid;//姓名privateStringname;//性别privateStringgender;}至 查看详情

ajax跨域访问python,返回json数据拿不出来

你把url中的那个‘?’去掉有可能是url解析错误参考技术A跨域自然是无法通过ajax直接获得数据这里有安全方面的限制,可以尝试jsonp 查看详情

cxf开发的webservice,web项目怎样才能使用json格式访问,并返回json格式数据。

参考技术A这种要用post方式了,//将json数据以字符串的方式上传给服务器,//当然你要确保json格式的正确性,如果数据很少的话,可以手动拼装json字符串,//否则就要弄json对象生成//我们项目中也有这个需求,但是数据并不多,... 查看详情

javaweb基于servlet天气预报查询系统设计与实现(项目源码)

采用技术:servlet前后端数据的传输采用json方式数据源采用定义的文件json格式获取讲所有格式编码转化为UTF-8线上访问地址:http://localhost:8080/weather/json数据格式化的转化采用谷歌组件gson读取所有省份访问接口文件province.x... 查看详情

servlet实现前后端json数据交互,前端js传输数据,后端fastjson解析json数据,以及tomcat部署和jquery的部署

...应的信息要求如下:编写一个用于计算加权平均数的Servlet,以Post方式接收如下json格式参数      "nums":[1,2,3,4],      "weight":[3,1,4,5],      "accuracy&# 查看详情