我有两个jsp文件和一个java文件。我的约束是如果jspfile1调用java然后java文件调用jspfile2。可能吗? 怎么做到这一点?
答案 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网络请求。