有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何从java调用jsp文件?

我有两个jsp文件和一个java文件。我的约束条件是,如果jspfile1调用java,那么java文件将调用jspfile2。可能吗? 如何做到这一点


共 (4) 个答案

  1. # 1 楼答案

    如果“Java文件”是指Servlet,则可以使用RequestDispatcher:

     request.getRequestDispatcher("/my.jsp").include(request, response);
    
     request.getRequestDispatcher("/my.jsp").forward(request, response);
    
  2. # 2 楼答案

    执行http web请求

  3. # 3 楼答案

    jsp文件被转换为servlet。你不能直接给他们打电话

    编辑:已修复打字错误

  4. # 4 楼答案

    正常的方法是使用Servlet。只需扩展HttpServlet并将其映射到web.xml中的某个url-pattern。然后在JSP中使用HTML链接或表单指向与servlet的url-pattern匹配的URL

    例如page1.jsp

    <form action="servletUrl">
        <input type"submit">
    </form>
    

    <a href="servletUrl">click here</a>
    

    不带method属性的<form>(默认为method="get")和<a>链接将调用servlet的doGet()方法

    public class MyServlet extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // Do your Java code thing here.
            String message = "hello";
            request.setAttribute("message", message); // Will be available in ${message}.
    
            // And then forward the request to a JSP file.
            request.getRequestDispatcher("page2.jsp").forward(request, response);
        }
    }
    

    如果您有一个<form method="post">,那么必须用doPost方法替换doGet

    将此servlet映射到web.xml中,如下所示:

    <servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>com.example.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/servletUrl</url-pattern>
    </servlet-mapping>
    

    所以它可以通过http://example.com/contextname/servletUrl获得。<form><a>URL必须相对或绝对指向该URL,才能调用servlet

    现在,这个servlet示例将一些“result”设置为名为“message”的请求属性,并将请求转发到page2.jsp。要在page2.jsp中显示结果,只需访问${message}

    <p>Servlet result was: ${message}</p>