日期:2014-05-17  浏览次数:20749 次

web项目 form中action的路径问题(action的目标为servlet)
各位大侠帮帮忙啊。。这个已经搞了我一天了,还是解决不了。。。快要崩溃了。。帮帮忙啊!!!

web项目名字叫:bishe
src/controller下有loginservlet.java文件
webroot下有login.jsp文件中:
<form action="/controller/loginservlet" method="post" name="loginform">
web-inf/classes/controller下有loginservlet.class
web.xml文件如下:
<servlet>
  <description>。。。。</description>
  <display-name>This is the display name of my J2EE component</display-name>
  <servlet-name>loginservlet</servlet-name>
  <servlet-class>controller.loginservlet</servlet-class>//这里我确定是路径没有问题
  <init-param>
  <param-name>listings</param-name>
  <param-value>true</param-value>
  </init-param>
</servlet>
 <servlet-mapping>
  <servlet-name>loginservlet</servlet-name>
  <url-pattern>/controller/loginservlet</url-pattern>
 </servlet-mapping>
然后部署项目后,浏览器地址为:http://127.0.0.1:8080/bishe/login.jsp
点击登录后:url变为了http://127.0.0.1:8080/controller/loginservlet
且报错:The requested resource (/controller/loginservlet) is not available.
是不是我的什么配置有问题还是路径哪里写错了?急啊!!~~~~(>_<)~~~~

------解决方案--------------------
form action="/controller/loginservlet" method="post" name="loginform">

改成
form action="controller/loginservlet" method="post" name="loginform">

不要前面的/


------解决方案--------------------
form action="/controller/loginservlet" method="post" name="loginform">

改成
form action="/loginservlet" method="post" name="loginform">


------解决方案--------------------
"然后部署项目后,浏览器地址为:http://127.0.0.1:8080/bishe/login.jsp
点击登录后:url变为了http://127.0.0.1:8080/controller/loginservlet
且报错:The requested resource (/controller/loginservlet) is not available."

 你的程序是不是都在bishe下?
看这样行不:
 
在你的login.jsp里加上:
<%
String contextPath = request.getContextPath();
%>
把form action="/controller/loginservlet" method="post" name="loginform">
改成 form action="<%=contextPath%>/controller/loginservlet" method="post" name="loginform">
 楼主试试看。