我正在JSP页面上尝试此代码:
<%
if((ArrayList<Car>) session.getAttribute("car_1") == null){
%>
<jsp:forward page="/MyServlet.java"/>
<%}%>
当我运行我的项目时,我收到错误404并显示消息:&#34;请求的资源不可用。&#34;
我想问题是web.xml(我没有)。可以吗?
答案 0 :(得分:1)
您只是链接到上下文中包含的MyServlet.java
文件的源代码。如果没有,您将收到404错误。
您很可能错误地添加了.java
。尝试:
<jsp:forward page="/MyServlet"/>
我正在假设您的servlet(WEB-INF/classes/your/package/MyServlet.class
)通过注释正确映射:
@WebServlet(urlPatterns = {"/MyServlet"})
public class MyServlet extends HttpServlet { ... }
或web.xml
:
<web-app ...>
<servlet>
<servlet-name>MyServletName</servlet-name>
<servlet-class>your.package.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServletName</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
...
答案 1 :(得分:1)
是的,你需要带有至少2个标签的web.xml:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.bla.blah.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
在JSP中,您需要使用:
<jsp:forward page="/myservlet"/>
或
<jsp:forward page="/mywarfilename/myservlet"/>
答案 2 :(得分:0)
只是一些事情
安吉洛
答案 3 :(得分:0)
如果你将HttpServletRequest#contextPath
追加到表达语言的路径中会更好:
<jsp:forward page="${request.contextPath}/MyServlet"/>
此外,最好不要使用scriptlet,使用JSTL可以实现相同的行为:
<c:if test="${empty car_1}">
<jsp:forward page="${request.contextPath}/MyServlet"/>
</c:if>