我的前端可以把数据传给后端,后端也可以把数据穿给数据库,可是连起来就出错了,求大神帮忙看看怎么回事。

crx85711311 2018-03-13 08:27:52
刚学的java,小白一个,前些天做了个简单网站,我jsp中的from表格内容可以成功穿到后台,但链接数据库时就出问题。
这是LoginServlet.java的代码,获取和增加到sql。
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class LoginServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -5453573830665566095L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String bumeng = request.getParameter("bumeng");
String xueyuan = request.getParameter("xueyuan");
String banji = request.getParameter("banji");
String name = request.getParameter("name");
String phonenumber = request.getParameter("phonenumber");
System.out.println(bumeng+xueyuan+banji+name+phonenumber);
Add.addusers(bumeng,xueyuan,banji,name,phonenumber);
//System.out.println(name);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}

这是DbConnection.java。
import java.sql.Connection;
import java.sql.DriverManager;

public class DbConnection {
private static Connection con; //创建连接数据库对象
private static final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String url="jdbc:sqlserver://localhost:1433;DatabaseName=Jx"; //QQ为数据库名称

public static Connection getConnection(){
try {
Class.forName(driver); // 加载驱动
con=DriverManager.getConnection(url, "sa", "123"); //连接数据库
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据连接池加载失败!");
}
return con;
}

}
我如果运行下面这段代码,可以成功往数据库添加,但运行上面的第一篇代码却不行。
import java.sql.*;

public class Add {
private static Connection con; //创建连接数据库对象
private static PreparedStatement ptstmt; //创建PreparedStatement类对象


public static boolean addusers(String val1,String val2,String val3,String val4,String val5){
con = DbConnection.getConnection();
try {
ptstmt=con.prepareStatement("insert into Bm values(?,?,?,?,?)"); //添加
ptstmt.setString(1, val1); //设置id
ptstmt.setString(2, val2); //设置name
ptstmt.setString(3, val3); //设置roomnum
ptstmt.setString(4, val4); //设置sex
ptstmt.setString(5, val5); //设置classroom
ptstmt.executeUpdate(); //更新数据库
return true;
} catch (SQLException e1) {
e1.printStackTrace();
}

return false;
}

public static void main(String[] args) {
Add.addusers("1111","111","111","111","111");
}
}

下面是报错的显示。
三月 13, 2018 8:07:09 下午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\myeclipse\binary\com.sun.java.jdk7.win32.x86_64_1.7.0.u45\bin;D:\myeclipse\plugins\com.genuitec.eclipse.easie.tomcat7.myeclipse_11.5.0.me201310302042\tomcat\bin
三月 13, 2018 8:07:09 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
三月 13, 2018 8:07:09 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
三月 13, 2018 8:07:09 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 523 ms
三月 13, 2018 8:07:09 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
三月 13, 2018 8:07:09 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.30
三月 13, 2018 8:07:09 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\myeclipse\project\.metadata\.me_tcat7\webapps\Jx
三月 13, 2018 8:07:09 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\myeclipse\project\.metadata\.me_tcat7\webapps\Jx\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
三月 13, 2018 8:07:09 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
三月 13, 2018 8:07:09 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
三月 13, 2018 8:07:09 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 430 ms
网编部电气与信息工程学院532我是中文156
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at DbConnection.getConnection(DbConnection.java:11)
at Add.addusers(Add.java:9)
at LoginServlet.doGet(LoginServlet.java:24)
at LoginServlet.doPost(LoginServlet.java:30)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
数据连接池加载失败!
三月 13, 2018 8:07:13 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [LoginServlet] in context with path [/Jx] threw exception
java.lang.NullPointerException
at Add.addusers(Add.java:11)
at LoginServlet.doGet(LoginServlet.java:24)
at LoginServlet.doPost(LoginServlet.java:30)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

...全文
977 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
crx85711311 2018-03-16
  • 打赏
  • 举报
回复
引用 9 楼 honghuangbu0446 的回复:
如果有了可以试着remove 再重新add回来
已经解决了,是要吧sqljdbc4放到WEB-INF/lib/里面。
crx85711311 2018-03-16
  • 打赏
  • 举报
回复
引用 1 楼 still_rain 的回复:
msbase.jar、mssqlserver.jar、msutil.jar复制到/WEB-INF/lib/没有?
是要把sqljdbc4放到WEB-INF/lib/,已经解决了。
  • 打赏
  • 举报
回复
看报错是缺少驱动包
qq5210985 2018-03-16
  • 打赏
  • 举报
回复
Java连接sqlserver需要一下jar包: 1.msbase.jar //底层连接类 2.mssqlserver.jar //驱动类 3.msutil.jar //工具类
qq5210985 2018-03-16
  • 打赏
  • 举报
回复
我最近也遇到过这个问题,前端后端分开调试好了,连接起来就报错,不同的是,我用的mysql数据库,我的解决方法:在项目下面建lib文件夹,jar包放进去,右击然后build path----->add to build path,然后将jar包放到WEB-INF/lib里,右击然后build path----->add to build path。希望能帮到你。
honghuangbu0446 2018-03-16
  • 打赏
  • 举报
回复

