我以前使用过Tomcat
,但不知道如何配置以及将servlet
放在哪里,我想从.jsp
页面接受参数以进行进一步处理。在"action"标记中指示实际的文件系统路径会导致"resource not available"
或"not found"
。我应该如何配置servlet
,包括.jsp
、web.xml
和文件系统中的"action"元素?非常感谢。
JSP也是一个servlet,因此您可以立即转发到servlet(通常情况下是相反的,servlet作为控制器,准备一个数据模型作为请求属性,并转发到JSP视图以显示数据。)
servlet可以通过servlet映射在web.xml中定义。如果使用注释,则映射是类似的。
<%
request.setAttribute("answer", "42");
RequestDispatcher rd = request.getRequestDispatcher("/myservlet");
rd.forward(request, response);
return; // No output from the JSP
%>
在上面的"/myservlet"将对应servlet映射。转发不会返回到浏览器,而是将其留给转发到的servlet。
您也可以将重定向到servlet。这意味着返回到浏览器,然后调用servlet的URL。
response.sendRedirect(response.encodeRedirectURL(redirect));
虽然看起来更间接,但它经常被用来防止用户导航回已发布的表单,两次提交表单。
如果您的问题与文件路径有关。request.getServletContext().getRealPath("/css/styles.css")
是接收文件系统路径的正常方式。
在NetBeans中,可以让Web项目生成.war进行部署,servlet可以驻留在任何您喜欢的包中。WEB-INF/WEB.xml用于传统思想,而Annotations则用于servlet类。