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

100分求救——如何找不到我的servlet啊?

2011-12-06 
100分求救——怎么找不到我的servlet啊??????????很简单的一个serlet调用,代码如下:index.jsp页面中一个简单

100分求救——怎么找不到我的servlet啊??????????
很简单的一个serlet调用,代码如下:
index.jsp页面中一个简单的表单:
<form   name= "frm "   method= "post "   action= "servlet/com.zc.login.Login "   onsubmit= "return   check(); ">
              <div   align= "center "> 用户名:
                <input   name= "userName "   type= "text "   size= "12 ">
                      <br>
                              密码:
                                  <input   name= "userPwd "   type= "password "   size= "12 ">  
                                  <br>                                     
                              <input   type= "submit "   name= "Submit "   value= "确定 ">
                <input   type= "reset "   name= "Submit2 "   value= "重置 ">                        
            </div>
</form>

Login.java代码:

package   com.zc.login;

import   java.io.*;
import   javax.servlet.*;
import   javax.servlet.http.*;
import   java.util.*;

public   class   Login   extends   HttpServlet{
    protected   void   doPost(HttpServletRequest   req,   HttpServletResponse   res)   throws   ServletException,   IOException{
                String   userName=req.getParameter( "userName ");
                String   userPwd=req.getParameter( "userPwd ");
PrintWriter   out=res.getWriter();
out.println( "姓名是: "+userName);
out.println( "密码是: "+userPwd);
        }
}

web.xml就放在WEB-INF文件夹下,代码为:

<?xml   version= "1.0 "   encoding= "ISO-8859-1 "?>

<!DOCTYPE   web-app
        PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.3//EN "
        "http://java.sun.com/dtd/web-app_2_3.dtd ">

<web-app   id= '/ '>
  <directory-servlet   id= 'true '/>
  <servlet-mapping>
        <servlet-name> invoker </servlet-name>
        <url-pattern> /servlet/* </url-pattern>
  </servlet-mapping>
</web-app>

我用的是tomcat,已经配置好了我的虚拟目录,并且测试通过,在虚拟目录下建了文件夹WEB-INF
,里面再建了一个文件夹classes,其中放的是Login.java
在index.jsp表单中输入用户名和密码后,出现错误提示,说找不到servlet:

HTTP   Status   404   -   /my/servlet/com.zc.login.Login

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



type   Status   report

message   /my/servlet/com.zc.login.Login

description   The   requested   resource   (/my/servlet/com.zc.login.Login)   is   not   available.


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

Apache   Tomcat/5.0.28

实在想不明白,请高手帮帮忙啊,谢谢啦,万分感谢!

[解决办法]
<web-app id= '/ '>
<directory-servlet id= 'true '/>
<servlet>
<servlet-name> invoker </servlet-name>
<servlet-class>
com.zc.login.Login <== 这里也要写上,再运行试试。
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> invoker </servlet-name>
<url-pattern> /servlet/* </url-pattern>
</servlet-mapping>
</web-app>

[解决办法]
你的web.xml就这些东东:
<?xml version= "1.0 " encoding= "ISO-8859-1 "?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN "
"http://java.sun.com/dtd/web-app_2_3.dtd ">

<web-app id= '/ '>
<directory-servlet id= 'true '/>
<servlet-mapping>
<servlet-name> invoker </servlet-name>
<url-pattern> /servlet/* </url-pattern>
</servlet-mapping>
</web-app>

好像少了 <Servlet> ... </Servlet>
[解决办法]
<servlet>
<description> This is the description of my J2EE component </description>
<display-name> This is the display name of my J2EE component </display-name>
<servlet-name> MyServlet </servlet-name>
<servlet-class> com.cts.servlet.MyServlet </servlet-class>
</servlet>

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

<servlet-class> 标签里面就是指定具体哪个CLASS作为Servlet

[解决办法]
action= "servlet/com.zc.login.Login "

你找不到是正常的吧

我宁可是这么写

action= " <%=path%> /servlet/login "

其中的path是

String path = request.getContextPath();


WEB.XML这里面添加

<servlet>
<servlet-name> login </servlet-name>
<servlet-class> com.zc.login.Login </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> login </servlet-name>
<url-pattern> /servlet/login </url-pattern>
</servlet-mapping>
[解决办法]
"servlet/com.zc.login.Login "需要这么写吗?这接login.do 然后在servlet里进行配置
[解决办法]
action加上行对路径试试看。
[解决办法]
没servlet name怎么映射
[解决办法]
<?xml version= "1.0 " encoding= "utf-8 "?>
<web-app>
<servlet>
<servlet-name> Login </servlet-name>
<servlet-class> com.zc.login.Login </servlet-class>


</servlet>

<servlet-mapping>
<servlet-name> Login </servlet-name>
<url-pattern> servlet/com.zc.login.Login </url-pattern>
</servlet-mapping>
</web-app>

楼主把web.xml这么修改下试下
说明:
servlet-name: servlet名称
servlet-class:
CLASS位置 (package.class 例如package 是com CLASS名称是Login
那么就是com.Login 注意区分大小写)
url-pattern: 映射的URL路径
[解决办法]
应该是web.xml的配置错了,你按照楼上的 <servlet> 和 <servlet-mapping> 写全了,看看!

[解决办法]
我用的是tomcat,已经配置好了我的虚拟目录,并且测试通过,在虚拟目录下建了文件夹WEB-INF
,里面再建了一个文件夹classes,其中放的是Login.java


如果你是把Login.java放在classes下,那肯定找不到!

要编译啊!
[解决办法]
每个SERVLET都要配置一次的

没有什么简便的方法的
[解决办法]
你可以先写个控制器servlet,然后在web.xml中配置以将所有的/servlet/*的请求转发到相应的servlet,这样可实现只在web.xml中配一次即可访问所有的servlet.具体代码如下:
控制器servlet:
public class Dispatcher extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri=request.getRequestURI();
String[] ss=uri.split( "/ ");
String servletName=ss[ss.length-1];
servletName= "com.zc.servlet. "+servletName;
Class servlet;
try {
servlet = Class.forName(servletName);
Object obj=servlet.newInstance();
HttpServlet httpservlet=(HttpServlet)obj;
httpservlet.service(request, response);
} catch (Exception e) {
e.printStackTrace();
}

}
}
在web.xml中的配置:
<servlet>
<servlet-name> servletdispatcher </servlet-name>
<servlet-class> com.zc.servlet.Dispatcher </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> servletdispatcher </servlet-name>
<url-pattern> /servlet/* </url-pattern>
</servlet-mapping>
这样你在浏览器中访问/servlet/Login的时候,控制器会自动转向com.zc.servlet.Login这个servlet并执行service方法
[解决办法]
action= "servlet/com.zc.login.Login 可以这样吗?

热点排行