首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

难道没有人能解决这个有关问题,为什么小弟我的servlet老是跑不起来

2012-01-18 
难道没有人能解决这个问题,为什么我的servlet老是跑不起来?我的tomcat的环境变量配置如下:JAVA_HOME:C:\Pr

难道没有人能解决这个问题,为什么我的servlet老是跑不起来?
我的tomcat的环境变量配置如下:
JAVA_HOME:C:\Program   Files\Java\jdk1.6.0

CATALINA_BASE:E:\Tomcat   5.0

CATALINA_HOME:E:\Tomcat   5.0
 
TOMCAT_HOM:E:\Tomcat   5.0

path:C:\Program   Files\Java\jdk1.6.0\bin

classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;.;%JAVA_HOME%\lib\dt.jar;   %JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar
我测试jsp文件时,没有问题,但是测试servlet时总是报错,以下有一个例子:
fromHtml.html   此文件放在root目录下,如下:
<html>
<head>
<title>
a   form   html   example
</title>
  </head>
  <body   bgcolor= "pink ">
  <form   action= "/doget "   method= "get ">
  input   you   name:   <input   type= "text "   name= "myname "> <br>
  your   loves:   <select   name= "love ">
  <option   value= "sleep "> Sleep </option>
  <option   value= "dance "> Dance </option>
  <option   value= "travel "> Travel </option>
  </select> <br>
  <input   type= "submit "   value= "hand "   name= "submit ">
  <input   type= "reset "   value= "reset "   name= "submit ">
  </form>
</body>
</html>

下面的是servlet文件 
import   java.io.*;
import   javax.servlet.*;
import   javax.servlet.http.*;
public   class   doForm   extends   HttpServlet
{
public   void   doPost(HttpServletRequest   req,HttpServletResponse   res)throws   ServletException,
IOException
{
res.setContentType( "text/html ");
PrintWriter   out=res.getWriter();
out.println( " <html> <head> </head> <body> ");
out.println( "name:   "+req.getParameter( "myname "));
out.println( " <br> ");
out.println( "love:   "+req.getParameter( "love "));
out.println( " </body> </html> ");
out.close();

}
public   void   doGet(HttpServletRequest   req,   HttpServletResponse   res)throws   ServletException,
IOException
{
            doPost(req,res);
}
}
这个文件己经编译过了,而且没有问题,我把它的类文件放在了E:\Tomcat   5.0\webapps\ROOT\WEB-INF\classes目录下.
并且我修改了在
E:\Tomcat   5.0\webapps\ROOT\WEB-INF下的web.xml文件:在 <wed-app> 标签之间添加了以下代码:
<servlet>
<servlet-name> a </servlet-name>
<servlet-class> doForm </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> a </servlet-name>
<url-pattern> /doget </url-pattern>
</servlet-mapping>
但是通过浏览器访问http://localhost:8080/fromHtml.html  
后,在表单中填写信息以后,提交后:
tomcat   出现如下的报错信息:

HTTP   Status   404   -   /doget

--------------------------------------------

type   Status   report

message   /doget

description   The   requested   resource   (/doget)   is   not   available.




--------------------------------------------

Apache   Tomcat/5.0.28


[解决办法]
我用Tomcat 5.5跑起来没有问题哦
[解决办法]
ation那儿不要/
这样就行了
[解决办法]
<form action= "/doget " method= "get ">
action里多了个 "/ "
[解决办法]
给楼主给建议:在写form的action时,最好使用带项目名称的,例:action= " <%=request.getContextPath()%> /updatePassword ",这样一来,无论是哪调用的都能找到的.
[解决办法]
1. <form action= "/doget " method= "get ">
action里多了个 "/ "
把它去掉

2.给form起个名 name= "起个名 "

3.给servlet文件加个包:
在第一句写 package servlet;

4.把xml改一下
<servlet>
<servlet-name> a </servlet-name>
<servlet-class> doForm </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> a </servlet-name>
<url-pattern> /doget </url-pattern>
</servlet-mapping>
改成
<servlet>
<servlet-name> doform </servlet-name>
<servlet-class> servlet.doForm </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> doform </servlet-name>
<url-pattern> /doform </url-pattern>
</servlet-mapping>
[解决办法]
<form action= "/doget " method= "get ">
这样写提交的URI有问题,改成 <form action= " <%=aplicationgetContextPath()%?> /doget " method= "get ">

热点排行