在表单上点击提交按钮时,把增加的数据提交到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>请大家帮忙看看,哪里有错误,提交之后就是出不来数据。
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>请大家帮忙看看,哪里有错误,提交之后就是出不来数据。
<servlet-name>TaxRate</servlet-name>
<url-pattern>/TaxRate/*</url-pattern>
</servlet-mapping>你拦截的URL 应该是 /TaxRate/*action="TaxRate/xxoo"
这是submit按钮 form提交时候已经调用过验证函数了,画蛇添足了
<form id="myForm" name=f1 action="tax.TaxRate" method="post" onsubmit="return tb_addnew()">
<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>
之后,又出现了下面的问题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
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");这几句代码都是什么意思呀?貌似不能解决这个问题。
response.setCharacterEncoding("UTF-8");为什么用两套编码
这个onsubmit去掉,添加这个函数,action改下action=“TaxRate”<script>
function tb_addnew(){}
document.getElementById("myForm").submit;
}
</script>