登录网站访问数据库的过程中……Serevlet 代码如下package ser;import impl.AccountImpl;
import it.shopping.dao.IAccount;
import it.shopping.pojo.Account;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 AccountSer extends HttpServlet
{
private IAccount accountImpl = new AccountImpl();
private static final long serialVersionUID = -3708568559174453120L;
public AccountSer()
{
super();
}
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{ this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String status = request.getParameter("status");
if(status.equals("login"))
{
Account account = new Account();
account.setAlogin(request.getParameter("alogin"));
account.setApass(request.getParameter("apass"));
account =accountImpl.queryAccount(account);
if(account == null)
{
request.setAttribute("error", "登录失败");
request.getRequestDispatcher("/alogin.jsp").forward(request, response);
System.out.println("doPost is invoked");
}
else
{
request.getSession().setAttribute("account", account);
response.sendRedirect("/t31/admin/index.jsp");
}
}
}
public void init() throws ServletException
{
// Put your code here
System.out.println("init is invoked");
}}
访问数据库:
package impl;import java.sql.Connection;import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import utils.JdbcUtils;import it.shopping.dao.IAccount;
import it.shopping.pojo.Account;
public class AccountImpl implements IAccount
{ @Override
public Account queryAccount(Account account)
{
Account temp = null;
Connection conn = null;
PreparedStatement pre = null;
String sql = "SELECT * FROM students WHERE alogin=? AND apass=?";
ResultSet rs = null;
try
{
conn = JdbcUtils.getConnection();
pre= conn.prepareStatement(sql); pre.setObject(1,"alogin");
pre.setObject(2,"apass");
System.out.println("pre is invoked");
rs = pre.executeQuery();
System.out.println(rs.getString(1));
if(rs.next())
{
temp = new Account();
temp.setAid(rs.getInt("aid"));
temp.setAlogin(rs.getString("alogin"));
temp.setApass(rs.getString("apass"));
}
} catch (SQLException e){
e.printStackTrace();
} finally{
JdbcUtils.free( rs,pre,conn);
} return temp;
}}
数据库工具类
package utils;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/**
*
* 2008-12-6
*
* @author <a href="mailto:[email protected]">����</a>
*
*/
public final class JdbcUtils {
private static String url = "jdbc:mysql://localhost:3306/shopping";
private static String user = "root";
private static String password = "593295570dr"; private JdbcUtils() {
} static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
} public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
} public static void free(ResultSet rs, Statement pre, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pre != null)
pre.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
package it.shopping.pojo;public class Account
{ private int aid;
private String alogin;
private String apass;
public int getAid()
{
return aid;
}
public void setAid(int aid)
{
this.aid = aid;
}
public String getAlogin()
{
return alogin;
}
public void setAlogin(String alogin)
{
this.alogin = alogin;
}
public String getApass()
{
return apass;
}
public void setApass(String apass)
{
this.apass = apass;
}
}
package it.shopping.dao;import it.shopping.pojo.Account;public interface IAccount
{
public Account queryAccount(Account account);
}
import it.shopping.dao.IAccount;
import it.shopping.pojo.Account;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 AccountSer extends HttpServlet
{
private IAccount accountImpl = new AccountImpl();
private static final long serialVersionUID = -3708568559174453120L;
public AccountSer()
{
super();
}
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{ this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String status = request.getParameter("status");
if(status.equals("login"))
{
Account account = new Account();
account.setAlogin(request.getParameter("alogin"));
account.setApass(request.getParameter("apass"));
account =accountImpl.queryAccount(account);
if(account == null)
{
request.setAttribute("error", "登录失败");
request.getRequestDispatcher("/alogin.jsp").forward(request, response);
System.out.println("doPost is invoked");
}
else
{
request.getSession().setAttribute("account", account);
response.sendRedirect("/t31/admin/index.jsp");
}
}
}
public void init() throws ServletException
{
// Put your code here
System.out.println("init is invoked");
}}
访问数据库:
package impl;import java.sql.Connection;import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import utils.JdbcUtils;import it.shopping.dao.IAccount;
import it.shopping.pojo.Account;
public class AccountImpl implements IAccount
{ @Override
public Account queryAccount(Account account)
{
Account temp = null;
Connection conn = null;
PreparedStatement pre = null;
String sql = "SELECT * FROM students WHERE alogin=? AND apass=?";
ResultSet rs = null;
try
{
conn = JdbcUtils.getConnection();
pre= conn.prepareStatement(sql); pre.setObject(1,"alogin");
pre.setObject(2,"apass");
System.out.println("pre is invoked");
rs = pre.executeQuery();
System.out.println(rs.getString(1));
if(rs.next())
{
temp = new Account();
temp.setAid(rs.getInt("aid"));
temp.setAlogin(rs.getString("alogin"));
temp.setApass(rs.getString("apass"));
}
} catch (SQLException e){
e.printStackTrace();
} finally{
JdbcUtils.free( rs,pre,conn);
} return temp;
}}
数据库工具类
package utils;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/**
*
* 2008-12-6
*
* @author <a href="mailto:[email protected]">����</a>
*
*/
public final class JdbcUtils {
private static String url = "jdbc:mysql://localhost:3306/shopping";
private static String user = "root";
private static String password = "593295570dr"; private JdbcUtils() {
} static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
} public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
} public static void free(ResultSet rs, Statement pre, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pre != null)
pre.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
package it.shopping.pojo;public class Account
{ private int aid;
private String alogin;
private String apass;
public int getAid()
{
return aid;
}
public void setAid(int aid)
{
this.aid = aid;
}
public String getAlogin()
{
return alogin;
}
public void setAlogin(String alogin)
{
this.alogin = alogin;
}
public String getApass()
{
return apass;
}
public void setApass(String apass)
{
this.apass = apass;
}
}
package it.shopping.dao;import it.shopping.pojo.Account;public interface IAccount
{
public Account queryAccount(Account account);
}
解决方案 »
- 服务器文件无法读写
- 框架外的jsp页面如何传值给frame框架
- servlet传参问题
- 高分求解javascript问题----急!!
- 我的web应用运行了一段时间后发生 java.lang.NullPointerExceptionat org.apache.jk.common.ChannelSocket.processConnection(ChannelSoc
- 哪位帮解理关于一个linux下的java shell
- 系统加载不上,求帮助
- 使用webService获取的参数,解码后部分乱码
- 请问谁愿意给出一个比较完整的字符串函数类库(javabean)?
- 请教下 tomcat集群中关于session和文件资源的问题
- 关于引号问题
- 求大侠帮忙看一下这个错误 使用Ztree(一个树插件),把数据库里面的数据传到Ztree时出现的错误。
public Account queryAccount(Account account)
{
Account temp = null;
Connection conn = null;
PreparedStatement pre = null;
String sql = "SELECT * FROM students WHERE alogin=? AND apass=?";
ResultSet rs = null;
try
{
conn = JdbcUtils.getConnection();
pre= conn.prepareStatement(sql);
// 你的用户名和密码不是都放在account里的吗,怎么下面直接写死了?
pre.setObject(1,"alogin"); // 是否是pre.setString(1,account.getAlogin());?
pre.setObject(2,"apass"); // pre.setString(1,account.getApass());
System.out.println(rs.getString(1));这句删了!还是本来没有的,调试时加的,贴上来时忘删了?? 汗。