Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将json从java传递到javascript函数_Javascript_Java_Html_Angularjs_Json - Fatal编程技术网

如何将json从java传递到javascript函数

如何将json从java传递到javascript函数,javascript,java,html,angularjs,json,Javascript,Java,Html,Angularjs,Json,我从数据库中生成一个json字符串,并将其传递给javascript函数,然后将其打印到html表中。我使用angular来轻松打印表,但我不知道如何将数据从java发送到javascript。 这就是我在java中尝试的 public void jsonRetr (String numeRepo) throws SQLException { String sql = "SELECT * FROM " + numeRepo; PreparedStatement prStm = (

我从数据库中生成一个json字符串,并将其传递给javascript函数,然后将其打印到html表中。我使用angular来轻松打印表,但我不知道如何将数据从java发送到javascript。 这就是我在java中尝试的

public void jsonRetr (String numeRepo) throws SQLException {
    String sql = "SELECT * FROM " + numeRepo;
    PreparedStatement prStm = (PreparedStatement) conn.prepareStatement(sql);
    ResultSet rs = prStm.executeQuery(sql);
    ArrayList<PersoaneJSON> persoane = new ArrayList<PersoaneJSON>();

    while (rs.next()) {
        String id = rs.getString("id");
        String login_name = rs.getString("login_name");
        String email = rs.getString("email");
        String public_gits = rs.getString("public_gits");
        String Html_profile = rs.getString("Html_profile");
        String Avatar_URL = rs.getString("Avatar_URL");

        PersoaneJSON persoana = new PersoaneJSON(id, login_name, email, public_gits, Html_profile, Avatar_URL);
        persoane.add(persoana);
    }
    Gson gson = new Gson();
    String json = gson.toJson(persoane);
    }

您必须将Javaservlet与WebMethod一起使用,因此调用该方法可以返回包含数据的JSON对象

范例 Java代码:

ApplicationConfig.java

package example;
import java.util.Set;
import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application

  @Override
  public Set<Class<?>> getClasses() {
    Set<Class<?>> resources = new java.util.HashSet<>();
    resources.add(QueryResource.class);
    return resources;
  }
}
现在,在js中,您可以在控制器内部创建一个连接到Servlet的函数,将$http对象像$scope一样传递给控制器

$http.get("http://localhost:8086/example/webresources/query/employee").success(function (data) {
                console.log(JSON.parse(data));
            }).error(function () {
                console.error('error');
            });
在web.xml中,必须设置如下配置:

<servlet-mapping>
    <servlet-name>RESTServlet</servlet-name>
    <url-pattern>/webresources/*</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>RESTServlet</servlet-name>        
   <servletclass>org.glassfish.jersey.servlet.ServletContainer</servletclass>
        <init-param>
          <param-name>javax.ws.rs.Application</param-name>
          <param-value>example.ApplicationConfig</param-value>
        </init-param>
        </servlet>

RESTServlet
/网络资源/*
RESTServlet
org.glassfish.jersey.servlet.ServletContainer
javax.ws.rs.Application
example.ApplicationConfig
您需要这些依赖项:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.26-b01</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.26-b01</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>compile</scope>
 </dependency>

爪哇
javaeewebapi
7
假如
org.glassfish.jersey.containers
jersey容器servlet
2.26-b01
org.glassfish.jersey.media
泽西媒体公司
2.26-b01
javax.servlet
javax.servlet-api
3.1.0
编译

希望这有帮助

我对您的代码做了一些更改(您可以随意应用)

使用jquery并读取json对象,如下所示

$.getJSON( "Action/Servlet", function( data ) {
    console.log(JSON.parse(data));
});

到目前为止,您实际上没有发送任何内容,但使用Gson进行格式化已经足够好了。因此,我如何对数据进行沙化,这对我来说是个问题,因为我是一个初学者,不知道如何开始@M.prokhorovv。您也可以尝试将您的对象解析为json。
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.26-b01</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.26-b01</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>compile</scope>
 </dependency>
public ArrayList<PersoaneJSON> jsonRetr (String numeRepo) throws SQLException {
    String sql = "SELECT * FROM " + numeRepo;
    PreparedStatement prStm = (PreparedStatement) conn.prepareStatement(sql);
    ResultSet rs = prStm.executeQuery(sql);
    ArrayList<PersoaneJSON> persoane = new ArrayList<PersoaneJSON>();

    while (rs.next()) {
        String id = rs.getString("id");
        String login_name = rs.getString("login_name");
        String email = rs.getString("email");
        String public_gits = rs.getString("public_gits");
        String Html_profile = rs.getString("Html_profile");
        String Avatar_URL = rs.getString("Avatar_URL");

        PersoaneJSON persoana = new PersoaneJSON(id, login_name, email, public_gits, Html_profile, Avatar_URL);
        persoane.add(persoana);
    }
   return persoane;
}
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {

            PrintWriter out = response.getWriter();


                response.setContentType("application/json;charset=utf-8");


                Gson gson = new Gson();
        String json = gson.toJson(jsonRetr("xyz"));

                out.write(json);
                out.close();

    }
$.getJSON( "Action/Servlet", function( data ) {
    console.log(JSON.parse(data));
});