<servlet-mapping > 
<servlet-name >ContactServlet </servlet-name > 
<url-pattern >/contact </url-pattern > 
</servlet-mapping > 
你的urlmaping写错了
这里的路径必须以contact开头
如果你要所有包含contact的
就要改成
<url-pattern >/*/contact </url-pattern > 

解决方案 »

  1.   

    你的Servlet路径是/contact
    而你的请求为contact_servlet_test.html
    这个对应不上啊。
    把url-pattern中的/contact改为contact_servlet_test.html试试
      

  2.   

    我点击完按钮就变成了http://localhost:8080/ch12/contact?userName=cao&action=view了所以说还是请求得contact
    另外改了<url-pattern>/contact/*</url-pattern>这样不是可以请求到的么高手指点。
      

  3.   

    <form action="/ch12/contact" method="get">
    改为:
    <form action="contact" method="get">
      

  4.   

    要看你得tomcat的context是怎么配置的。
      

  5.   

    grubbyfan 
    改了不行
    idilent
    怎么配置你所说的tomcat的context阿
    谢谢。
      

  6.   

    ...仔细一看,原来你的页面不是在根目录下的,而是跟目录下的一个pages文件夹,那么,你的form的action要写成对应的
    action="../contact",
    并且<url-pattern>/contact</url-pattern>
      

  7.   

    grubbyfan
    我现在把它放到根目录下了
    但是不行。你是否可以再详细点
    晚上回去要再补以下SERVLET了
    刚接触
      

  8.   

    我已经按照你的文件位置验证过了,是可以的,<url-pattern>/contact</url-pattern>是相对于你的上下文来说的,也就是说在你的工程里应该是
    http://localhost:8080/ch12/contact,这样就是访问你的Servlet。
    那么如果你的contact_servlet_test.html是放在/ch12这个对应文件夹下的,就可以这样调你的action: <form action="/contact" ...>;
    现在你的contact_servlet_test.html是在ch12/pages这个文件夹下的,那么你就应该对应的这样调你的action: <form action="../contact" ...>。
    另外有一点,你最好测试的时候用jsp页面,因为tomcat可能会缓存你的html页面,这样你修改了之后就会没有效果,好像还是错的,你最好在修改之后删除tomcat中的临时文件。试一下吧,你能行的,如果有说的不对,请其他人指正,谢谢
      

  9.   

    谢谢grubbyfan
    我明天上班再试试.