首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Servlet值没有显示在JSP中。

Servlet值没有显示在JSP中。
EN

Stack Overflow用户
提问于 2013-08-15 10:19:40
回答 2查看 946关注 0票数 0

我在servlet上测试了一个简单的测试。我想向JSP展示我在servlet中创造的价值,但它似乎没有出现。这是我的密码。

Test.java(servlet):

代码语言:javascript
复制
public class Test extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Test() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String message = "hello";
        request.setAttribute("message", message);
        request.getRequestDispatcher("/servlet-test.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
}

servlet-test.jsp(page):

代码语言:javascript
复制
<p>Message: ${message}</p>

web.xml

代码语言:javascript
复制
<servlet>
    <description></description>
    <display-name>Test</display-name>
    <servlet-name>Test</servlet-name>
    <servlet-class>com.fluxion.mrcos.actions.Test</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/Test</url-pattern>
</servlet-mapping>

然后,当我要在页面中查看它时,它的值就不会出现。总有一天能告诉我怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-15 10:29:00

您正在尝试直接访问/servlet-test.jsp,这意味着servlet将永远不会被调用!

您应该点击servlet的/Test URL,而不是直接转到JSP‘/servlet-test.jsp’。

这就是为什么通常的做法是通过将JSP放在WEB-INF目录下的目录下,来隐藏JSP不被直接访问的原因。

然后,请求调度程序行将更改为

代码语言:javascript
复制
request.getRequestDispatcher("/WEB-INF/jsp/servlet-test.jsp").forward(request, response);

所以你点击的URL应该是

代码语言:javascript
复制
www.example.com/context/Test
票数 0
EN

Stack Overflow用户

发布于 2013-08-15 13:43:51

解决了!只需向url模式添加扩展即可。

web.xml:

代码语言:javascript
复制
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test.do</url-pattern>

另外,我还删除了request.getRequestDispatcher(this中的WEB,这是我不明白的部分,但它有效。)

代码语言:javascript
复制
request.getRequestDispatcher("/servlet-test.jsp").forward(request, response);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18250680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档