写了一个表单提交姓名,返回问候语的例子,但是配置的文件总是不对,大家帮忙看看吧。下面给出 UI 文件 MyHtml.html 文件,这个文件位于项目的根目录下,项目名为01,也就是 01/MyHtml.html servlet这个类, web.xml 文件自己感觉像是文件的路径放错了,返回的错误是 HTTP Status 404 - /01/welcom 另外,更奇怪的是,http://localhost:8080/01/welcom?user=2 这里为什么少了一个 e ?文件列出如下:web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>MyHtml.html</welcome-file>
  </welcome-file-list>
  
  
  <servlet>
   <servlet-name>welcome</servlet-name>
   <servlet-class>WelcomeYou</servlet-class>
  </servlet>
  
  <servlet-mapping>
   <servlet-name>welcome</servlet-name>
   <url-pattern>/MyHtml</url-pattern>
  </servlet-mapping></web-app>
servlet文件import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WelcomeYou extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
String user = req.getParameter("user");
String welcomeInfo = "Welcome you, " + user;

resp.setContentType("text/html");


PrintWriter out = resp.getWriter();

out.println("<html><head><title>");
out.println("Welcome Page");
out.println("</title></head>");
out.println("<body>");
out.println(welcomeInfo);
out.println("</body></html>");
out.close();

} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
}}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MyHtml.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  </head>
  
  <body>
  this is 
     <form action="welcome" method="get">
input your id: <input type="text" name="user"><p>
<input type="submit" value="submit">
  </body>
</html>

解决方案 »

  1.   

    <servlet-mapping>
          <servlet-name>welcome</servlet-name>
          <url-pattern>/MyHtml</url-pattern>
      </servlet-mapping>
    表单里的action应该是MyHtml吧。
      

  2.   

    <form action="welcome" method="get">
    welcome是你配置的servlet的名字
    表单提交的路径是你配置的servlet的 <url-pattern>/MyHtml</url-pattern>
      

  3.   

     <servlet-mapping>
          <servlet-name>welcome</servlet-name>
          <url-pattern>/MyHtml</url-pattern>
      </servlet-mapping><form action="welcome" method="get">
    action写错了啊
      

  4.   

    我的显示是http://localhost:8080/shishi/welcome?user=eeee
    没有少e啊 楼主弄错了吧?
      

  5.   

    另外,把<form action="welcome" method="get">改为<form action="MyHtml" method="get">就可以了
    因为你这里设的是这个<url-pattern>/MyHtml</url-pattern>
      

  6.   

    再问个问题,关于调试的的问题,怎么去调试一个Servlet呢?我在 *.java中加了断点,然后点击那个小虫子,但是MyEclipse根本不动啊,服务器不转啊。问问大家,这个调试应该怎么来做呢?