不使用servlet从html调用Java方法

不使用servlet从html调用Java方法,java,html,Java,Html,我的index.html有一个特定的视图,我想通过调用一个java方法来更新这个视图(无需重定向或重新加载页面),该方法使用web服务并检索数据。我想在我的index.html中显示数据。我尝试使用servlet,但它重定向到另一个url,这不是我想要做的 有没有办法在我的index.html中调用java或显示java类的属性?我会使用jquery并对服务器进行ajax调用。ajax调用完成后,您可以使用javascript更新index.html文件,而无需重新加载页面。您可以使用servl

我的
index.html
有一个特定的视图,我想通过调用一个java方法来更新这个视图(无需重定向或重新加载页面),该方法使用web服务并检索数据。我想在我的
index.html
中显示数据。我尝试使用servlet,但它重定向到另一个url,这不是我想要做的


有没有办法在我的
index.html
中调用java或显示java类的属性?

我会使用jquery并对服务器进行ajax调用。ajax调用完成后,您可以使用javascript更新index.html文件,而无需重新加载页面。

您可以使用servlet,但必须使用ajax对servlet进行异步调用,而无需重新加载整个页面

$.ajax({
    type:"post",
    url: "redirector?operacion=515&id_orden="+id_orden+"&id_acto="+id_acto, 
    dataType: "text",
    success: function(response){
        //Do the stuffs you need with the response here.
    },
    error: function(response,error){
        console.log(response);
        console.log(error);
    }

});
这是一个使用jquery的ajax调用示例,其中“redirector”是我的servlet的名称,在我的servlet上,这是我的代码:

case 515:

    PrintWriter writer = response.getWriter();
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");

    try {
    Integer id_acto = Integer.parseInt(request.getParameter("id_acto"));
    String resultado = consultasBBDD.consultarNivelesPorActo(id_acto);
    writer.print(resultado);

    } catch (Exception e) {
    System.out.println("Error recuperando niveles de exigencia");
    }

    writer.flush();
    writer.close();
   break;
在ajax调用的
dataType
属性上,您必须指定响应的类型。还要记住,在servlet上不能执行
request.getRequestDispatcher(urlToGo)进行ajax调用时


希望这有助于我,并为我糟糕的英语感到抱歉

一种方法是将Java功能公开为REST服务

球衣休息终点

@Path("/rest/emp/")
public class EmployeeService {
    @GET
        @Path("/{param}")
        public EmployeDTO getMsg(@PathParam("param") String id) {



            return getEmployeeDetails(id);

        }

    }
EmployeDTO.java

String name;
String id;
String address;
//getters and setters
index.html

<!DOCTYPE html>
<html>
    <head>
        <title>Sample Page</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="employee.js"></script>
    </head>

    <body>
        <div>
            <p id="eid">The ID is: </p>
            <p id="eName">The Employee Name: </p>
            <p id="eAddress">The Employee Address:</p>
        </div>
    </body>
</html>

您希望在什么时候获取这些数据?在构建index.html时,或者在加载页面后,可能是在某个用户单击之后?如果不想重新加载页面,您希望将servlet与AJAX一起使用,而不是直接使用servlet。这里的示例可能会帮助您解决问题-。
$(document).ready(function() {
    $.ajax({
        url: "/rest/emp/10" (Your Rest end point URL)
    }).then(function(data) {
       $('#eid').append(data.id);
       $('#eName').append(data.name);
       $('#eAddress').append(data.address);

    });
});