使用PrintWriter对象将列表对象从Javaservlet发送到JSP?

使用PrintWriter对象将列表对象从Javaservlet发送到JSP?,java,json,jsp,servlets,Java,Json,Jsp,Servlets,在继续之前,我意识到几年前有一个类似的问题。我意识到可以将我试图传递的列表设置为会话属性,但出于好奇,我想知道是否可以使用PrintWriter对象将数据发送回JSP页面 JSP 我还没有测试过上面的代码,但我只是想知道这似乎是解决我问题的最佳方案,还是我让它变得过于复杂了?也许对我的问题有一个简单得多的解决办法。我想你脑子里的事情搞砸了。首先,不能将文本或任何类型的数据从servlet发送到jsp。正确的方法是使用会话和或方法。但这将忽略之前对servlet的Writer对象进行的任何调用 我

在继续之前,我意识到几年前有一个类似的问题。我意识到可以将我试图传递的列表设置为会话属性,但出于好奇,我想知道是否可以使用PrintWriter对象将数据发送回JSP页面

JSP


我还没有测试过上面的代码,但我只是想知道这似乎是解决我问题的最佳方案,还是我让它变得过于复杂了?也许对我的问题有一个简单得多的解决办法。

我想你脑子里的事情搞砸了。首先,不能将文本或任何类型的数据从servlet发送到jsp。正确的方法是使用会话和或方法。但这将忽略之前对servlet的Writer对象进行的任何调用

我想你脑子里的事情都搞砸了。首先,不能将文本或任何类型的数据从servlet发送到jsp。正确的方法是使用会话和或方法。但这将忽略之前对servlet的Writer对象进行的任何调用

是的,您可以将数据从Servlet发送回JSP页面,因为我已经这样做了。在JSP文件中,您可以包含HTML和JavaScript,因此可以使用JQuery.post(),它允许您指定要将数据发布到的Servlet,并在回调函数中指定,例如:…})。完成(函数(数据){var content=data[.json_identifier]$(“#result”).val(content);});您可以利用从Servlet获得的结果来填充html元素。是的,您可以将数据从Servlet发送回JSP页面,因为我已经这样做了。在JSP文件中,您可以包含HTML和JavaScript,因此可以使用JQuery.post(),它允许您指定要将数据发布到的Servlet,并在回调函数中指定,例如:…})。完成(函数(数据){var content=data[.json_identifier]$(“#result”).val(content);});您可以利用从Servlet获得的结果来填充html元素。
<script type="text/javascript">
        function getEngineSchemes(engineID) {
            $.get('SchemeTypeServlet', {
                action: "getSchemes",
                engineID: engineID
            },
            function(data, status){

            }).fail(function() {
                alert("Error obtaining schemes for engine with engine id: " + engineID);
            });
        }
    </script>
</body> 
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //Set type of response
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    //get parameters that may be passed from client to determine which methods should be called
    String action = request.getParameter("action");

    if(action.equalsIgnoreCase("getSchemesForEngine")) { 
        Integer engineID = Integer.parseInt(request.getParameter("engineID"));
        List<String> schemeNames = getSchemeNamesForEngine(engineID);

        response.getWriter(). //insert code to send object back to JSP
        response.getWriter().flush();
    }       
response.setContentType("application/json");
JSONObject json = new JSONObject();
     for(String name : schemeNames) {
            json.put(engineID, name);
         }
    response.getWriter().write(json.toJSONString());
    response.getWriter().flush();