如果直接在sevlet里面写插入明确的值就可以
感觉是request.getParameter无法获取值,导致数据库一直为空
大神求解!!!
非常困扰
AddMessage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="bean.StudentInfoBean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生录入</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script>
<script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script>
<script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script>
<script type="text/javascript">
  $.validator.setDefaults({
submitHandler:function(){
alert("提交事件成功!");
}
}); 
$().ready(function() {
$("#studentform").validate({
rules:{
id:{
  required:true, 
maxlength:4,
minlength:4,
  digits:true  
},
name:"required",
institute:"required",
professional:"required",
},
messages:{
id:"请输入正确的四位数学号"
}
});
});
</script>
</head><body>
<div >
<ul class="nav">  
    <li><a href="AddMessage.jsp">学生录入</a></li>
    <li><a href="AddWorkTime.jsp">工时录入</a></li>  
    <li><a href="TimeManage.jsp">工时管理</a></li>  
    <li><a href="DetailMessage.jsp">详细信息</a></li>  
</ul>  
</div>
<div id="div2">
<form id="studentform"  method="post" action="AddInfoServlet">
<fieldset id="fieldset1">
<legend>学生信息</legend>
<p>
<label class="label2">学号(4位):</label>
<input type="text" name="id" align="left">
</p>
<p>
<label class="label2">学生姓名:</label>
<input type="text" name="name" align="left">
</p>
<p>
<label class="label1">性别:</label>
<input type="radio" name="sex" value="male" checked>男 
<input type="radio" name="sex" value="female" align="left">女 </p>
<p>
<label class="label1">入学年份:</label>
<select name="year" >
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
</p>
<p>
<label class="label2">学院:</label>
<input type="text" name="institute"  align="left">
</p>
<p>
<label class="label2">专业:</label>
<input type="text" name="professional" align="left">
</p>
<p>
<label class="label1">贫困等级:</label>
<select name="level" >
<option value="poor">贫困</option>
<option value="hard">特困</option>
</select>
</p>

<div id="btn">
<input type="submit" value="提交" class="btn" onclick="check()">
</div>
</fieldset>
</form>
</div></body>
</html>AddInfoServlet.JSP
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  import bean.StudentInfoBean;public class AddInfoServlet extends HttpServlet{

private static final long serialVersionUID=1L;

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
try {
insert(request,response);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
}

    public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {  
       doPost(request,response);  
    } 
    
public Connection connect() throws ClassNotFoundException, SQLException {
Connection conn=null;
Class.forName("com.mysql.jdbc.Driver");  
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/11?useSSL=false&useUnicode=true&characterEncoding=UTF-8",  
                    "root", "root");
return conn;
}

public void insert(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, SQLException{ 
Connection conn=null;
Statement stat=null;
int year=Integer.parseInt(request.getParameter("year"));
int id=Integer.parseInt(request.getParameter("id"));
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String ins=request.getParameter("institute");
String pro=request.getParameter("professional");
String level=request.getParameter("level");
StudentInfoBean bean=new StudentInfoBean(id,name,sex,year,ins,pro,level);
conn=connect();
stat=conn.createStatement();
stat.executeUpdate("INSERT INTO student(sid,sname,sex,syear,sins,spro,slevel) VALUES ('"+bean.getSid()+"','"+bean.getSname()+"','"+bean.getSsex()+"','"+bean.getSyear()+"','"+bean.getSins()+"','"+bean.getSpro()+"','"+bean.getSlevel()+"' )");
close(stat,conn);
}

    public void close(Statement stat,Connection conn) throws SQLException{  
        if(stat!=null){  
               stat.close();  
        }  
        if(conn!=null){  
               conn.close();  
        }  
    }
}
WEB.xml

解决方案 »

  1.   


    <script type="text/javascript">
         $.validator.setDefaults({
            submitHandler:function(){
                alert("提交事件成功!");
               form.submit(); //提交按钮,不提交后台怎么接受?
            }
        }); 
        $().ready(function() {
            $("#studentform").validate({
                rules:{
                    id:{
                         required:true, 
                        maxlength:4,
                        minlength:4,
                         digits:true  
                    },
                    name:"required",
                    institute:"required",
                    professional:"required",
                },
                messages:{
                    id:"请输入正确的四位数学号"
                }
            });
        });
    </script>另外你指定的是post请求   你把方法放在insert里是取不到的
      

  2.   

    有没有报错,看看form字段和接收的字段有没有不一样
      

  3.   

    1,检查变量名对应上没有
    2,form换成get试试
      

  4.   

    把  <div id="btn">
                        <input type="submit" value="提交" class="btn" onclick="check()">
                    </div>改成 <div id="btn">
                        <input type="button" value="提交" class="btn" onclick="check()">
                    </div>,另外这个input不用div包起来也行。
      

  5.   

    还有一点是   你onclick="check()",你的check()在哪里,在check()函数里加上$("#studentform").submit();这句话
      

  6.   

    看下论坛的信息~https://blog.csdn.net/aragorn_177/article/details/2612974
      

  7.   

    没提交啊 你debug能进到后台方法里面去?