项目场景:
完成研究与开发实践作业,使用JQuery+Servlet,修改模板,连接数据库(本地+远程),实现登录功能+表格展示功能。问题描述:
共出现了以下几个问题,花费了较多非必要的时间:(1)在Servlet中连接远程数据库失败
(2)访问数据库中数据失败,出现“NullPointerException”报错
(3)post无法访问Servlet文件
(4)忽视了resultSet.next()是个函数而非指针
解决方案:
(1)连接远程仓库使用链接形式,不要使用自己设定的远程仓库名,以下代码则可以正常连接try {
String connStr="jdbc:mysql://www.XXXXX.net:3366/"+dbName+"?user=XXXX&password=XXXXX&useUnicode=true&characterEncoding=UTF-8";
connection = DriverManager.getConnection(connStr);
showDebug("准备statement。connection是:"+connStr);
statement = connection.createStatement();
showDebug("已经链接上数据库!");
} catch (SQLException sqlexception) {
sqlexception.printStackTrace();
}
(2)检查代码中要访问的key值名称是否出错(3)在web.xml中进行Servelet的配置,如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- ================ device begin ================= -->
<servlet>
<servlet-name>device_file_servlet_action</servlet-name>
<servlet-class>device.file.ServletAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>device_file_servlet_action</servlet-name>
<url-pattern>/device_file_servlet_action</url-pattern>
</servlet-mapping>
<!-- ================ device end ================= -->
<!-- ================ user begin ================= -->
<servlet>
<servlet-name>user_center_servlet_action</servlet-name>
<servlet-class>user.center.ServletAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>user_center_servlet_action</servlet-name>
<url-pattern>/user_center_servlet_action</url-pattern>
</servlet-mapping>
<!-- ================ user end ================= -->
<!-- ================ gps begin ================= -->
<servlet>
<servlet-name>gps_file_servlet_action</servlet-name>
<servlet-class>gps.file.ServletAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>gps_file_servlet_action</servlet-name>
<url-pattern>/gps_file_servlet_action</url-pattern>
</servlet-mapping>
<!-- ================ gps end ================= -->
</web-app>
(4)resultSet.next()除了获得下一个值以外,会自动地进行右移,因此不要随便用System.out.println来直接对resultSet.next()进行调试,而是用一个变量进行转换。