开始写博客,希望能督促自己学习!!
跟着着网上的视频写了一个简单的小程序:
UserBean:存放数据,和数据库中对应
package cn.News.JavaBean;
public class UserBean {
public int uid;
public String username;
public String password;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
}
DBConnection:用于与数据库连接
package cn.News.dbcon;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private final String DRIVER="org.gjt.mm.mysql.Driver";
private final String URL="jdbc:mysql://localhost:3306/news";
private final String USER="root";
private final String PASSWORD="sensor";
private Connection con;
public DBConnection(){
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getCon() {
return con;
}
public void closeCon(){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
UserDAO:DAO层,写一个接口,调用DAO时重写里面的方法
package cn.News.dao;
import cn.News.JavaBean.UserBean;
public interface UserDAO {
public UserBean login(UserBean user);
}
UserDAOImpl:继承DAO接口,重写login方法 就是具体的实现过程
package cn.News.dao.impl;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.News.JavaBean.UserBean;
import cn.News.dao.UserDAO;
import cn.News.dbcon.DBConnection;
public class UserDAOImpl implements UserDAO {
private DBConnection con;
private PreparedStatement pstmt;
private ResultSet rs;
private String sql;
public UserBean login(UserBean user) {
con = new DBConnection();
UserBean userBean=new UserBean();
sql="select uid,username,pasword from userinfo where username=?,password=?";
try {
pstmt=con.getCon().prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
rs=pstmt.executeQuery();
if(rs.next()){
userBean .setUid(rs.getInt("uid"));
userBean.setUsername(rs.getString("username"));
userBean.setPassword(rs.getString("username"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
con.closeCon();
}
return userBean;
}
}
DAOFactory:获取DAO对象用的(工厂的概念我还不是很清楚,以后再好好看看)
package cn.News.factory;
import cn.News.dao.FirstLevelDAO;
import cn.News.dao.UserDAO;
import cn.News.dao.impl.UserDAOImpl;
public class DAOFactory {
//获取DAO对象
public static UserDAO getUserDAOInstance(){
return new UserDAOImpl();
}
}
UserServlet:
package cn.News.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.News.JavaBean.UserBean;
import cn.News.factory.DAOFactory;
public class UserServlet extends HttpServlet {
public UserServlet() {
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 {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path="";
request.getParameter("UTF-8");
String username=request.getParameter("usrname");
String password=request.getParameter("password");
UserBean user=new UserBean();
user.setUsername(username);
user.setPassword(password);
UserBean u=DAOFactory.getUserDAOInstance().login(user);
if(u.getUsername()!=null) {
path="index.jsp";
request.getSession().setAttribute("user",u);
}else path="login.jsp";
request.getRequestDispatcher(path).forward(request, response);
}
}
另:在学习的过程中发现,servlet不是jdk包中的,而是服务器中的,比如我用的就是Tomcat6.0,MyEclipse中已经集成好了,如果没有这个jar包的话,可以从tomcat的安装文件下的lib中把servlet拷贝出来就行了!