jar包添加了,数据库连接也修改好了,请大师指教还需要改什么?
private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://localhost:1433;databasename=shopping";
private static final String USERNAME="sa";
private static final String PASSWORD="123";
错误如下
org.apache.jasper.JasperException: An exception occurred processing JSP page /welcome.jsp at line 2623:   </head>
24:   
25:   <body>
26:     <jsp:forward page="IndexServlet"></jsp:forward>
27:   </body>
28: </html>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
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:717)
com.xasxt.shopping.util.EncodingFilter.doFilter(EncodingFilter.java:26)
root causejava.lang.NullPointerException
com.xasxt.shopping.dao.BaseDao.execQuery(BaseDao.java:46)
com.xasxt.shopping.dao.impl.AfficheDaoImpl.getAll(AfficheDaoImpl.java:48)
com.xasxt.shopping.biz.impl.AfficheBizImpl.getAll(AfficheBizImpl.java:29)
com.xasxt.shopping.servlet.IndexServlet.doPost(IndexServlet.java:38)
com.xasxt.shopping.servlet.IndexServlet.doGet(IndexServlet.java:30)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
org.apache.jsp.welcome_jsp._jspService(welcome_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
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:717)
com.xasxt.shopping.util.EncodingFilter.doFilter(EncodingFilter.java:26)

解决方案 »

  1.   

    把com.xasxt.shopping.dao.BaseDao的Java代码贴出来
      

  2.   

    package com.xasxt.shopping.dao;
    import java.sql.*;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;public class BaseDao {
    //private static final String DRIVER="com.mysql.jdbc.Driver";
    private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    //private static final String URL="jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8";
    private static final String URL="jdbc:sqlserver://localhost:1433;databasename=shopping";
    // private static final String USERNAME="root";
    //private static final String PASSWORD="root";
    private static final String USERNAME="sa";
    private static final String PASSWORD="123";

    private Connection conn;
    private PreparedStatement psmt;
    public ResultSet rs;

    public void getConn(){
    try {
    Class.forName(DRIVER);
    conn = DriverManager.getConnection(URL,USERNAME, PASSWORD);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    public void closeAll(){
    try {
    if(rs!=null)rs.close();
    if(psmt!=null)psmt.close();
    if(conn!=null)conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    public ResultSet execQuery(String sql,String[] params){
    getConn();
    try {
    psmt = conn.prepareStatement(sql);
    if(params!=null&&params.length>0){
    for (int i = 0; i < params.length; i++) {
    psmt.setString(i+1, params[i]);
    }
    }
    rs = psmt.executeQuery();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return rs;
    }
    public int execUpdate(String sql,String[] params){
    int count=0;
    getConn();
    try {
    psmt = conn.prepareStatement(sql);
    if(params!=null&&params.length>0){
    for (int i = 0; i < params.length; i++) {
    psmt.setString(i+1, params[i]);
    }
    }
    count = psmt.executeUpdate();
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    this.closeAll();
    }
    return count;
    }

    }
      

  3.   

    package com.xasxt.shopping.dao;
    import java.sql.*;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;public class BaseDao {
    //private static final String DRIVER="com.mysql.jdbc.Driver";
    private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    //private static final String URL="jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8";
    private static final String URL="jdbc:sqlserver://localhost:1433;databasename=shopping";
    // private static final String USERNAME="root";
    //private static final String PASSWORD="root";
    private static final String USERNAME="sa";
    private static final String PASSWORD="123";

    private Connection conn;
    private PreparedStatement psmt;
    public ResultSet rs;

    public void getConn(){
    try {
    Class.forName(DRIVER);
    conn = DriverManager.getConnection(URL,USERNAME, PASSWORD);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    public void closeAll(){
    try {
    if(rs!=null)rs.close();
    if(psmt!=null)psmt.close();
    if(conn!=null)conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    public ResultSet execQuery(String sql,String[] params){
    getConn();
    try {
    psmt = conn.prepareStatement(sql);
    if(params!=null&&params.length>0){
    for (int i = 0; i < params.length; i++) {
    psmt.setString(i+1, params[i]);
    }
    }
    rs = psmt.executeQuery();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return rs;
    }
    public int execUpdate(String sql,String[] params){
    int count=0;
    getConn();
    try {
    psmt = conn.prepareStatement(sql);
    if(params!=null&&params.length>0){
    for (int i = 0; i < params.length; i++) {
    psmt.setString(i+1, params[i]);
    }
    }
    count = psmt.executeUpdate();
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    this.closeAll();
    }
    return count;
    }

    }
      

  4.   

    应该是你没有换驱动吧,mysql和sql2008的驱动是不同的
      

  5.   

    你看下一下
    BaseDao.java:46行在哪个位置
      

  6.   


    psmt = conn.prepareStatement(sql);