如何从java调用jsp文件?

时间:2010-03-13 08:45:06

标签: java jsp

我有两个jsp文件和一个java文件。我的约束是如果jspfile1调用java然后java文件调用jspfile2。可能吗? 怎么做到这一点?

4 个答案:

答案 0 :(得分:3)

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

 request.getRequestDispatcher("/my.jsp").include(request, response);

 request.getRequestDispatcher("/my.jsp").forward(request, response);

答案 1 :(得分:1)

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

E.g。 page1.jsp

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

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

<form>没有method属性(默认为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">,则必须使用doGet方法替换doPost

将此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>网址必须指向相对或绝对地确定该网址才能调用servlet。

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

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

答案 2 :(得分:0)

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

编辑:拼写错误。

答案 3 :(得分:0)

执行http网络请求。