数据库名称:bbs_db 表名:tb_user
jsp页面代码:
<h2 align="center">会员登陆</h2>
<form action="login.action" method="post">
<table align="center">
<tr>
<th>用户名:</th>
<td width="80"><input type="text" name="username"/></td>
</tr>
<tr>
<th>密 码:</th>
<td width="80"><input type="password" name="password"/></td>
</tr><tr>
<td colspan="2" align="right">
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>数据库连接类:UseDate.java代码如下:
package com.swp.datebase;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class UseDate {
Connection conn = null ;
public UseDate() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/db_bbs?user=root&password=root";
conn = DriverManager.getConnection(url);
System.out.println("000000");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally {
try {
if (conn!=null) {
conn.close();
conn=null;
}
}catch(SQLException e) {
e.printStackTrace();
}
}
}
public Connection getConn() {
return conn;
}
}通过strut.xml映射的类为UserLogin.java代码如下:
package com.swp.login;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;import com.opensymphony.xwork2.Action;
import com.swp.datebase.UseDate;public class UserLogin implements Action{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception{
UseDate date = new UseDate();
Statement stmt = null;
ResultSet rs = null;
Connection conn = date.getConn();
stmt = conn.createStatement();
String check = "select * from tb_user where username='"+getUsername()+"'and password='"+getPassword()+"'";
rs = stmt.executeQuery(check);
if(rs.next()) {
return SUCCESS;
}else {
return LOGIN;
}
}
}运行后显示的错误为:
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
root cause java.lang.NullPointerException
com.swp.login.UserLogin.execute(UserLogin.java:33)其中java:33在上面红色显示的 就是!!
请高手指点一下::
或者那个高手给个实例也行!!!!
jsp页面代码:
<h2 align="center">会员登陆</h2>
<form action="login.action" method="post">
<table align="center">
<tr>
<th>用户名:</th>
<td width="80"><input type="text" name="username"/></td>
</tr>
<tr>
<th>密 码:</th>
<td width="80"><input type="password" name="password"/></td>
</tr><tr>
<td colspan="2" align="right">
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>数据库连接类:UseDate.java代码如下:
package com.swp.datebase;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class UseDate {
Connection conn = null ;
public UseDate() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/db_bbs?user=root&password=root";
conn = DriverManager.getConnection(url);
System.out.println("000000");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally {
try {
if (conn!=null) {
conn.close();
conn=null;
}
}catch(SQLException e) {
e.printStackTrace();
}
}
}
public Connection getConn() {
return conn;
}
}通过strut.xml映射的类为UserLogin.java代码如下:
package com.swp.login;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;import com.opensymphony.xwork2.Action;
import com.swp.datebase.UseDate;public class UserLogin implements Action{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception{
UseDate date = new UseDate();
Statement stmt = null;
ResultSet rs = null;
Connection conn = date.getConn();
stmt = conn.createStatement();
String check = "select * from tb_user where username='"+getUsername()+"'and password='"+getPassword()+"'";
rs = stmt.executeQuery(check);
if(rs.next()) {
return SUCCESS;
}else {
return LOGIN;
}
}
}运行后显示的错误为:
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
root cause java.lang.NullPointerException
com.swp.login.UserLogin.execute(UserLogin.java:33)其中java:33在上面红色显示的 就是!!
请高手指点一下::
或者那个高手给个实例也行!!!!
解决方案 »
- jsp运行时的部署问题
- 奇怪的乱码问题
- PreparedStatement pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);oracle出现java.sql.SQLException: 不支持的特性的错误,什么原因
- js问题,window.parent.XXX 为空或不是对象!
- "帮助"的WEB程序实现
- 新手,请帮助
- 大家帮忙看看
- 在一个jsp页面上,有一个不显示的组合框或者还没有它,因为一个复选框打钩后而显示在页面上.这有可能吗?不管什么方法.我听说有这样的组件
- 关于用jfreereport生成报表的问题,急!!!!!
- 送分的问题,很简单哦,100分。
- 谁能发份eclipse代码格式化配置文件给我
- 关于读取Access "备注" 字段的问题!
com.swp.login.UserLogin.execute(UserLogin.java:33) 把上面的那个错误全贴出来
try {
if (conn!=null) {
conn.close();
conn=null;
} 楼主你这段是不是把连接始终设为null了
因为finally始终要执行的
UseDate()构造函数被执行
然而里面的finally 始终被执行,导致conn始终是null