读书人

难道没有人能解决这个有关问题,为什么

发布时间: 2012-01-18 00:23:26 作者: rapoo

难道没有人能解决这个问题,为什么我的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 ">

读书人网 >Java Web开发

热点推荐