Eclipse:jsp:包含servlet的动作

时间:2017-04-18 10:26:30

标签: eclipse jsp servlets jspinclude

嗯,这里又一次没有问题。 我有一个简单的servlet" Myservlet.java"打印一个字符串 (动态Web项目名称为" JspCallingServlet"其上下文根为" /") DynamicWebProject Explorer

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

/**
 * Servlet implementation class MyServlet
 */
@SuppressWarnings("serial")
@WebServlet(
        name="MyServlet",
        urlPatterns="/MyServlet"
        )
public class MyServlet extends HttpServlet {

... omitted code

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        PrintWriter out = response.getWriter();
        out.println("... I'M MyServlet ...");
    }

}

它起作用,因为如果我"在服务器上运行/运行"表明 servlet output

所以我认为我可以轻松地在包含动作的jsp中调用它, 设置为servlet URL的页面

<html>
<head>
<title>Using servlet into a jsp</title>
</head>
<body>
    Using: MyServlet.java
    <br />
    <jsp:include page="/MyServlet" />
</body>
</html>

但是为什么地狱呢

<jsp:include page="/MyServlet" />

没有编译,消息显示

Fragment "/MyServlet" was not found at expected path /JspCallingServlet/WebContent/MyServlet

为什么要在打开&#34;页面时打扰WebContent文件夹&#34; URL映射到servlet?。

2 个答案:

答案 0 :(得分:0)

<jsp:include page="/MyServlet">应更改为<jsp:include page="/xxx.jsp">

答案 1 :(得分:0)

:我自己找到了答案。

我在某种程度上被我发现的答案误导了 How to call servlet through a JSP page 在发布我提出的问题之前......

似乎 - 至少我发生了什么 - 为了包含servlet而使用的正确“动作”是“前进”动作: 不是“包括”一个。

即正确的.jsp是以下

<html>
<head>
<title>Using servlet into a jsp</title>
</head>
<body>
    Using "jsp:include" fails, while using "jsp:forward" works
    <br />
    <jsp:forward page="/MyServlet" />               <%-- WORKING --%>
    <%-- <jsp:include page="/MyServlet" /> --%>     <%-- NOT WORKING --%>
</body>
</html>
相关问题