++
<form id="myForm" name=f1 action="acq.Acquired" method="post" >
写个servlet,在web.xml里面配置拦截路径如<servlet> 
<servlet-name>myservlet</servlet-name> 
<servlet-class>cn.xxx.xx.MyServlet</servlet-class> 
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/ms</url-pattern>
</servlet-mapping>你form里的action="ms"然后在servlet里面String nameAll = request.getParameter("nameAll");

解决方案 »

  1.   

    你配置的是myservlet的话 在form中应该有这个名字啊
      

  2.   


    只是servlert和servlet-mapping两者间的name匹配,真正跟form关系的是url-pattern,也就是/ms
      

  3.   

    通过servlet可以得到form表单提交的数据,整个过程是:form表单——servlet——数据库,是这样吗?现在的问题是数据库和servlet怎样连接呢?怎样才能取得数据?package acq;import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.Date;
    import java.util.*;@SuppressWarnings({ "serial", "unused" })
    public class Acquired extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    System.out.println("do get.........");
     doPost(request,response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8"); System.out.println("do post.......");
    //String action = request.getParameter("action");

    String userId=request.getParameter("userId");
    String nameAll=request.getParameter("nameAll");
    String birthday = parseBirthday(request, response);
    String sex = request.getParameter("sex");

    System.out.println(userId+" "+nameAll+" "+birthday+" "+sex);
    }
     private String parseBirthday(HttpServletRequest request,
            HttpServletResponse response) {
            String year = request.getParameter("year");
            String month = request.getParameter("month");
            String day = request.getParameter("day");
            String date = String.valueOf(year + "-" + month + "-" + day);
            return date;
        }

    }
      

  4.   

    你也可以在jsp中直接写入数据库,只不过不提倡
      

  5.   


    servlet里写数据库连接,就是你的帖子里main里面的内容,然后写一个insert语句,再executeQuery(insert)
      

  6.   

    程序代码和错误报告如下,现在会报下面的一个错误,改不过来,呜呜呜。package acq;import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;import java.sql.Connection;
    import java.sql.Date;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.*;@SuppressWarnings({ "serial", "unused" })
    public class Acquired extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("do get.........");
     doPost(request,response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8"); System.out.println("do post.......");

    String userId=request.getParameter("userId");
    String nameAll=request.getParameter("nameAll");
    String birthday = parseBirthday(request, response);
    String sex = request.getParameter("sex");

    System.out.println(userId+" "+nameAll+" "+birthday+" "+sex);

    String dbUrl = "jdbc:oracle:thin:@Bard0117:1522:ORCL";
    String user="system";
    String password="system";
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");//建立JDBC-ODBC桥接器
    Connection c=DriverManager.getConnection(dbUrl,user,password);//建立连接,编写连接数据库代码不会出现数据库的名称,只能出现数据源的名字
    Statement s=c.createStatement();//向数据库发送SQL查询语句
    String sql = "INSERT INTO TEST (USERID,NAMEALL,BIRTHDAY,SEX) VALUES (?,?,?,?)";

    PreparedStatement pstmt = null;
    pstmt = c.prepareStatement(sql);    
    pstmt.setString(1, userId);
    pstmt.setString(2, nameAll);
    pstmt.setString(3, birthday);
    pstmt.setString(4, sex);
    pstmt.executeUpdate();
            
    ResultSet r=pstmt.executeQuery(sql);//处理查询结果
    while(r.next()){
    System.out.print(sql);
    }s.close();
    }catch(Exception e){
    e.printStackTrace();
    }
    }
     private String parseBirthday(HttpServletRequest request,
            HttpServletResponse response) {
            String year = request.getParameter("year");
            String month = request.getParameter("month");
            String day = request.getParameter("day");
            String date = String.valueOf(year + "-" + month + "-" + day);
            return date;
        }
    }错误报告:
    INSERT INTO TEST (USERID,NAMEALL,BIRTHDAY,SEX) VALUES (?,?,?,?)java.sql.SQLException: ORA-01009: 必需的参数缺失 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1451)
    at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:943)
    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:245)
    at acq.Acquired.doPost(Acquired.java:54)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
      

  7.   

    数据库中的字段为:
    USERID   NAMEALL   BIRTHDAY   SEX   ROWID
    zhangsan 张三        19870909   男
    lisi     李四        19830812   女
    不知道是哪个参数缺失,怎么改呀?求大家帮帮忙。