大家帮忙看看我写的这个怎么一直报404错误。
查看启动时的错误时com.java.filter.FormFilter cannot be cast to javax.servlet.Filter

解决方案 »

  1.   

    代码如下
    CarAction.javapackage Action;import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import Bean.CarBean;
    import Handle.DataBaseLink;import com.opensymphony.xwork2.ActionSupport;public class CarAction extends ActionSupport{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    Connection conn = null;
    public String execute() throws Exception  {
    DataBaseLink db = new DataBaseLink();

    conn = db.GetConnection();
     return query();
    } private String query() throws Exception {
    PreparedStatement prepar = null;
    String sql = "select * from car"; // 从另一张表查出信息
    prepar = conn.prepareStatement(sql);
       ResultSet rs = prepar.executeQuery(sql);
       ArrayList<CarBean> carList = new ArrayList<CarBean>();
        // new一个list
       while (rs.next()) {
    CarBean carbean = new CarBean(); // 引进carbean
    carbean.setCarid(rs.getInt("carid"));
    carbean.setCarname(rs.getString("carname"));
    carbean.setPrice(rs.getFloat("price"));
    carbean.setCarcount(rs.getInt("carcount"));
    carbean.setImageurl(rs.getString("imageUrl"));
    carbean.setDescription(rs.getString("description"));
    carbean.setBrandname(rs.getString("brandname"));// 这里你可以按你需要取出数据库的列的值
    carList.add(carbean);// 把值添加到list里面
    }
       System.out.println("数据库里面有"+carList.size()+"条记录");
         // 把list 放到session中,传回给页面,所以页面只需接收listAll就可以了
       HttpSession session = ServletActionContext.getRequest()
         .getSession();
       session.setAttribute("carlist", carList);
       conn.close();
       rs.close();
       prepar.close();
       return "query";
     }
    //这里是添加信息的功能
     public String add() throws Exception{
     
      //首先要接收页面传过来的值
      String carName=ServletActionContext.getRequest().getParameter("carName");
      float price=Float.parseFloat(ServletActionContext.getRequest().getParameter("price"));
      int carCount=Integer.parseInt(ServletActionContext.getRequest().getParameter("carCount"));
      String description=ServletActionContext.getRequest().getParameter("description");
      //String carName=ServletActionContext.getRequest().getParameter("carName");
      
      //如果输出是乱码的话,就要转码了
      System.out.println(carName+price+carCount+description);
      PreparedStatement prepar = null;
      String sql = "insert into car(carname,price,carcount,description) values('"+carName+ "','"+ price+"','"+carCount+"','"+description+"')";
       prepar = conn.prepareStatement(sql);
       prepar.executeUpdate();
       conn.close();
       prepar.close();
      //return "add";  如果你是返回这个,那么页面没有跟新到你新增的信息,所以在返回时要在查询一遍,也就是下面的方法
      return query();
     }
    //删除用户
     public String del() throws Exception{
    int carId=Integer.parseInt(ServletActionContext.getRequest().getParameter("carId"));
      System.out.println(carId);
      PreparedStatement prepar = null;

       
       String sql = "delete  from car where carid="+carId;
       prepar = conn.prepareStatement(sql);
       prepar.executeUpdate(sql);
       conn.close();
       prepar.close();
       return query();
     }
     //修改用户信息
     public String update() throws Exception{
      //修改用户信息,首先要接收到要修改哪个用户的ID,然后返回给页面,给显示出该用户的所有信息
      String carId=ServletActionContext.getRequest().getParameter("carId");
      System.out.println(carId);
      int i=Integer.parseInt(carId);
     // Connection conn = DBcon.getConnection();
      PreparedStatement prepar = null;
    String sql = "select *  from car where carid="+i;
    prepar = conn.prepareStatement(sql);
       ResultSet rs=prepar.executeQuery(sql);
       ArrayList<CarBean> carList = new ArrayList<CarBean>();
        // new一个list
       while (rs.next()) {
    CarBean carbean = new CarBean(); // 引进carbean
    carbean.setCarid(rs.getInt("carid"));
    carbean.setCarname(rs.getString("carname"));
    carbean.setPrice(rs.getFloat("price"));
    carbean.setCarcount(rs.getInt("carcount"));
    carbean.setImageurl(rs.getString("imageUrl"));
    carbean.setDescription(rs.getString("description"));
    carbean.setBrandname(rs.getString("brandname"));// 这里你可以按你需要取出数据库的列的值
    carList.add(carbean);// 把值添加到list里面
    }
       System.out.println("数据库里面有"+carList.size()+"条记录");
        // 把list 放到session中,传回给页面,所以页面只需接收listAll就可以了
       HttpSession session = ServletActionContext.getRequest()
         .getSession();
       session.setAttribute("carlist", carList);
       conn.close();
       rs.close();
       prepar.close();
       return "update";
     }
     //接受修改页面传过来的值
     public String update1() throws Exception{
      //我在这只接受price carcount description carid如果没有ID的话,就会把全部更新了,不是我们想要的效果
      float price=Float.parseFloat(ServletActionContext.getRequest().getParameter("price"));
      int carCount=Integer.parseInt(ServletActionContext.getRequest().getParameter("carCount"));
      String description=ServletActionContext.getRequest().getParameter("description");
      int carId=Integer.parseInt(ServletActionContext.getRequest().getParameter("carId"));
      PreparedStatement prepar = null;
      String sql="update car set price='"+price+"',set carcount='"+carCount+"'," +
       "set description='"+description+"' where carid="+carId;
      prepar = conn.prepareStatement(sql);
          prepar.executeUpdate(sql);
       conn.close();
       prepar.close();
      return query();
     }
    }
      

  2.   

    carchange.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="Bean.*"%>
    <%@taglib uri="/struts-tags" prefix="s"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>商品显示</title>
    <meta http-equiv="Content-Type" content="text/html">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page"> </head>
    <body bgcolor="#B0CDE5">
    <center>
    <table width="1000" align="center" border="2" cellspacing="2"
    cellpadding="2">
    <tr>
    <td align="center" height="50">
    商品号
    </td>
    <td align="center" height="50">
    商品名称
    </td> <td align="center" height="50">
    商品价格
    </td>
    <td align="center" height="50">
    商品数量
    </td>
    <!--  
    <td align="center" height="50">
    图片
    </td>
    -->
    <td align="center" height="50">
    商品说明
    </td>
    <td align="center" bgcolor="#666633">
    商品操作
    <input type="button" value="添加"
    onClick="window.location.href='carinsert.jsp'">
    </td>
    </tr>
    <s:iterator value="#session.carlist" status="status">;
        <tr>
    <td align="center" height="50">
    <s:property value="carid" />
    </td>
    <td align="center" height="50">
    <s:property value="carname" />
    </td>
    <td align="center" height="50">
    <s:property value="price" />
    </td>
    <td align="center" height="50">
    <s:property value="carcount" />
    </td>
    <!-- 
    <td align="center" height="50">
    <img src="/CarShopping01/image/<s:property value="iamgeurl"/>"
    height="50" width="50" alt="车的图片" />
    </td>
     -->
    <td align="center" height="50">
    <s:property value="name" />
    </td>
    <td width="173" align="center">
    <input type="button" value="修改"
    onclick="window.location.href='car!update.action?carid='+<s:property value="carid"/>">
    <input type="button" value="删除"
    onclick="if(window.confirm('确定要删除[<s:property value="carname"/>]吗?')==true){window.location.href='car!del.action?carid='+<s:property value="carid"/>}">
    </td>
    </tr>
    </s:iterator>
    </table>

    </center>
    </body>
    </html>
      

  3.   

    carinsert.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@ page contentType="text/html;charset=gb2312"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>添加车辆品牌下的车辆类型</title>
    <meta http-equiv="Content-Type" content="text/html">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    </head>
    <body>
    <form name="myform" id="form1" action="login!add.action" method="post">
    <table cellspacing="1" cellpadding="1">
    <tr>
    <td height="50">
    请输入商品名称:
    </td>
    <td height="50">
    <input type="text" size="30" id="carName" name="carName" />
    </td>
    </tr> <tr>
    <td height="50">
    请输入商品价格:
    </td>
    <td height="50">
    <input type="text" id="price" name="price" size="10" />
    <em>元</em>
    </td>
    </tr>
    <tr>
    <td height="50">
    请输入商品数量:
    </td>
    <td height="50">
    <input type="text" id="carCount" name="carCount" size="10" />
    <em>件</em>
    </td>
    </tr>
    <!--  
     <tr>
    <td height="50">
    请上传图片:
    </td>
    <td height="50">
    <input type="file" name="image" size="50" />
    </td>
    </tr>
     -->
    <tr>
    <td height="50">
    请输入商品商品说明:
    </td>
    </tr>

    <tr>
    <td valign="top" colspan="2">
    <textarea id="description" name="description" rows="10" cols="60"></textarea>
    </td>
    </tr>
    </table>
    <tr>
    <td>
    <input type="submit" name="Submit" value="提交" />
    <input type="reset" value="清空" />
    </td>
    </tr>
    </form>
    </body>
    </html>
      

  4.   

    引用的Filter包错了,你导包的时候把其他地方的Filter导进来了,应该导的是这个javax.servlet.Filter
      

  5.   

    carupdate.jsp
    <%@ page language="java" import="java.util.*" %>
    <%@ page contentType="text/html"%>
    <%@ page import="Bean.*" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
       <title>修改商品</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    </head>
      
      <body bgcolor="#B0CDE5">
      <c:forEach items="${carList}" var="carbean">
       <form name="insertForm" action="car!update1.action" target="_self" method="post">
       <table cellspacing="1" cellpadding="1">
       <tr >
       <td height="50">商品名称</td>
       <td height="50"><input type="text" size="30" name="carName" readonly="readonly" value="${carbean.carName}" ></td>
       </tr>
      
       <tr>
       <td height="50">请输入商品价格</td>
       <td height="50">
       <input type="text" name="price" size="10" value="${carbean.price} }"/>
       <em>元</em>
       </td>
       </tr>
       <tr>
       <td height="50">请输入商品数量</td>
       <td height="50">
       <input type="text" name="carCount" size="10" value="${carbean.carcount} }"/>
       <em>件</em>
       </td>
       </tr>
      
      
      
       <tr>
       <td height="50">请输入商品商品说明:</td>
       </tr>
       <tr>
       <td valign="top" colspan="2">
       <textarea name = "description" rows="10" cols="60">${carbean.description} }</textarea>
       </td>
       </tr>
       </table>
       <tr>
       <td>
       <input type="submit" name="Submit" value="提交"/>
       <input type="reset" value="清空"/>
       </td>
       </tr>
       </form>
       </c:forEach>
      </body>
    </html>
      

  6.   

    javabean文件是:package Bean;public class CarBean {
    private int carid;
    //private int brandid;
    private String carname;
    private String brandname;
    private float price;
    private int carcount;
    private String imageurl;
        private String description;

        public int getCarcount() {
    return carcount;
    } public void setCarcount(int carcount) {
    this.carcount = carcount;
    } public String getBrandname() {
    return brandname;
    } public void setBrandname(String brandname) {
    this.brandname = brandname;
    } public CarBean(){
        
        } /*public int getBrandid() {
    return brandid;
    } public void setBrandid(int brandid) {
    this.brandid = brandid;
    }*/ public String getCarname() {
    return carname;
    } public void setCarname(String carname) {
    this.carname = carname;
    } public float getPrice() {
    return price;
    } public void setPrice(float price) {
    this.price = price;
    } public String getImageurl() {
    return imageurl;
    } public void setImageurl(String imageurl) {
    this.imageurl = imageurl;
    } public String getDescription() {
    return description;
    } public void setDescription(String description) {
    this.description = description;
    } public int getCarid() {
    return carid;
    } public void setCarid(int carid) {
    this.carid = carid;
    }
      
       
    }
      

  7.   

    连接数据库的
    package Handle;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;public class DataBaseLink { private String driverClass="com.mysql.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/car1?"
    + "useunicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull";
    private String dataUser = "root";
    private String dataPwd = "123456";

    private Connection conn = null;

    public DataBaseLink()
    {
    try
    {
    Class.forName(driverClass).newInstance();
    conn = DriverManager.getConnection(url, dataUser,dataPwd);
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    System.out.println("MYSQL路径错误");
    } catch (InstantiationException e) 
    {
    e.printStackTrace();
    System.out.println("newInstance无法工作");

    catch (IllegalAccessException e) 
    {
    e.printStackTrace();
    System.out.println("其他的方法不能使用newInstance");

    catch (ClassNotFoundException e) 
    {
    e.printStackTrace();
    System.out.println("驱动错误");
    }
    }

    public Connection GetConnection()
    {
    return conn;
    }
    }
      

  8.   

    错误信息
    2012-9-19 13:16:26 org.apache.catalina.core.AprLifecycleListener init
    信息: Loaded APR based Apache Tomcat Native library 1.1.22.
    2012-9-19 13:16:26 org.apache.catalina.core.AprLifecycleListener init
    信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
    2012-9-19 13:16:27 org.apache.coyote.http11.Http11AprProtocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2012-9-19 13:16:27 org.apache.coyote.ajp.AjpAprProtocol init
    信息: Initializing Coyote AJP/1.3 on ajp-8009
    2012-9-19 13:16:27 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 1255 ms
    2012-9-19 13:16:27 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2012-9-19 13:16:27 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.35
    2012-9-19 13:16:27 org.apache.catalina.startup.HostConfig deployDescriptor
    信息: Deploying configuration descriptor host-manager.xml
    2012-9-19 13:16:27 org.apache.catalina.startup.HostConfig deployDescriptor
    信息: Deploying configuration descriptor manager.xml
    2012-9-19 13:16:27 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory CarShopping
    2012-9-19 13:16:29 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory CarShopping01
    2012-9-19 13:16:29 org.apache.catalina.loader.WebappClassLoader validateJarFile
    信息: validateJarFile(E:\software\JSP\apache-tomcat-6.0.35\webapps\CarShopping01\WEB-INF\lib\javax.servlet-5.1.12.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    2012-9-19 13:16:30 org.apache.catalina.core.StandardContext listenerStart
    严重: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
    javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:113)
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.getConfiguredFactory(ConfigureListener.java:1996)
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.scanForFacesServlet(ConfigureListener.java:1970)
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.<init>(ConfigureListener.java:1944)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:295)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    2012-9-19 13:16:30 org.apache.catalina.core.StandardContext start
    严重: Error listenerStart
    2012-9-19 13:16:30 org.apache.catalina.core.StandardContext start
    严重: Context [/CarShopping01] startup failed due to previous errors
    2012-9-19 13:16:30 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory ceshi
    2012-9-19 13:16:30 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory demo
    2012-9-19 13:16:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts-default.xml]
    2012-9-19 13:16:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts-plugin.xml]
    2012-9-19 13:16:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts.xml]
    2012-9-19 13:16:31 org.apache.struts2.config.Settings getLocale
    警告: Settings: Could not parse struts.locale setting, substituting default VM locale
    2012-9-19 13:16:32 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit>
    信息: Setting DefaultObjectTypeDeterminer as default ...
    2012-9-19 13:16:32 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory demo01
    2012-9-19 13:16:33 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts-default.xml]
    2012-9-19 13:16:33 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts-plugin.xml]
    2012-9-19 13:16:33 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts.xml]
    2012-9-19 13:16:33 org.apache.struts2.config.Settings getLocale
    警告: Settings: Could not parse struts.locale setting, substituting default VM locale
    2012-9-19 13:16:34 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit>
    信息: Setting DefaultObjectTypeDeterminer as default ...
    2012-9-19 13:16:34 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory docs
    2012-9-19 13:16:34 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory EShopping
    2012-9-19 13:16:35 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory examples
    2012-9-19 13:16:35 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2012-9-19 13:16:35 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    2012-9-19 13:16:35 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory ROOT
    2012-9-19 13:16:35 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory Servlet
    2012-9-19 13:16:35 org.apache.catalina.core.StandardContext filterStart
    严重: Exception starting filter FormFilter
    java.lang.ClassCastException: com.java.filter.FormFilter
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at 
      

  9.   

    org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    2012-9-19 13:16:35 org.apache.catalina.core.StandardContext start
    严重: Error filterStart
    2012-9-19 13:16:35 org.apache.catalina.core.StandardContext start
    严重: Context [/Servlet] startup failed due to previous errors
    2012-9-19 13:16:35 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory TestJSP
    2012-9-19 13:16:35 org.apache.coyote.http11.Http11AprProtocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2012-9-19 13:16:35 org.apache.coyote.ajp.AjpAprProtocol start
    信息: Starting Coyote AJP/1.3 on ajp-8009
    2012-9-19 13:16:35 org.apache.catalina.startup.Catalina start
    信息: Server startup in 8838 ms
      

  10.   

    你struts2   过滤器出错了  可能是  你找action    你做的是购物车吧
      

  11.   

    你的action出错  了 com.java.filter.formfilter不能被转换为javax.servlet.filter
      

  12.   

    这个问题是因为我丢了一个xercesImpl.jar包。但是小妹另一个问题出现可,程序能运行,但是点击修改时却跳转不到修改的页面,
    struts.xml配置如下
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
     <package name="struts2" extends="struts-default" namespace="/">
      <action name="car" class="Action.CarAction">
       <result name="query">/carchange.jsp</result>
       <result name="update">/carupdate.jsp</result>
      </action>
     </package>
    </struts>    
    这个没有提示错误信息
      

  13.   

    CarAction 打断点看一下返回了update了吗?
      

  14.   

    试了,到了update 了,可是跳转不到修改页面