MVC设计模式编写的一个login小项目
MVC设计模式编写的一个login小项目,其中的编程思想主要有,面向对象、面向接口编程;包分的比较细,比较复杂,使用实现接口编程;主要java代码如下:所用的html和jsp就不一一列出了,html中所用的高级点的技术就是插入背景和背景音乐:<bgsound src="images/style.mp3" loop="-1">;
以及验证码的切换用到了css:
<script type="text/javascript">
function change(img){
img.src = img.src + "?" + new Date().getTime();
}
</script>
<img src="./CheckCode" onclick="change(this)">(看不清,点击验证码)
还有大家所看到的欢迎字样的来回滚动:
<marquee behavior="alternate" crollamount="10">
<img src="./images/welcome.gif" width="200" height="100" />
<img src="./images/welcome.gif" width="200" height="100" />
<img src="./images/welcome.gif" width="200" height="100" />
<img src="./images/welcome.gif" width="200" height="100" />
</marquee>
以下列出几个重要的java类,javabean和dao包下的接口、测试包中的java代码以及server层的简单类就不一一列出来了,这都比较简单,一下servlet包中的增删改查已经和与数据库连接中的类
dao包中的实现类:
package com.csdn.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.csdn.bean.User;
import com.csdn.util.DBConnection;
public class UserDaoImp implements UserDao {
// 封装与数据库关联的对象
private PreparedStatement ps;
private ResultSet rs;
public User login(String username, String password) {
// 1.声明返回值对象
User user = null;
// 2.声明sql语句
String sql = "select id,username,password,logintime from user where username=? and password=?";
// 3.获取连接对象
Connection con = DBConnection.getCon();
// 4:根据预处理的sql语句 获取 PreparedStatement对象
try {
ps = con.prepareStatement(sql);
// 5.为占位符 赋值
int index = 1;
ps.setString(index++, username);
ps.setString(index++, password);
// 6.执行查询
rs = ps.executeQuery();
// 7.遍历结果集
if (rs.next()) {
// 实例化返回值user对象
user = new User();
// 赋值
user.setId(rs.getInt("id"));
user.setLogintime(rs.getTimestamp("logintime"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 8.释放资源
DBConnection.release(rs, ps);
}
return user; // 这里的返回值一定要记得写,建议创建返回值对象user的时候就写上,以免编写完代码了忘了写,测试的时候出现空指针错误
}
public boolean insert(User entity) {
// 1.声明返回值对象
boolean flag = false;
// 2.声明sql语句
String sql = "insert into user(username,password,logintime) values(?,?,?)";
// 3.获取连接对象
Connection con = DBConnection.getCon();
// 4.插入数据
Date currentTime = new Date();
//获取出错原因:Timestamp获取的有毫秒数,所以格式化时间的时候要带上毫秒数;格式:"yyyy-MM-dd HH:mm:ss.SSS";//Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
//java.sql.Timestamp date = java.sql.Timestamp.valueOf(currentTime.toLocaleString());
//new出当前时间的毫秒数
java.sql.Timestamp date = new java.sql.Timestamp(currentTime.getTime());
try {
ps = con.prepareStatement(sql);
ps.setString(1, entity.getUsername());
ps.setString(2, entity.getPassword());
ps.setTimestamp(3, date);
int i = ps.executeUpdate();
if (i > 0) {
flag = true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 5.释放资源
DBConnection.release(rs, ps);
}
return flag; // 这里的返回值一定要记得写,建议创建返回值对象user的时候就写上,以免编写完代码了忘了写,测试的时候出现空指针错误
}
public boolean delete(User entity) {
// 1.声明返回值对象
boolean flag = false;
// 2.声明sql语句
String sql = "delete from user";
// 3.获取连接对象
Connection con = DBConnection.getCon();
// 4.插入数据
try {
ps = con.prepareStatement(sql);
int i = ps.executeUpdate();
if (i > 0) {
flag = true;
}
} cat
补充:软件开发 , Java ,