javax.servlet.ServletException:找不到指定url的操作配置

时间:2012-07-19 17:31:30

标签: java mysql jsp struts-1


RegAction.java

 private static final String FORWARD_succ = "succ";
Connection con=null;
public Connection getcon()
    {
    try
        {

        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","root");
        }catch(SQLException e)
        {}
        catch(ClassNotFoundException c)
        {
        }
        return con;
    }

    public void closeConnection()
    {
        try
        {
            con.close();
        }catch(SQLException e)
        {}
    }
   public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException 
  {
   RegForm1 r=(RegForm1)form;
     Connection con=getcon();

 String v1=r.getFname();
 String v2=r.getLname();
   String v3=r.getUid();
   String v4=r.getDob();
  String v5=r.getPwd();
  String v6=r.getCpwd();
   String v7=r.getCity();
  String v8=r.getSt();
  String v9=r.getZc();
 System.out.println(v1);
 System.out.println(v2);
 System.out.println(v3);
  System.out.println(v4);
 System.out.println(v5);
 System.out.println(v6);
 System.out.println(v7);
 System.out.println(v8);
  System.out.println(v9);

 try
{
PrintWriter pw=response.getWriter();
  Statement ps=con.createStatement();
   int k=ps.executeUpdate("insert into reg values(v1,v2,v3,v4,v5,v6,v7,v8,v9)");
    if(k==1)
      pw.println("susccessfully stored");
       con.commit();
}catch(SQLException s)
{
}

catch(IOException s)
{
}
  return mapping.findForward("succ");

config.xml中

  <form-bean name="regform" type="RegForm1"/>
  </form-beans>
  <global-exceptions/>
  <global-forwards/>
  <action-mappings>
   <action name="regform" path="/reg" type="RegAction" validate="true input="/Register.jsp">
    <forward name="succ" path="/success.jsp"/>

我想在mysql数据库中存储以下字段值。但我得到以下例外原因?

新用户详情 名字*: 姓氏*:

userid *:

Dob *:

密码*:

确认密码*

城市*:

州*:

Zipcode *:

按钮

HTTP状态500 -


type Exception report
message 
description The server encountered an internal error () that prevented it from fulfilling this request.
exception 
javax.servlet.ServletException
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause 
java.lang.NullPointerException
    RegAction.execute(RegAction.java:75)
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.29 logs.

Apache Tomcat / 5.5.29

2 个答案:

答案 0 :(得分:1)

SIVA ..

int k=ps.executeUpdate("insert into reg values(v1,v2,v3,v4,v5,v6,v7,v8,v9)");
上述语句V1,V2,v3...中的

被视为字符串值,而不是使用PrepareStatement。 否则重写像这样的代码

int k=ps.executeUpdate("insert into reg values('"+v1+"','"+v2+"','"+ . . );

如果列表中有任何数值(v1,v2,v3 ..),则无需输入''代码。 希望你能得到这个......

答案 1 :(得分:0)

您的代码实际上很难阅读。我猜这一行:Statement ps=con.createStatement();导致NPE。考虑到您忽略了getCon方法中的异常,很难说。你绝对不应该忽略那些类型的例外。您应该记录它们并查看确切的异常。使用一些日志框架来做到这一点,或者只是简单地打印堆栈跟踪以将其视为自己。

catch(SQLException e) {
   //log the exception
}
catch(ClassNotFoundException c) {
   //log the exception    
}

我认为您getCon方法中的关联返回为null。您应该检查数据库连接是否有任何问题。

相关问题