如果有了可以试着remove 再重新add回来
honghuangbu0446 2018-03-15
  • 打赏
  • 举报
回复
应该是缺少jar包 sqljdbc4.jar 下一个就能解决
葛石北斋 2018-03-15
  • 打赏
  • 举报
回复
建议使用数据库连接池,这东西几乎没用过给不出什么建设性意见,但看报错的信息是缺少驱动(java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver),你连接数据库是成功的,所以应该是你的驱动包版本不匹配,至于怎么匹配,看你的jdk,还不懂的话就百度
crx85711311 2018-03-15
  • 打赏
  • 举报
回复
引用 4 楼 honghuangbu0446 的回复:
应该是缺少jar包 sqljdbc4.jar 下一个就能解决
我有这个包,应该放在哪
crx85711311 2018-03-15
  • 打赏
  • 举报
回复
引用 6 楼 u011594442 的回复:
右键你的项目--》properties-->java build path-->libraries看看里面有没有这个jar包~
我这个路径里有sqljdbc4.jar包啊
Sunyiban 2018-03-15
  • 打赏
  • 举报
回复
右键你的项目--》properties-->java build path-->libraries看看里面有没有这个jar包~
crx85711311 2018-03-14
  • 打赏
  • 举报
回复
引用 1 楼 still_rain 的回复:
msbase.jar、mssqlserver.jar、msutil.jar复制到/WEB-INF/lib/没有?
不行啊,我一把mssqlserver.jar放到WEB-INF/lib里面,一开启服务器就报错了,连网页都进不去了。
三月 14, 2018 11:25:05 下午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\myeclipse\binary\com.sun.java.jdk7.win32.x86_64_1.7.0.u45\bin;D:\myeclipse\plugins\com.genuitec.eclipse.easie.tomcat7.myeclipse_11.5.0.me201310302042\tomcat\bin
三月 14, 2018 11:25:05 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
三月 14, 2018 11:25:05 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
三月 14, 2018 11:25:05 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 524 ms
三月 14, 2018 11:25:05 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
三月 14, 2018 11:25:05 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.30
三月 14, 2018 11:25:05 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\myeclipse\project\.metadata\.me_tcat7\webapps\Jx
三月 14, 2018 11:25:05 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\myeclipse\project\.metadata\.me_tcat7\webapps\Jx\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
三月 14, 2018 11:25:05 下午 org.apache.tomcat.util.scan.StandardJarScanner scan
警告: Failed to scan JAR [file:/D:/myeclipse/project/.metadata/.me_tcat7/webapps/Jx/WEB-INF/lib/mssqlserver.jar] from WEB-INF/lib
java.util.zip.ZipException: invalid CEN header (bad signature)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:215)
	at java.util.zip.ZipFile.<init>(ZipFile.java:145)
	at java.util.jar.JarFile.<init>(JarFile.java:153)
	at java.util.jar.JarFile.<init>(JarFile.java:90)
	at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
	at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
	at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:109)
	at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
	at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
	at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:41)
	at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
	at org.apache.catalina.startup.ContextConfig$FragmentJarScannerCallback.scan(ContextConfig.java:2617)
	at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
	at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:166)
	at org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1914)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1265)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
三月 14, 2018 11:25:05 下午 org.apache.catalina.startup.ContextConfig processServletContainerInitializers
严重: Failed to process JAR found at URL [jar:file:/D:/myeclipse/project/.metadata/.me_tcat7/webapps/Jx/WEB-INF/lib/mssqlserver.jar!/] for ServletContainerInitializers for context with name [/Jx]
三月 14, 2018 11:25:05 下午 org.apache.catalina.startup.ContextConfig configureStart
严重: Marking this application unavailable due to previous error(s)
三月 14, 2018 11:25:05 下午 org.apache.catalina.startup.TldConfig tldScanJar
警告: Failed to process JAR [jar:file:/D:/myeclipse/project/.metadata/.me_tcat7/webapps/Jx/WEB-INF/lib/mssqlserver.jar!/] for TLD files
java.util.zip.ZipException: invalid CEN header (bad signature)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:215)
	at java.util.zip.ZipFile.<init>(ZipFile.java:145)
	at java.util.jar.JarFile.<init>(JarFile.java:153)
	at java.util.jar.JarFile.<init>(JarFile.java:90)
	at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
	at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
	at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:109)
	at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
	at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
	at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:41)
	at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
	at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:487)
	at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:58)
	at org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:303)
	at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
	at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:166)
	at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:277)
	at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:567)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
三月 14, 2018 11:25:05 下午 org.apache.catalina.core.StandardContext startInternal
严重: Error getConfigured
三月 14, 2018 11:25:05 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [/Jx] startup failed due to previous errors
三月 14, 2018 11:25:05 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
三月 14, 2018 11:25:05 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
三月 14, 2018 11:25:05 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 338 ms
  • 打赏
  • 举报
回复
看报错信息是缺少sqlserver数据库的驱动包,找不到类,jar包添加到buid path了吗,看是不是版本不对,重新找个
爱摸鱼de老邪 2018-03-13
  • 打赏
  • 举报
回复
msbase.jar、mssqlserver.jar、msutil.jar复制到/WEB-INF/lib/没有?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