当前位置:编程学习 > JAVA >>

求教!!!jsp提交注册页面错误!!!!


警告:
2013-6-15 12:15:34 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: isHexDigit
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:88)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:412)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:394)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:510)
at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:267)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2441)
at org.apache.catalina.connector.Request.getParameter(Request.java:1040)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at org.apache.jsp.error_jsp._jspService(error_jsp.java:57)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
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:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
代码如下:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.*,java.sql.*"%>
<SCRIPT LANGUAGE="javascript">
<!--
function CheckSubmit()
 {
  if( document.registerform.name.value == "" )
     { alert("请输入用户名!"); document.registerform.name.focus(); return false; } 
  if( document.registerform.password.value == "" )
     { alert("请输入密码!"); document.registerform.password.focus(); return false; }   
  if( document.registerform.password2.value == "" )
     { alert("请验证密码!"); document.registerform.password2.focus(); return false; } 
  if( document.registerform.password2.value != document.registerform.password.value  )
     { alert("密码验证出错!"); document.registerform.password.focus(); return false; }
  if( document.registerform.sname.value == "" )
     { alert("请输入真实姓名!"); document.registerform.sname.focus(); return false; }  
    
     if( document.registerform.age.value == "" )
     { alert("请输入年龄!"); document.registerform.age.focus(); return false; }
      if( document.registerform.school.value == "" )
     { alert("请输入学校!"); document.registerform.school.focus(); return false; }
      if( document.registerform.specialty.value == "" )
     { alert("请输入专业!"); document.registerform.specialty.focus(); return false; }
  if( document.registerform.diploma.value == "" )
   { alert("请输入学历!"); document.registerform.diploma.focus(); return false; }
    if( document.registerform.address.value == "" )
   { alert("请输入学历!"); document.registerform.address.focus(); return false; }
  if( document.registerform.email.value == "" )
     { alert("请输入邮箱地址!"); document.registerform.email.focus(); return false; }
  if( document.registerform.telephone.value == "" )
     { alert("请输入联系电话!"); document.registerform.telephone.focus(); return false; }    
  return true;                                                                                          
 } 
</SCRIPT>
<%
  request.setCharacterEncoding("GB2312");
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection conn = DriverManager.getConnection("jdbc:odbc:test","sa","");
  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
  ResultSet rs=null;
%>
<%
 String op = request.getParameter("op");
  if(op!=null&&op.equals("register")){
    String s_name=request.getParameter("name");
    String s_password=request.getParameter("password");
    String s_sname=request.getParameter("sname");
    String s_age=request.getParameter("age");
    String s_sex=request.getParameter("sex");  
    String s_birthday=request.getParameter("birthday");
    String s_school=request.getParameter("school");
    String s_specialty=request.getParameter("specialty");
    String s_diploma=request.getParameter("diploma");
    String s_telephone=request.getParameter("telephone");
    String s_email=request.getParameter("email");
    String s_resume=request.getParameter("resume");
    String s_sql="insert into student(name,password,sname,age,sex,birthday,school,specialty,diploma,telephone,email,resume) "+
             "values('"+s_name+"','"+s_password+"','"+s_sname+"','"+s_age+"','"+s_sex+"','"+s_birthday+"','"+s_school+"','"+s_specialty+"','"+s_diploma+"','"+s_telephone+"','"+s_email+"','"+s_resume+"')" ;
             try{
      stmt.executeUpdate(s_sql);
    }catch(Exception e){
      response.sendRedirect("error.jsp?error=注册失败,"+e.getMessage());
     }
  }
%>
<link href="syle.css" rel="stylesheet" type="text/css">
<div align="center">
<table width="806" border="0" cellspacing="1" cellpadding="1">
  <tr> 
    <td ><div align="center"><%@include file="top.jsp" %></div></td>
  </tr>
  <tr> 
    <td ><div align="center">
  <table width="80%" border="0" cellpadding="1" cellspacing="1" class="td">
