gpt4 book ai didi

java - 从html访问WEB-INF/jsp

转载 作者:行者123 更新时间:2023-12-02 02:04:31 26 4
gpt4 key购买 nike

我有一个简单的应用程序来测试html和jsp之间的通信。我的jsp位于

WEB-INF/test.jsp

这是我的文件的结构:

ProjectA 
src
irstServlet.java
Web-Content
test1.html
WEB-INF
test.jsp

这是 servlet 的代码

protected void doPost(HttpServletRequest request, response) throws ServletException, IOException {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/test.jsp");
request.setAttribute("userName", request.getParameter("userName"););
dispatcher.forward(request, response);
}

首先,我在 tomcat 中部署,启动我的 test1.html:它将我带到 servlet:FirstServlet.java,我可以在那里输入用户名。

但是在我输入值并按 Enter 键后,我希望它会将我转发到不起作用的 test.jsp 。我收到错误:

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

编辑:在我的 html 中,我尝试像这样使用它:

<form method="POST" name="XX" action="/HelloWorldServlet">

仍然无法工作。

请问有人可以帮助我吗?

最佳答案

您的代码看起来根本无法编译。

  • 参数response没有类型 - 应为HttpServletResponse
  • request.getParameter("userName") 后面有一个分号 (;)

另外,我不确定为什么您从 servlet 上下文而不是请求中获取 RequestDispatcher - 然后我也从未检查过它是否有任何区别。

无论如何,我会像这样重写 doPost 方法:

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("userName", request.getParameter("userName"));
req.getRequestDispatcher("/WEB-INF/test.jsp").forward(req, resp);
}

编辑:

我假设您的 web.xml 中有正确的 servlet 映射:

<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>

或者您的 servlet 带有 @WebServlet 注释:

@WebServlet("/HelloWorldServlet")
public class FirstServlet extends HttpServlet {
//your code
}

。如果这两者都不是真的,那就是你的问题了。

关于java - 从html访问WEB-INF/jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51017572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com