javax.servlet.ServletException:未找到指定url的操作配置
Regation.javajavax.servlet.ServletException:未找到指定url的操作配置,java,mysql,jsp,struts-1,Java,Mysql,Jsp,Struts 1,Regation.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
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"/>
ApacheTomcat/5.5.29您的代码实际上很难阅读。我猜这行:
Statement ps=con.createStatement()代码>原因NPE
。考虑到您忽略了getCon
方法中的异常,很难说。您绝对不应该忽略这些类型的异常。你应该把它们记录下来,看看到底是什么异常。使用一些日志框架来做到这一点,或者只是简单地打印堆栈跟踪以查看自己
catch(SQLException e) {
//log the exception
}
catch(ClassNotFoundException c) {
//log the exception
}
我认为getCon
方法中的连接返回为null
。您应该检查您的数据库连接是否没有任何问题 您的代码实际上很难阅读。我猜这行:Statement ps=con.createStatement()代码>原因NPE
。考虑到您忽略了getCon
方法中的异常,很难说。您绝对不应该忽略这些类型的异常。你应该把它们记录下来,看看到底是什么异常。使用一些日志框架来做到这一点,或者只是简单地打印堆栈跟踪以查看自己
catch(SQLException e) {
//log the exception
}
catch(ClassNotFoundException c) {
//log the exception
}
我认为getCon
方法中的连接返回为null
。您应该检查您的数据库连接是否没有任何问题 湿婆
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..),则无需输入'
code。。
希望你得到这个..湿婆
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..),则无需输入'
code。。
希望您能理解这一点。我想您使用的是Struts,而不是struct。您是否检查了struts config.xml中的url映射?我使用的是struts1.x,它只显示RecAction类的代码和struts-config.xml文件。private static final String FORWARD\u such=“such”;连接con=null;公共连接getcon(){try{Class.forName(“com.mysql.jdbc.Driver”);con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/mysql“,”根“;}catch(SQLException e){}catch(ClassNotFoundException c){}返回con;}请进一步查看您是否可以编辑问题并添加整个Regation类和struts-config.xml文件。并使用代码括号,使代码易于阅读。我猜您使用的是Struts,而不是struct。您是否检查了struts config.xml中的url映射?我使用的是struts1.x,它只显示RecAction类的代码和struts-config.xml文件。private static final String FORWARD\u such=“such”;连接con=null;公共连接getcon(){try{Class.forName(“com.mysql.jdbc.Driver”);con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/mysql“,”根“;}catch(SQLException e){}catch(ClassNotFoundException c){}返回con;}请进一步查看您是否可以编辑问题并添加整个Regation类和struts-config.xml文件。并使用代码括号,使代码易于阅读。我应该在编码中执行什么操作您的配置似乎正常,但缺少引号,请选中此:validate=“true”。我应该在编码中执行什么操作您的配置似乎正常,但缺少引号,请选中此:validate=“true”。