<%
  if(op==null){
%>
<form name="registerform" action="register.jsp?op=register" method="post">
    <tr> 
      <td colspan="2">  以下资料请如实填写(带 
       <font color="red">*</font>号的为必填项,其它的可以不填)</td>
    </tr>
    <tr> 
      <td width="15%"><div align="right">用户名</div></td>
      <td><div align="left"><input name="name" type="text" size="20"><font color="red">*</font>(为避免使用相同的用户名,请<a href="#">检测</a>你的用户名是否有效)</div></td>
    </tr>
    <tr> 
      <td><div align="right">密码</div></td>
      <td><div align="left"><input name="password" type="password" size="20"><font color="red">*</font></div></td>
    </tr>
    <tr> 
      <td><div align="right">验证密码</div></td>
      <td><div align="left"><input name="password2" type="password" size="20"><font color="red">*</font></div></td>
    </tr>
    <tr> 
      <td><div align="right">真实姓名</div></td>
      <td><div align="left"><input name="sname" type="text" size="20"><font color="red">*</font></div></td>
    </tr>
  
    <tr> 
      <td><div align="right">年龄</div></td>
      <td><div align="left"><input name="age" type="text" size="20"><font color="red">*</font></div></td>
    </tr>
    <tr> 
    
      <td><div align="right">性别</div></td>
      <td><div align="left">
         <select name="sex">
   <option value="男">男</option>
   <option value="女">女</option>
 </select>
  </div></td>
    </tr>
     <tr> 
      <td><div align="right">生日</div></td>
      <td><div align="left"><input name="birthday" type="text" size="20"><font color="red"></font></div></td>
    </tr>
     <tr> 
      <td><div align="right">学校</div></td>
      <td><div align="left"><input name="school" type="text" size="20"><font color="red">*</font></div></td>
    </tr>  
    <tr> 
      <td><div align="right">专业</div></td>
      <td><div align="left"><input name="specialty" type="text" size="20"><font color="red">*</font></div></td>
    </tr>
     <tr> 
      <td><div align="right">学历</div></td>
      <td><div align="left"><input name="diploma" type="text" size="20"><font color="red">*</font></div></td>
    </tr>
    <tr> 
      <td><div align="right">住址</div></td>
      <td><div align="left"><input name="address" type="text" size="20"><font color="red">*</font>(请您提供尽可能详细的地址)</div></td>
    </tr>
    
    <tr> 
      <td><div align="right">联系电话</div></td>
      <td><div align="left"><input name="telephone" type="text" size="20"><font color="red">*</font></div></td>
    </tr>
        <tr> 
      <td><div align="right">E-mail</div></td>
      <td><div align="left"><input name="email" type="text" size="20"><font color="red">*</div></td>
    </tr>
    <tr> 
      <td><div align="right">简述</div></td>
      <td colspan="6"><div align="left"><input name="resume" type="textarea" ><font color="red"></font></div></td>
    </tr>

    <tr> 
      <td><div align="right"> </div></td>
      <td><div align="left"> 
        <input name="submit" type="submit" value=" 注册新用户 " onClick="return CheckSubmit();">  
        <input name="reset" type="reset" value=" 重新填写 ">
         </div></td>
    </tr>   

<%}else{%>
    <tr> 
       <td colspan="2">  恭喜,注册成功,请记住您的用户名和密码!现在就去首页<a href="index.jsp">登录</a>.</td>
    </tr>
<%}%>      
  </table>
   </div> 
    </td>
  </tr> 
  <tr> 
    <td ><div align="center"><%@include file="bottom.jsp" %></div></td>
  </tr>
</table>
</div>   --------------------编程问答-------------------- --------------------编程问答-------------------- 代码太乱了,连接数据库等操作写到servlet里 --------------------编程问答-------------------- 能帮忙看看那里出问题了吗???
--------------------编程问答--------------------
引用 2 楼 gongmingguo 的回复:
代码太乱了,连接数据库等操作写到servlet里

我是新手~~~你帮我看看到底哪里出问题了,我快被它折磨死了~~~ --------------------编程问答-------------------- 代码好乱~~,具体原因我先没看出来毕竟像你直接连接数据库写在页面里我从来不这么干连sql什么的都这么写太不安全了,不过给你个提示:你的编码似乎出了问题试着从这方面找找原因例如 : request.setCharacterEncoding("GB2312");去掉,看看页面的编码,数据库的编码,ODBC我确实没用过不知道这里具体有什么说道 --------------------编程问答-------------------- response.sendRedirect("error.jsp?error=注册失败,"+e.getMessage());这句的带的参数error出错,实际上直接跳转页面就可以了,即response.sendRedirect("error.jsp"); --------------------编程问答--------------------
引用 6 楼 teddyboy1992 的回复:
response.sendRedirect("error.jsp?error=注册失败,"+e.getMessage());这句的带的参数error出错,实际上直接跳转页面就可以了,即response.sendRedirect("error.jsp");

额~~~还是不行~~~ --------------------编程问答-------------------- 你这是字符转码出错。 你把编码改为gbk看下。
你看下你java获取一的值是不是都是乱码。
request.setCharacterEncoding("GB2312");
错误中有这一行,你看下这一行是哪里。
at org.apache.jsp.error_jsp._jspService(error_jsp.java:57) --------------------编程问答-------------------- 字符转换错误
看下面链接能不能解决
点这里 --------------------编程问答-------------------- 这个可能有用!!
function $1(str){
return document.getElementById(str);

}
function $(str)
{

  var a = document.getElementById(str).value;//消除空格。。
// alert(a);
 var b = a.replace(/\s/g,'');
// document.getElementById(str).value = b;
// alert(b.length);
 return b;
}
function check1(){
 var userName=$("username"); 
 if(userName==""){
alert("用户名不能为空!!");
$1("username").value="";
$1("username").focus();
return false;
}
 var password=$1("password").value;
 if(password==""){
 alert("密码不能为空!!");
$1("password").focus();
return false;


}
function check(){


//alert("F");
 var userName=$("username").value;
 if(userName==""){
alert("用户名不能为空!!");
$1("username").value="";
$1("username").focus();
return false;
}

 var password=$1("password").value;
 if(password==""){
 alert("密码不能为空!!");

$1("password").focus();
return false;
}
 var password1=$("password1").value;
 
 if(password1!=password){
alert("两次输入密码 不一致,请重新输入!! ");
$1("password").value="";
$1("password1").value="";
$1("password").focus();
return false;
}
 var sex=$1("sex").value;
 
 var age=$("age").value;
 if(age==""||isNaN(age)){
 if(age==""){
alert("年龄不能为空!!");
$1("age").value="";
$1("age").focus();
return false;
}else{
alert("年龄必须是数字!!");
$1("age").focus();
return false;
}
}
 
 var cla=$("class").value;
 if(cla==""){
alert("班级不能为空!!");
$1("class").value="";
$1("class").focus();

return false;
}

}
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,