我是用的tomcat连接的本地SQL 2008 数据库  表是在数据库中添加的  现在连接数据库已经成功了 但是通过网页添加数据就不行  求各位大神帮忙看看 求详细代码 谢谢 
首先是testdb.jsp  我是通过这个页面访问数据库的
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.Context"%>
<%@page import="javax.naming.InitialContext"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>">
  <title>My JSP 'index.jsp' starting page</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 </head><body bgcolor="white">
<table border="5">
<tr>
<td><font face="黑体"><center>学号</center></font></td>
<td><font face="黑体"><center>姓名</center></font></td>
<td><font face="黑体"><center>年龄</center></font></td>
<td><font face="黑体"><center>班级</center></font></td>
<td><font face="黑体"><center>城市</center></font></td>
</tr>
  <%
   Connection conn = null;
   Context initCtx = new InitialContext();
   if (initCtx == null)
   throw new Exception("不能获取Context!");
   Context ctx = (Context) initCtx.lookup("java:comp/env");
   Object obj = (Object) ctx.lookup("jdbc/sqlserver");//获取连接池对象
   DataSource ds = (javax.sql.DataSource) obj; //类型转换
   conn = ds.getConnection();
   Statement stmt = conn.createStatement();
   String sql = "select * from stu";
   ResultSet rs = stmt.executeQuery(sql);
   while (rs.next()) {
%>
<tr>
<td><center><%=rs.getString("id")%></center></td>
<td><center><%=rs.getString("name")%></center></td>
<td><center><%=rs.getString("age")%></center></td>
<td><center><%=rs.getString("classes")%></center></td>
<td><center><%=rs.getString("city")%></center></td>
</tr>
<%
   }
   rs.close();
   stmt.close();
   conn.close();  %>
</table>
<input type="button" name="bottom" value="添加新学生" onclick="javascript:window.location.href='add.jsp'"> 
</body>
</html>然后是add.jsp 添加页面<%@page import="javax.naming.InitialContext"%>
<%%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <title>add</title>  
    </head>  
    <body>  
        <form action="addinfo.jsp" method="post">  
            
            ID:  
            <input type="text" name="id">  
            <br>  
            <br>  
            Name:  
            <input type="text" name="name">  
            <br>  
            <br>  
            Age:  
            <input type="text" name="age">  
            <br>  
            <br>  
    Classes:  
            <input type="text" name="Classes">  
            <br>  
            <br>  
            City:  
            <input type="text" name="City">  
            <br>  
            <br>  
            <input type="submit" name="submit" value="Submit">  
        </form>  
    </body>  
</html>  
  接下来是  addinfo.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%  
 String Id=new String(request.getParameter("Id").getBytes("utf-8"));   
 String Name = new String(request.getParameter("Name").getBytes("utf-8"));  
 String Age = new String(request.getParameter("Age").getBytes("utf-8"));
 String Classes = new String(request.getParameter("Classes").getBytes("utf-8"));  
 String City = new String(request.getParameter("City").getBytes("utf-8"));   
 connDb.update("insert into Stu (Id,Name,Age,Classes,City) values ('"+Id+"','"+Name+"','"+Age+"','"+Classes+"','"+Ctiy+"')");   
 response.sendRedirect("testdb.jsp");  
%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <title>My JSP 'addinfo.jsp' starting page</title>  
    </head>  
    <body>  
        添加成功!  
        <br>  
    </body>  
</html>  
这里的insert语句  总是执行错误
最后是一个connDb的java类package db;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.ArrayList;  
  
public class connDb {  
    private static Connection con = null;  
    private static Statement stmt = null;  
    private static ResultSet rs = null;  
  
    public static void startconn() {   
        //连接数据库方法  
        try {  
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");   
  
            //创建连接数据库中间件  
            try {  
                con = DriverManager.getConnection(  
                     "jdbc:sqlserver://localhost:1433;DatabaseName=Amy", "sa", "1234567890");  
            } catch (SQLException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
        } catch (ClassNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
  
    public static void endconn() throws SQLException {   
        //关闭连接  
        if (rs != null) {  
            rs.close();  
            rs = null;  
        }  
        if (stmt != null) {  
            stmt.close();  
            stmt = null;  
        }  
        if (con != null) {  
            con.close();  
            con = null;  
        }  
    }  
  
    public static void update(String sql) throws SQLException {   
  
        //数据库更新  
        startconn();  
        stmt = con.createStatement();  
        stmt.executeUpdate(sql);  
        endconn();  
    }  
}  以上代码很多都是借鉴别人的 数据库jsptomcatsqlserver

解决方案 »

  1.   

     哦哦 不好意思  我给忘记了
    type Exception reportmessage Unable to compile class for JSP: description The server encountered an internal error that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 10 in the jsp file: /addinfo.jsp
    connDb cannot be resolved
    7:  String Age = new String(request.getParameter("Age").getBytes("utf-8"));
    8:  String Classes = new String(request.getParameter("Classes").getBytes("utf-8"));  
    9:  String City = new String(request.getParameter("City").getBytes("utf-8"));   
    10:  connDb.update("insert into Stu (Id,Name,Age,Classes,City) values ('"+Id+"','"+Name+"','"+Age+"','"+Classes+"','"+Ctiy+"')");   
    11:  response.sendRedirect("testdb.jsp");  
    12: %>  
    13: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    An error occurred at line: 10 in the jsp file: /addinfo.jsp
    Ctiy cannot be resolved to a variable
    7:  String Age = new String(request.getParameter("Age").getBytes("utf-8"));
    8:  String Classes = new String(request.getParameter("Classes").getBytes("utf-8"));  
    9:  String City = new String(request.getParameter("City").getBytes("utf-8"));   
    10:  connDb.update("insert into Stu (Id,Name,Age,Classes,City) values ('"+Id+"','"+Name+"','"+Age+"','"+Classes+"','"+Ctiy+"')");   
    11:  response.sendRedirect("testdb.jsp");  
    12: %>  
    13: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs.
      

  2.   

    没获取到值吧,后台,你form里面的name和java中取的名字不一样。
     String Id=new String(request.getParameter("id").getBytes("utf-8"));   
     String Name = new String(request.getParameter("name").getBytes("utf-8"));  
     String Age = new String(request.getParameter("age").getBytes("utf-8"));
     String Classes = new String(request.getParameter("Classes").getBytes("utf-8"));  
     String City = new String(request.getParameter("City").getBytes("utf-8"));   试试
      

  3.   

     connDb.update("insert into Stu (Id,Name,Age,Classes,City) values ('"+Id+"','"+Name+"','"+Age+"','"+Classes+"','"+Ctiy+"')");      怎么都'""' 不是字符串型才这样?
      

  4.   

    请问 是 name 的N 大小写的问题么?  我换成大写了  问题依旧   哎   小白苦不堪言啊
      

  5.   

    请问 是 name 的N 大小写的问题么?  我换成大写了  问题依旧   哎   小白苦不堪言啊小写啊。你看下你的form里面的是小写的
      

  6.   

    请问 是 name 的N 大小写的问题么?  我换成大写了  问题依旧   哎   小白苦不堪言啊小写啊。你看下你的form里面的是小写的恩  我是统一换成了首字母大写的那种 但是不行 我改回去换成小写试试看