Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Java 在servlet中包含jsp文件的内容_Java_Jsp_Servlets - Fatal编程技术网

Java 在servlet中包含jsp文件的内容

Java 在servlet中包含jsp文件的内容,java,jsp,servlets,Java,Jsp,Servlets,我需要在servlet中包含jsp文件的内容。我试过这个 out_str = "<jsp:include page=\"jsp/agentMenu.jsp\"/>"; 这里的_str是一个字符串类型的变量 但这不起作用 编辑:我正在使用post请求并获得响应。根据该结果,显示内容将有所不同 private void initCall(String urlParameters) { String result = ""; try { //result

我需要在servlet中包含jsp文件的内容。我试过这个

out_str = "<jsp:include page=\"jsp/agentMenu.jsp\"/>";
这里的_str是一个字符串类型的变量

但这不起作用

编辑:我正在使用post请求并获得响应。根据该结果,显示内容将有所不同

private void initCall(String urlParameters) {
    String result = "";

    try {
        //result = sendPostRequest(urlParameters);
        result = "0#04#Succesfully Login";
        System.out.println(result);    //for debugging
        String[] out_array = splitResult(result);

        if (Integer.parseInt(out_array[0]) == 0) {    //success
            System.out.println("SUCCESS");
            switch (Integer.parseInt(out_array[1])) {
                case 1:
                    out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<center><h2>RobiCash</h2>\n"
                            + "<p>Invalid PIN<p></center>\n"
                            + "<a href=\"jsp/login.jsp\">Exit</a>"
                            + "</body>\n"
                            + "</html>";

                    break;
                case 2:
                    out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<center><h2>RobiCash</h2>\n"
                            + "<p>Invalid Mobile Number<p></center>\n"
                            + "<a href=\"jsp/login.jsp\">Exit</a>"
                            + "</body>\n"
                            + "</html>";
                    break;
                case 3:
                    out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<center><h2>RobiCash</h2>\n"
                            + "<p>System Error<p></center>\n"
                            + "<a href=\"jsp/login.jsp\">Exit</a>"
                            + "</body>\n"
                            + "</html>";
                    break;
                case 4:  //Agent
                    System.out.println("AGENT");
                    //out_str.concat("<%@ include file=\"jsp/agentMenu.jsp\" %>");
                    out_str =  <jsp:include page="jsp/agentMenu.jsp" />;


                    /*out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<h2>RobiCash</h2>\n"
                            + "<h3>Agent Main Menu</h3>\n"
                            + "<table align=\"center\">\n"
                            + "<tr><td>1:</td><td><a href=\"agent_2.htm\">Top-Up/Recharge (P2)</a></td></tr> \n"
                            + "<tr><td>2:</td><td><a href=\"jsp/billPayment.jsp\">Bill Payment</a></td></tr>\n"
                            + "<tr><td>3:</td><td><a href=\"agent_2.htm\">Bill Check</a></td></tr>\n"
                            + "<tr><td>4:</td><td><a href=\"agent_3.htm\">Cash IN (P2)</a></td></tr>\n"
                            + "<tr><td>5:</td><td><a href=\"agent_4.htm\">Cash OUT (P2)</a></td></tr>\n"
                            + "<tr><td>6:</td><td><a href=\"agent_5.htm\">Customer Registration</a></td></tr>\n"
                            + "<tr><td>6:</td><td><a href=\"agent_6.htm\">My Balance</a></td></tr>\n"
                            + "<tr><td>7:</td><td><a href=\"agent_7.htm\">More</a></td></tr>\n"
                            + "<tr><td>8:</td><td><a href=\"jsp/login.jsp\">Exit</a></td></tr>\n"
                            + "</table>\n"
                            + "</body>\n"
                            + "</html>\n";*/
                    break;
                case 5:       //DSR
                    break;
                case 6:      //Distributor
                    break;
                case 7:      //Master Distributor
                    break;
                default:
                    break;
            }
        }  else {      //fail

        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    response = ServletActionContext.getResponse();
    response.setContentType("text/html");
    PrintWriter printWriter = null;
    try {
        printWriter = response.getWriter();
    } catch (IOException e) {
        e.printStackTrace();
    }

    StringBuffer _bf = new StringBuffer();

    _bf.append(out_str);
    printWriter.write(_bf.toString());
    printWriter.flush();
    printWriter.close();
}
如有任何建议,将不胜感激

先谢谢你

RequestDispatcher rd = request.getRequestDispatcher(“jsp/agentMenu.jsp”); 
rd.include(request, response);
您可以使用上面的代码

out_str = <jsp:include page="jsp/agentMenu.jsp" />; 

我认为这应该行得通。否则,请再次检查路径或使用请求调度程序。

问题是因为您正在将字符串写入Servlet响应。使用PrintWriter.write在响应中写入的内容被视为HTML字符串或简单字符串,并写入到响应或浏览器中,浏览器不会将其作为JSP执行。 对于语句out_str=您必须解释或执行JSP页面才能使其生效。因此,这被视为简单的HTML字符串,并不能导致结果JSP内容,这是您想要的输出

请在当前响应中包含您可以使用的任何其他内容,如下所示

RequestDispatcher rd = request.getRequestDispatcher("jsp/agentMenu.jsp");
rd.include(request, response);     
将上述行包括在案例:4条件中

编辑:我正在使用post请求并获得响应。根据该结果,显示内容将有所不同

private void initCall(String urlParameters) {
    String result = "";

    try {
        //result = sendPostRequest(urlParameters);
        result = "0#04#Succesfully Login";
        System.out.println(result);    //for debugging
        String[] out_array = splitResult(result);

        if (Integer.parseInt(out_array[0]) == 0) {    //success
            System.out.println("SUCCESS");
            switch (Integer.parseInt(out_array[1])) {
                case 1:
                    out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<center><h2>RobiCash</h2>\n"
                            + "<p>Invalid PIN<p></center>\n"
                            + "<a href=\"jsp/login.jsp\">Exit</a>"
                            + "</body>\n"
                            + "</html>";

                    break;
                case 2:
                    out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<center><h2>RobiCash</h2>\n"
                            + "<p>Invalid Mobile Number<p></center>\n"
                            + "<a href=\"jsp/login.jsp\">Exit</a>"
                            + "</body>\n"
                            + "</html>";
                    break;
                case 3:
                    out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<center><h2>RobiCash</h2>\n"
                            + "<p>System Error<p></center>\n"
                            + "<a href=\"jsp/login.jsp\">Exit</a>"
                            + "</body>\n"
                            + "</html>";
                    break;
                case 4:  //Agent
                    System.out.println("AGENT");
                    //out_str.concat("<%@ include file=\"jsp/agentMenu.jsp\" %>");
                    out_str =  <jsp:include page="jsp/agentMenu.jsp" />;


                    /*out_str = "<html>\n"
                            + "<body align=\"center\">\n"
                            + "<h2>RobiCash</h2>\n"
                            + "<h3>Agent Main Menu</h3>\n"
                            + "<table align=\"center\">\n"
                            + "<tr><td>1:</td><td><a href=\"agent_2.htm\">Top-Up/Recharge (P2)</a></td></tr> \n"
                            + "<tr><td>2:</td><td><a href=\"jsp/billPayment.jsp\">Bill Payment</a></td></tr>\n"
                            + "<tr><td>3:</td><td><a href=\"agent_2.htm\">Bill Check</a></td></tr>\n"
                            + "<tr><td>4:</td><td><a href=\"agent_3.htm\">Cash IN (P2)</a></td></tr>\n"
                            + "<tr><td>5:</td><td><a href=\"agent_4.htm\">Cash OUT (P2)</a></td></tr>\n"
                            + "<tr><td>6:</td><td><a href=\"agent_5.htm\">Customer Registration</a></td></tr>\n"
                            + "<tr><td>6:</td><td><a href=\"agent_6.htm\">My Balance</a></td></tr>\n"
                            + "<tr><td>7:</td><td><a href=\"agent_7.htm\">More</a></td></tr>\n"
                            + "<tr><td>8:</td><td><a href=\"jsp/login.jsp\">Exit</a></td></tr>\n"
                            + "</table>\n"
                            + "</body>\n"
                            + "</html>\n";*/
                    break;
                case 5:       //DSR
                    break;
                case 6:      //Distributor
                    break;
                case 7:      //Master Distributor
                    break;
                default:
                    break;
            }
        }  else {      //fail

        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    response = ServletActionContext.getResponse();
    response.setContentType("text/html");
    PrintWriter printWriter = null;
    try {
        printWriter = response.getWriter();
    } catch (IOException e) {
        e.printStackTrace();
    }

    StringBuffer _bf = new StringBuffer();

    _bf.append(out_str);
    printWriter.write(_bf.toString());
    printWriter.flush();
    printWriter.close();
}
您的内容可能会动态变化,使用请求调度器没有问题。作为初学者,你需要遵循的东西

在控制器中编写代码逻辑,这也被认为是不好的做法,因为需要将其与服务类分开。 在请求或会话范围中设置所需的值 使用RequestDispatcher或pageRedirect从控制器访问视图\ 使用EL或JSTL打印请求中的对象 从互联网上的大量参考资料开始


希望这有帮助

这给了我一个语法错误,无法解析符号agenmunexpected token near为什么需要那个out string变量?检查这里的语法如果你没有,这应该是有效的。。将html放入控制器是一种糟糕的做法。我建议您根据具体情况更改jsp名称,并将其包含在RequestDispatcher中。如果你能给我一些关于如何做的建议,我将不胜感激。首先,使用JSP是一种糟糕的做法,而你无法搜索现有的答案是你的根本问题。