在表单上点击提交按钮时,把增加的数据提交到java代码中,输出到控制台。
myForm.html代码:
<html>
<head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<p>题目:写一个表单,接收输入:账号、姓名、生日、性别,账号和姓名以文本框输入;生日以年、月、日下拉框形式输入,性别以单选框输入;在表单上点击按钮的时候,把增加的数据提交到Java代码中,输出到控制台
<fieldset>
<legend>请输入:</legend>
<form id="myForm" name=f1 action="tax.TaxRate" method="post" onsubmit="return tb_addnew()">
账号:<input type="text" name="userId" size="20" /><br />
姓名:<input type="text" name="nameAll" size="20" /><br />
生日:<select name=year size=1 onchange="showmonth();showday()">
<script>
var yearbegin=1900,yearend=2012;
document.write("<option value=''selected>请选择年份...</option>")
for(var i=yearbegin;i<=yearend;i++){
document.write ("<option value="+i+">"+i+"</option>")
}
</script>
</select>
<select name=month size=1 onchange="showday();">
<option value="">请选择月份...</option>
</select>
<select name=day size=1>
<option value="">请选择日期...</option>
</select>
<br />
性别:
男<input type="radio" checked="checked" name="sex" value="男" />
女<input type="radio"  name="sex" value="女" /><br />
<blockquote>
<input  type="submit" onclick="tb_addnew()" value="提交">
</blockquote>
</form>
<script>
var elYear=eval(document.f1.year)
var elMonth=eval(document.f1.month);
function showmonth(){
if(elYear.value!=""){
for(var i=0;i<12;i++){
elMonth.options.add(new Option(i+1, i+1));
}
}
}
function showday(){
var elDay=eval(document.f1.day);
if(elMonth.value!="" && elYear.value!=""){
elDay.length=0;
for(var i=0;i<28;i++){
elDay.options.add(new Option(i+1, i+1));   
}
if(elMonth.value!="2"){
elDay.options.add(new Option(29, 29));
elDay.options.add(new Option(30, 30));
}
switch(elMonth.value){
case "1":
case "3":
case "5":
case "7":
case "8":
case "10":
case "12":{
elDay.options.add(new Option(31, 31));
}
case "02":{
var nYear=elYear.value;
if(nYear%400==0 || nYear%4==0 && nYear%100!=0)elDay.options.add(new Option(29, 29));
}
}
}
}
</script>
</fieldset>
</body>
</html>TaxRate.java代码:
package tax;import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.Date;
import java.util.*;@SuppressWarnings({ "serial", "unused" })
public class TaxRate 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 {
System.out.println("do post.......");
//String action = request.getParameter("action");

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

int sexnum = 0;
        if ("男".equals(sex)) {
            sexnum = 0;
        } else {
            sexnum = 1;
        }
System.out.println(userId+" "+nameAll+" "+birthday+" "+sex);
}
 private Date parseBirthday(HttpServletRequest request,
        HttpServletResponse response) {
        String year = request.getParameter("year");
        String month = request.getParameter("month");
        String day = request.getParameter("day");
        Date date = Date.valueOf(year + "-" + month + "-" + day);
        return date;
    }

}
web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
 <servlet-name>TaxRate</servlet-name>
 <servlet-class>tax.TaxRate</servlet-class>
</servlet><servlet-mapping>
  <servlet-name>TaxRate</servlet-name>
  <url-pattern>/TaxRate/*</url-pattern>
</servlet-mapping></web-app>请大家帮忙看看,哪里有错误,提交之后就是出不来数据。

解决方案 »

  1.   

    <form id="myForm" name=f1 action="tax.TaxRate" method="post" onsubmit="return tb_addnew()">这里面的action配置和你servlet-mapping所配置的url不一致。<servlet-mapping>
      <servlet-name>TaxRate</servlet-name>
      <url-pattern>/TaxRate/*</url-pattern>
    </servlet-mapping>你拦截的URL 应该是 /TaxRate/*action="TaxRate/xxoo"
      

  2.   

    <input type="submit" onclick="tb_addnew()" value="提交">
    这是submit按钮 form提交时候已经调用过验证函数了,画蛇添足了
    <form id="myForm" name=f1 action="tax.TaxRate" method="post" onsubmit="return tb_addnew()">
      

  3.   

    2楼说的我不太懂,下面这样改对吗?
    <servlet>
     <servlet-name>TaxRate</servlet-name>
     <servlet-class>tax.TaxRate</servlet-class>
    </servlet><servlet-mapping>
      <servlet-name>TaxRate</servlet-name>
      <url-pattern>/tax.TaxRate</url-pattern>
    </servlet-mapping>
      

  4.   

    修改了<url-pattern>/tax.TaxRate</url-pattern>
    之后,又出现了下面的问题HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.IllegalArgumentException
    java.sql.Date.valueOf(Date.java:138)
    tax.TaxRate.parseBirthday(TaxRate.java:35)
    tax.TaxRate.doPost(TaxRate.java:25)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.24 logs.
    --------------------------------------------------------------------------------Apache Tomcat/6.0.24
      

  5.   

    这次URL路径对了,已经进入你写的Servlet了,但是参数处理有问题,去检查你代码吧:tax.TaxRate.parseBirthday(TaxRate.java:35)
      

  6.   

    现在的问题就剩下中文乱码问题了,显示出来是zhangsp ????? 1934-10-3 ?
      

  7.   

    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");这几句代码都是什么意思呀?貌似不能解决这个问题。
      

  8.   

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
    response.setCharacterEncoding("UTF-8");为什么用两套编码
      

  9.   

    乱码问题比较烦,最好能保证Java源代码编码,JSP页面编码,Tomcat服务器的编码 都统一为 UTF-8
      

  10.   

    <form id="myForm" name=f1 action="tax.TaxRate" method="post" onsubmit="return tb_addnew()">
    这个onsubmit去掉,添加这个函数,action改下action=“TaxRate”<script>
    function tb_addnew(){}
    document.getElementById("myForm").submit;
    }
    </script>