(1)login.jsp<html>
   <head>
      <title>helloapp</title>
   </head>
   <body>
     <br>
     <form name="loginForm" method="post" action="dispatcher">
       <table>
         <tr>
            <td><div align="right">User Name:></td>
            <td><input type="text" name="username"></td>
         </tr>
         <tr>
            <td><div align="right">Password:></td>
            <td><input type="password" name="password"></td>
         </tr>
         <tr>
            <td></td>
            <td><input type="Submit" name=Submit" value="Submit"></td>
         </tr>
        </table>
     </form>
   </body>
</html>  (2)DispatcherServlet.jspimport javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class DispatcherServlet extends HttpServlet
{
   private String target="/hello.jsp";
   
   public void init(ServletConfig config) throws ServletException
   {
      super.init(config);
   }
   public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException
   {
      //If it is a get request forward to doPost()
      doPost(request,response);
   }
   public void doPost(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException
   {
      //Get the username from the request
      String username=request.getParameter("username");
      //Get the password from the request
      String password=request.getParameter("password");
      
      //Add the user to the request
      request.setAttribute("USER",username);
      request.setAttribute("PASSWORD",password);
      
      //Forward the request to the target named
      ServletContext context=getServletContext();
      
      
      System.out.println("Redirecting to" + target);
      RequestDispatcher dispatcher=context.getRequestDispatcher(target);
      dispatcher.forward(request,response);
      
   }
   public void destroy()
   {
    
   } 
}  (3)hello.jsp<html>
<head>
<title>helloapp</title>
</head>
<body>
<b>Welcome:<%=resquest.getAttribute("USER")%></b>
</body>
</html> 我在web.xml中写了下面配置<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Servlet</display-name>
    <description>Servlet</description>
    <servlet>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>dispatcher</url-pattern>
    </servlet-mapping>
</web-app>
在运行login的时候,点提交时出现错误HTTP Status 404 - /helloapp/dispatcher--------------------------------------------------------------------------------type Status reportmessage /helloapp/dispatcherdescription The requested resource (/helloapp/dispatcher) is not available.这是为什么?55555555555555555555    
 

解决方案 »

  1.   

    <url-pattern>/dispatcher</url-pattern>??
      

  2.   

    <servlet>
            <servlet-name>SampleServlet</servlet-name>
            <servlet-class>DispatcherServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>dispatcher</url-pattern>
        </servlet-mapping><servlet-name>SampleServlet</servlet-name>中的SampleServlet和<servlet-name>dispatcher</servlet-name>中德dispatcher这俩应该一样吧?只是一个映射,改一下,改成相同的什么都行<servlet-class>DispatcherServlet</servlet-class>中DispatcherServlet是你那个sevelet的全路经,看看写错没有? <url-pattern>dispatcher</url-pattern>中的dispatcher不对吧??应该改成什么来着?*.servelet???  struts里是*.do  很久不做纯jsp的东西了,那位补充下?
      

  3.   

    HTTP Status 404 - /helloapp/dispatcher
    肯定是路径的错误!我也有过修改和路径设计有关的文档!
      

  4.   

    <display-name>Servlet</display-name>
        <description>Servlet</description>
        <servlet>
            <servlet-name>SampleServlet</servlet-name>
            <servlet-class>DispatcherServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>dispatcher</url-pattern>
        </servlet-mapping>
    先把 <servlet-name>dispatcher</servlet-name>中那个dispatcher改成SampleServlet<servlet-class>DispatcherServlet</servlet-class>中DispatcherServlet把这个类的全路径写上,那个包下的那个类,比如XXX.XXX.XXX.DispatcherServlet<url-pattern>dispatcher</url-pattern>中的dispatcher改成*.servelet试试
      

  5.   

    <servlet>
            <servlet-name>SampleServlet</servlet-name>---这个是你给这个servlet起的名字
            <servlet-class>DispatcherServlet</servlet-class> ---这个是你写的类的名字
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>>---这个是你给这个servlet起的名字
            <url-pattern>/dispatcher</url-pattern>---这个是你访问这个servlet时访问的地址
        </servlet-mapping>
    所以上述两处<servlet-name>应该是写成一样的名字
    url处要加 /
    访问时,访问dispatcher
    <form name="loginForm" method="post" action="dispatcher">
    这样就可以
      

  6.   

    补充楼上的
    <servlet-class>DispatcherServlet</servlet-class> ---这个是你写的类的名字
    ---需要类的全路径,如: com.mypackage.DispatcherServlet
      

  7.   

    <servlet>
            <servlet-name>SampleServlet</servlet-name>
            <servlet-class>DispatcherServlet</servlet-class>
    </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>dispatcher</url-pattern>
        </servlet-mapping>
    ---- <servlet-name>dispatcher</servlet-name>要相同
    这样改
    <servlet>
            <servlet-name>SampleServlet</servlet-name>
            <servlet-class>DispatcherServlet</servlet-class>
    </servlet>
        <servlet-mapping>
            <servlet-name>SampleServlet</servlet-name>
            <url-pattern>/dispatcher</url-pattern>还要加/
        </servlet-mapping>
      

  8.   

    <form name="loginForm" method="post" action="/dispatcher">
    最好这个地方也加\