`

JSP复习笔记——第10章 连接数据库 之 jsp+DAO实现留言管理程序

    博客分类:
  • JSP
阅读更多
案例-jsp+DAO实现留言管理程序
----------------Note.java------------------------

Java代码
1.package org.sky.darkness.note.vo ;  
2. 
3.public class Note {  
4.    private int id ;  
5.    private String title ;  
6.    private String author ;  
7.    private String content ;  
8. 
9.    public void setId(int id) {  
10.        this.id = id ;  
11.    }  
12.    public void setTitle(String title) {  
13.        this.title = title ;  
14.    }  
15.    public void setAuthor(String author) {  
16.        this.author = author ;  
17.    }  
18.    public void setContent(String content) {  
19.        this.content = content ;  
20.    }  
21. 
22.    public int getId() {  
23.        return this.id ;  
24.    }  
25.    public String getTitle() {  
26.        return this.title ;  
27.    }  
28.    public String getAuthor() {  
29.        return this.author ;  
30.    }  
31.    public String getContent() {  
32.        return this.content ;  
33.    }  
34.}; 
package org.sky.darkness.note.vo ;

public class Note {
private int id ;
private String title ;
private String author ;
private String content ;

public void setId(int id) {
this.id = id ;
}
public void setTitle(String title) {
this.title = title ;
}
public void setAuthor(String author) {
this.author = author ;
}
public void setContent(String content) {
this.content = content ;
}

public int getId() {
return this.id ;
}
public String getTitle() {
return this.title ;
}
public String getAuthor() {
return this.author ;
}
public String getContent() {
return this.content ;
}
};

----------------------Person.java--------------------------

Java代码
1.package org.sky.darkness.note.vo ;  
2. 
3.public class Person  
4.{  
5.    private String id ;  
6.    private String name ;  
7.    private String password ;  
8. 
9.    public void setId(String id) {  
10.        this.id = id ;  
11.    }  
12.    public void setName(String name) {  
13.        this.name = name ;  
14.    }  
15.    public void setPassword(String password) {  
16.        this.password = password ;  
17.    }  
18. 
19.    public String getId() {  
20.        return this.id ;  
21.    }  
22.    public String getName() {  
23.        return this.name ;  
24.    }  
25.    public String getPassword() {  
26.        return this.password ;  
27.    }  
28.}; 
package org.sky.darkness.note.vo ;

public class Person
{
private String id ;
private String name ;
private String password ;

public void setId(String id) {
this.id = id ;
}
public void setName(String name) {
this.name = name ;
}
public void setPassword(String password) {
this.password = password ;
}

public String getId() {
return this.id ;
}
public String getName() {
return this.name ;
}
public String getPassword() {
return this.password ;
}
};

----------------NoteDAO.java-------------

Java代码
1.package org.sky.darkness.note.dao ;  
2. 
3.import java.util.* ;  
4.import org.sky.darkness.note.vo.* ;  
5. 
6.public interface NoteDAO  
7.{  
8.    // 增加操作  
9.    public void insert(Note note) throws Exception ;  
10.    // 修改操作  
11.    public void update(Note note) throws Exception ;  
12.    // 删除操作  
13.    public void delete(int id) throws Exception ;  
14.    // 按ID查询,主要为更新使用  
15.    public Note queryById(int id) throws Exception ;  
16.    // 查询全部  
17.    public List queryAll() throws Exception ;  
18.    // 模糊查询  
19.    public List queryByLike(String cond) throws Exception ;  
20.}; 
package org.sky.darkness.note.dao ;

import java.util.* ;
import org.sky.darkness.note.vo.* ;

public interface NoteDAO
{
// 增加操作
public void insert(Note note) throws Exception ;
// 修改操作
public void update(Note note) throws Exception ;
// 删除操作
public void delete(int id) throws Exception ;
// 按ID查询,主要为更新使用
public Note queryById(int id) throws Exception ;
// 查询全部
public List queryAll() throws Exception ;
// 模糊查询
public List queryByLike(String cond) throws Exception ;
};

----------------------------PersonDAO.java-----------------------------------

Java代码
1.package org.sky.darkness.note.dao ;  
2. 
3.import org.sky.darkness.note.vo.* ;  
4. 
5.public interface PersonDAO {  
6.    // 做登陆验证  
7.    public boolean login(Person person) throws Exception ;  
8.}; 
package org.sky.darkness.note.dao ;

import org.sky.darkness.note.vo.* ;

public interface PersonDAO {
// 做登陆验证
public boolean login(Person person) throws Exception ;
};


Java代码
1.---------------- PersonDAOImpl.java--------------  
2.package org.sky.darkness.note.dao.impl ;  
3. 
4.import java.sql.* ;  
5.import org.sky.darkness.note.vo.* ;  
6.import org.sky.darkness.note.dbc.* ;  
7.import org.sky.darkness.note.dao.* ;  
8. 
9.public class PersonDAOImpl implements PersonDAO  
10.{  
11.    /* 
12.        功能: 
13.            • 判断是否是正确的用户名或密码 
14.            • 从数据库中取出用户的真实姓名 
15.    */ 
16.    public boolean login(Person person) throws Exception {  
17.        boolean flag = false ;  
18.        String sql = "SELECT name FROM person WHERE id=? and password=?" ;  
19.        PreparedStatement pstmt = null ;  
20.        DataBaseConnection dbc = null ;  
21.        dbc = new DataBaseConnection() ;  
22.        try {  
23.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
24.            pstmt.setString(1,person.getId()) ;  
25.            pstmt.setString(2,person.getPassword()) ;  
26.            ResultSet rs = pstmt.executeQuery() ;  
27.            if (rs.next()) {  
28.                flag = true ;  
29.                person.setName(rs.getString(1)) ;  
30.            }  
31.            rs.close() ;  
32.            pstmt.close() ;  
33.        } catch (Exception e) {  
34.            throw new Exception("操作出现错误!!!") ;  
35.        } finally {  
36.            dbc.close() ;  
37.        }  
38.          
39.        return flag ;  
40.    }  
41.}; 
---------------- PersonDAOImpl.java--------------
package org.sky.darkness.note.dao.impl ;

import java.sql.* ;
import org.sky.darkness.note.vo.* ;
import org.sky.darkness.note.dbc.* ;
import org.sky.darkness.note.dao.* ;

public class PersonDAOImpl implements PersonDAO
{
/*
功能:
• 判断是否是正确的用户名或密码
• 从数据库中取出用户的真实姓名
*/
public boolean login(Person person) throws Exception {
boolean flag = false ;
String sql = "SELECT name FROM person WHERE id=? and password=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,person.getId()) ;
pstmt.setString(2,person.getPassword()) ;
ResultSet rs = pstmt.executeQuery() ;
if (rs.next()) {
flag = true ;
person.setName(rs.getString(1)) ;
}
rs.close() ;
pstmt.close() ;
} catch (Exception e) {
throw new Exception("操作出现错误!!!") ;
} finally {
dbc.close() ;
}

return flag ;
}
};


------------- NoteDAOImpl.java-------------------------------------

Java代码
1.package org.sky.darkness.note.dao.impl ;  
2. 
3.import java.sql.* ;  
4.import java.util.* ;  
5.import org.sky.darkness.note.vo.* ;  
6.import org.sky.darkness.note.dao.* ;  
7.import org.sky.darkness.note.dbc.* ;  
8. 
9.public class NoteDAOImpl implements NoteDAO {  
10.    // 增加操作  
11.    public void insert(Note note) throws Exception {  
12.        String sql = "INSERT INTO note(id,title,author,content) VALUES(note_sequ.nextVal,?,?,?)" ;  
13.        PreparedStatement pstmt = null ;  
14.        DataBaseConnection dbc = null ;  
15.        dbc = new DataBaseConnection() ;  
16.        try {  
17.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
18.            pstmt.setString(1,note.getTitle()) ;  
19.            pstmt.setString(2,note.getAuthor()) ;  
20.            pstmt.setString(3,note.getContent()) ;  
21.            pstmt.executeUpdate() ;  
22.            pstmt.close() ;  
23.        } catch (Exception e) {  
24.            // System.out.println(e) ;  
25.            throw new Exception("操作中出现错误!!!") ;  
26.        } finally {  
27.            dbc.close() ;  
28.        }  
29.    }  
30.    // 修改操作  
31.    public void update(Note note) throws Exception {  
32.        String sql = "UPDATE note SET title=?,author=?,content=? WHERE id=?" ;  
33.        PreparedStatement pstmt = null ;  
34.        DataBaseConnection dbc = null ;  
35.        dbc = new DataBaseConnection() ;  
36.        try {  
37.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
38.            pstmt.setString(1,note.getTitle()) ;  
39.            pstmt.setString(2,note.getAuthor()) ;  
40.            pstmt.setString(3,note.getContent()) ;  
41.            pstmt.setInt(4,note.getId()) ;  
42.            pstmt.executeUpdate() ;  
43.            pstmt.close() ;  
44.        } catch (Exception e) {  
45.            throw new Exception("操作中出现错误!!!") ;  
46.        } finally {  
47.            dbc.close() ;  
48.        }  
49.    }  
50.    // 删除操作  
51.    public void delete(int id) throws Exception {  
52.        String sql = "DELETE FROM note WHERE id=?" ;  
53.        PreparedStatement pstmt = null ;  
54.        DataBaseConnection dbc = null ;  
55.        dbc = new DataBaseConnection() ;  
56.        try {  
57.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
58.            pstmt.setInt(1,id) ;  
59.            pstmt.executeUpdate() ;  
60.            pstmt.close() ;  
61.        } catch (Exception e) {  
62.            throw new Exception("操作中出现错误!!!") ;  
63.        } finally {  
64.            dbc.close() ;  
65.        }  
66.    }  
67.    // 按ID查询,主要为更新使用  
68.    public Note queryById(int id) throws Exception {  
69.        Note note = null ;  
70.        String sql = "SELECT id,title,author,content FROM note WHERE id=?" ;  
71.        PreparedStatement pstmt = null ;  
72.        DataBaseConnection dbc = null ;  
73.        dbc = new DataBaseConnection() ;  
74.        try {  
75.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
76.            pstmt.setInt(1,id) ;  
77.            ResultSet rs = pstmt.executeQuery() ;  
78.            if(rs.next()) {  
79.                note = new Note() ;  
80.                note.setId(rs.getInt(1)) ;  
81.                note.setTitle(rs.getString(2)) ;  
82.                note.setAuthor(rs.getString(3)) ;  
83.                note.setContent(rs.getString(4)) ;  
84.            }  
85.            rs.close() ;  
86.            pstmt.close() ;  
87.        } catch (Exception e) {  
88.            throw new Exception("操作中出现错误!!!") ;  
89.        } finally {  
90.            dbc.close() ;  
91.        }  
92.        return note ;  
93.    }  
94.    // 查询全部  
95.    public List queryAll() throws Exception {  
96.        List all = new ArrayList() ;  
97.        String sql = "SELECT id,title,author,content FROM note" ;  
98.        PreparedStatement pstmt = null ;  
99.        DataBaseConnection dbc = null ;  
100.        dbc = new DataBaseConnection() ;  
101.        try {  
102.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
103.            ResultSet rs = pstmt.executeQuery() ;  
104.            while(rs.next()) {  
105.                Note note = new Note() ;  
106.                note.setId(rs.getInt(1)) ;  
107.                note.setTitle(rs.getString(2)) ;  
108.                note.setAuthor(rs.getString(3)) ;  
109.                note.setContent(rs.getString(4)) ;  
110.                all.add(note) ;  
111.            }  
112.            rs.close() ;  
113.            pstmt.close() ;  
114.        } catch (Exception e) {  
115.            System.out.println(e) ;  
116.            throw new Exception("操作中出现错误!!!") ;  
117.        } finally {  
118.            dbc.close() ;  
119.        }  
120.        return all ;  
121.    }  
122.    // 模糊查询  
123.    public List queryByLike(String cond) throws Exception {  
124.        List all = new ArrayList() ;  
125.        String sql = "SELECT id,title,author,content FROM note WHERE title LIKE ? or AUTHOR LIKE ? or CONTENT LIKE ?" ;  
126.        PreparedStatement pstmt = null ;  
127.        DataBaseConnection dbc = null ;  
128.        dbc = new DataBaseConnection() ;  
129.        try {  
130.            pstmt = dbc.getConnection().prepareStatement(sql) ;  
131.            pstmt.setString(1,"%"+cond+"%") ;  
132.            pstmt.setString(2,"%"+cond+"%") ;  
133.            pstmt.setString(3,"%"+cond+"%") ;  
134.            ResultSet rs = pstmt.executeQuery() ;  
135.            while(rs.next()) {  
136.                Note note = new Note() ;  
137.                note.setId(rs.getInt(1)) ;  
138.                note.setTitle(rs.getString(2)) ;  
139.                note.setAuthor(rs.getString(3)) ;  
140.                note.setContent(rs.getString(4)) ;  
141.                all.add(note) ;  
142.            }  
143.            rs.close() ;  
144.            pstmt.close() ;  
145.        } catch (Exception e) {  
146.            System.out.println(e) ;  
147.            throw new Exception("操作中出现错误!!!") ;  
148.        } finally {  
149.            dbc.close() ;  
150.        }  
151.        return all ;  
152.    }  
153.}; 
package org.sky.darkness.note.dao.impl ;

import java.sql.* ;
import java.util.* ;
import org.sky.darkness.note.vo.* ;
import org.sky.darkness.note.dao.* ;
import org.sky.darkness.note.dbc.* ;

public class NoteDAOImpl implements NoteDAO {
// 增加操作
public void insert(Note note) throws Exception {
String sql = "INSERT INTO note(id,title,author,content) VALUES(note_sequ.nextVal,?,?,?)" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,note.getTitle()) ;
pstmt.setString(2,note.getAuthor()) ;
pstmt.setString(3,note.getContent()) ;
pstmt.executeUpdate() ;
pstmt.close() ;
} catch (Exception e) {
// System.out.println(e) ;
throw new Exception("操作中出现错误!!!") ;
} finally {
dbc.close() ;
}
}
// 修改操作
public void update(Note note) throws Exception {
String sql = "UPDATE note SET title=?,author=?,content=? WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,note.getTitle()) ;
pstmt.setString(2,note.getAuthor()) ;
pstmt.setString(3,note.getContent()) ;
pstmt.setInt(4,note.getId()) ;
pstmt.executeUpdate() ;
pstmt.close() ;
} catch (Exception e) {
throw new Exception("操作中出现错误!!!") ;
} finally {
dbc.close() ;
}
}
// 删除操作
public void delete(int id) throws Exception {
String sql = "DELETE FROM note WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setInt(1,id) ;
pstmt.executeUpdate() ;
pstmt.close() ;
} catch (Exception e) {
throw new Exception("操作中出现错误!!!") ;
} finally {
dbc.close() ;
}
}
// 按ID查询,主要为更新使用
public Note queryById(int id) throws Exception {
Note note = null ;
String sql = "SELECT id,title,author,content FROM note WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setInt(1,id) ;
ResultSet rs = pstmt.executeQuery() ;
if(rs.next()) {
note = new Note() ;
note.setId(rs.getInt(1)) ;
note.setTitle(rs.getString(2)) ;
note.setAuthor(rs.getString(3)) ;
note.setContent(rs.getString(4)) ;
}
rs.close() ;
pstmt.close() ;
} catch (Exception e) {
throw new Exception("操作中出现错误!!!") ;
} finally {
dbc.close() ;
}
return note ;
}
// 查询全部
public List queryAll() throws Exception {
List all = new ArrayList() ;
String sql = "SELECT id,title,author,content FROM note" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
ResultSet rs = pstmt.executeQuery() ;
while(rs.next()) {
Note note = new Note() ;
note.setId(rs.getInt(1)) ;
note.setTitle(rs.getString(2)) ;
note.setAuthor(rs.getString(3)) ;
note.setContent(rs.getString(4)) ;
all.add(note) ;
}
rs.close() ;
pstmt.close() ;
} catch (Exception e) {
System.out.println(e) ;
throw new Exception("操作中出现错误!!!") ;
} finally {
dbc.close() ;
}
return all ;
}
// 模糊查询
public List queryByLike(String cond) throws Exception {
List all = new ArrayList() ;
String sql = "SELECT id,title,author,content FROM note WHERE title LIKE ? or AUTHOR LIKE ? or CONTENT LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,"%"+cond+"%") ;
pstmt.setString(2,"%"+cond+"%") ;
pstmt.setString(3,"%"+cond+"%") ;
ResultSet rs = pstmt.executeQuery() ;
while(rs.next()) {
Note note = new Note() ;
note.setId(rs.getInt(1)) ;
note.setTitle(rs.getString(2)) ;
note.setAuthor(rs.getString(3)) ;
note.setContent(rs.getString(4)) ;
all.add(note) ;
}
rs.close() ;
pstmt.close() ;
} catch (Exception e) {
System.out.println(e) ;
throw new Exception("操作中出现错误!!!") ;
} finally {
dbc.close() ;
}
return all ;
}
};

----------- DAOFactory .java------------------------------------------------

Java代码
1.package org.sky.darkness.note.factory ;  
2. 
3.import org.sky.darkness.note.dao.* ;  
4.import org.sky.darkness.note.dao.impl.* ;  
5. 
6.public class DAOFactory {  
7.    public static PersonDAO getPersonDAOInstance() {  
8.        return new PersonDAOImpl() ;  
9.    }  
10. 
11.    public static NoteDAO getNoteDAOInstance() {  
12.        return new NoteDAOImpl() ;  
13.    }  
14.}; 
package org.sky.darkness.note.factory ;

import org.sky.darkness.note.dao.* ;
import org.sky.darkness.note.dao.impl.* ;

public class DAOFactory {
public static PersonDAO getPersonDAOInstance() {
return new PersonDAOImpl() ;
}

public static NoteDAO getNoteDAOInstance() {
return new NoteDAOImpl() ;
}
};

----------- DataBaseConnection .java-----------------------------------------------

Java代码
1.package org.sky.darkness.note.dbc ;  
2. 
3.import java.sql.* ;  
4. 
5.public class DataBaseConnection {  
6.    private String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
7.    private String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
8.    private String DBUSER           = "scott" ;  
9.    private String DBPASSWORD       = "darkness" ;  
10.    private Connection conn         = null ;  
11. 
12.    public DataBaseConnection() {  
13.        try {  
14.            Class.forName(DBDRIVER) ;  
15.            this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
16.        } catch (Exception e) {  
17.        }  
18.    }  
19. 
20.    public Connection getConnection() {  
21.        return this.conn ;  
22.    }  
23. 
24.    public void close() {  
25.        try {  
26.            this.conn.close() ;  
27.        }  
28.        catch (Exception e) {  
29.        }  
30.    }  
31.}; 
package org.sky.darkness.note.dbc ;

import java.sql.* ;

public class DataBaseConnection {
private String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
private String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
private String DBUSER = "scott" ;
private String DBPASSWORD = "darkness" ;
private Connection conn = null ;

public DataBaseConnection() {
try {
Class.forName(DBDRIVER) ;
this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
} catch (Exception e) {
}
}

public Connection getConnection() {
return this.conn ;
}

public void close() {
try {
this.conn.close() ;
}
catch (Exception e) {
}
}
};

------------脚本.sql-------------------------------------------------

Java代码
1.-- 创建表  
2.-- 用户表(登陆)、留言表  
3. 
4.-- 删除表  
5.DROP TABLE person ;  
6.DROP TABLE note ;  
7. 
8.-- 删除序列  
9.DROP SEQUENCE note_sequ ;  
10. 
11.-- 创建序列  
12.CREATE SEQUENCE note_sequ ;  
13. 
14. 
15.-- 创建person表  
16.CREATE TABLE person  
17.(  
18.    id varchar(20) not null primary key ,  
19.    name varchar(20) ,  
20.    password varchar(20)  
21.) ;  
22. 
23.-- 创建留言表  
24.CREATE TABLE note  
25.(  
26.    id int not null primary key , -- sequence  
27.    title varchar(20) not null ,  
28.    author varchar(20) not null ,  
29.    content varchar(50) not null   
30.) ;  
31. 
32.-- 插入测试数据  
33.INSERT INTO person VALUES ('darkness','wind','zzzzzz') ;  
34.INSERT INTO person VALUES ('sky','cloud','mmmmmm') ;  
35. 
36.-- 事务提交  
37.commit ; 
-- 创建表
-- 用户表(登陆)、留言表

-- 删除表
DROP TABLE person ;
DROP TABLE note ;

-- 删除序列
DROP SEQUENCE note_sequ ;

-- 创建序列
CREATE SEQUENCE note_sequ ;


-- 创建person表
CREATE TABLE person
(
id varchar(20) not null primary key ,
name varchar(20) ,
password varchar(20)
) ;

-- 创建留言表
CREATE TABLE note
(
id int not null primary key , -- sequence
title varchar(20) not null ,
author varchar(20) not null ,
content varchar(50) not null
) ;

-- 插入测试数据
INSERT INTO person VALUES ('darkness','wind','zzzzzz') ;
INSERT INTO person VALUES ('sky','cloud','mmmmmm') ;

-- 事务提交
commit ;


Java代码
1.-------------------------login.jsp--------------------------------------------  
2. 
3.<%@ page contentType="text/html;charset=gb2312"%>  
4.<html>  
5.<head>  
6.    <title>JSP+DAO 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        // 判断是否有错误信息,如果有则打印  
15.        // 如果没有此段代码,则显示时会直接打印null  
16.        if(request.getAttribute("err")!=null)  
17.        {  
18.    %>  
19.            <h2><%=request.getAttribute("err")%></h2>  
20.    <%  
21.        }  
22.    %>  
23.    <form action="login_conf.jsp" method="post">  
24.    <table width="80%">  
25.    <tr>  
26.        <td colspan="2">用户登陆</td>  
27.    </tr>  
28.    <tr>  
29.        <td>用户名:</td>  
30.        <td><input type="text" name="id"></td>  
31.    </tr>  
32.    <tr>  
33.        <td>密&nbsp;&nbsp;码:</td>  
34.        <td><input type="password" name="password"></td>  
35.    </tr>  
36.    <tr>  
37.        <td colspan="2">  
38.            <input type="submit" value="登陆">  
39.            <input type="reset" value="重置">  
40.        </td>  
41.    </tr>  
42.    </table>  
43.    </form>  
44.</center>  
45.</body>  
46.</html> 
-------------------------login.jsp--------------------------------------------

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
// 判断是否有错误信息,如果有则打印
// 如果没有此段代码,则显示时会直接打印null
if(request.getAttribute("err")!=null)
{
%>
<h2><%=request.getAttribute("err")%></h2>
<%
}
%>
<form action="login_conf.jsp" method="post">
<table width="80%">
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>密&nbsp;&nbsp;码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>


Java代码
1.--------------------------- login_conf.jsp------------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="org.sky.darkness.note.factory.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+DAO 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
11.    <hr>  
12.    <br>  
13.    <jsp:useBean id="person" scope="page" class="org.sky.darkness.note.vo.Person"/>  
14.    <jsp:setProperty name="person" property="*"/>  
15.    <%  
16.    try 
17.    {  
18.        // 跳转  
19.        if(DAOFactory.getPersonDAOInstance().login(person))  
20.        {  
21.            // 设置用户姓名到session范围之中  
22.            session.setAttribute("uname",person.getName()) ;  
23.            // 用户合法  
24.    %>  
25.            <jsp:forward page="login_success.jsp"/>  
26.    <%  
27.        }  
28.        else 
29.        {  
30.            // 用户非法  
31.    %>  
32.            <jsp:forward page="login.jsp"/>  
33.    <%  
34.        }  
35.    }  
36.    catch(Exception e)  
37.    {}  
38.    %>  
39.</center>  
40.</body>  
41.</html> 
--------------------------- login_conf.jsp------------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="org.sky.darkness.note.factory.*"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<jsp:useBean id="person" scope="page" class="org.sky.darkness.note.vo.Person"/>
<jsp:setProperty name="person" property="*"/>
<%
try
{
// 跳转
if(DAOFactory.getPersonDAOInstance().login(person))
{
// 设置用户姓名到session范围之中
session.setAttribute("uname",person.getName()) ;
// 用户合法
%>
<jsp:forward page="login_success.jsp"/>
<%
}
else
{
// 用户非法
%>
<jsp:forward page="login.jsp"/>
<%
}
}
catch(Exception e)
{}
%>
</center>
</body>
</html>


Java代码
1.------------------login_success.jsp------------------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<html>  
4.<head>  
5.    <title>JSP+DAO 留言管理程序——登陆</title>  
6.</head>  
7.<body>  
8.<center>  
9.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
10.    <hr>  
11.    <br>  
12.    <%  
13.        if(session.getAttribute("uname")!=null)  
14.        {  
15.            // 用户已登陆  
16.    %>  
17.            <h2>登陆成功</h2>  
18.            <h2>欢迎<font color="red" size="12">  
19.                <%=session.getAttribute("uname")%>  
20.            </font>光临留言程序</h2>  
21.            <h3><a href="list_notes.jsp">进入留言管理页面</a></h3>  
22.    <%  
23.        }  
24.        else 
25.        {  
26.            // 用户未登陆,提示用户登陆,并跳转  
27.            response.setHeader("refresh","2;URL=login.jsp") ;  
28.    %>  
29.            您还未登陆,请先登陆!!!<br>  
30.            两秒后自动跳转到登陆窗口!!!<br>  
31.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
32.    <%  
33.        }  
34.    %>  
35.</center>  
36.</body>  
37.</html> 
------------------login_success.jsp------------------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<h2>登陆成功</h2>
<h2>欢迎<font color="red" size="12">
<%=session.getAttribute("uname")%>
</font>光临留言程序</h2>
<h3><a href="list_notes.jsp">进入留言管理页面</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>


Java代码
1.------------------------insert.jsp------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<html>  
4.<head>  
5.    <title>JSP+DAO 留言管理程序——登陆</title>  
6.</head>  
7.<body>  
8.<center>  
9.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
10.    <hr>  
11.    <br>  
12.    <%  
13.        if(session.getAttribute("uname")!=null)  
14.        {  
15.            // 用户已登陆  
16.    %>  
17.    <form action="insert_do.jsp" method="post">  
18.        <table>  
19.            <tr>  
20.                <td colspan="2">添加新留言</td>  
21.            </tr>  
22.            <tr>  
23.                <td>标题:</td>  
24.                <td><input type="text" name="title"></td>  
25.            </tr>  
26.            <tr>  
27.                <td>作者:</td>  
28.                <td><input type="text" name="author"></td>  
29.            </tr>  
30.            <tr>  
31.                <td>内容:</td>  
32.                <td><textarea name="content" cols="30" rows="6"></textarea></td>  
33.            </tr>  
34.            <tr>  
35.                <td colspan="2">  
36.                    <input type="submit" value="添加">  
37.                    <input type="reset" value="重置">  
38.                </td>  
39.            </tr>  
40.        </table>  
41.    </form>  
42.    <h3><a href="list_notes.jsp">回到留言列表页</a></h3>  
43.    <%  
44.        }  
45.        else 
46.        {  
47.            // 用户未登陆,提示用户登陆,并跳转  
48.            response.setHeader("refresh","2;URL=login.jsp") ;  
49.    %>  
50.            您还未登陆,请先登陆!!!<br>  
51.            两秒后自动跳转到登陆窗口!!!<br>  
52.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
53.    <%  
54.        }  
55.    %>  
56.</center>  
57.</body>  
58.</html> 
------------------------insert.jsp------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<form action="insert_do.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新留言</td>
</tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author"></td>
</tr>
<tr>
<td>内容:</td>
<td><textarea name="content" cols="30" rows="6"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="添加">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<h3><a href="list_notes.jsp">回到留言列表页</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>


Java代码
1.--------------------insert_do.jsp---------------------------------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="org.sky.darkness.note.factory.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+DAO 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        // 进行乱码处理  
15.        request.setCharacterEncoding("GB2312") ;  
16.    %>  
17.    <%  
18.        if(session.getAttribute("uname")!=null)  
19.        {  
20.            // 用户已登陆  
21.    %>  
22.    <jsp:useBean id="note" scope="page" class="org.sky.darkrness.note.vo.Note"/>  
23.    <jsp:setProperty name="note" property="*"/>  
24.      
25.    <%  
26.            response.setHeader("refresh","2;URL=list_notes.jsp") ;  
27.            try 
28.            {  
29.                DAOFactory.getNoteDAOInstance().insert(note) ;  
30.    %>  
31.                留言添加成功,两秒后跳转到留言列表页!!!<br>  
32.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
33.    <%  
34.            }  
35.            catch(Exception e)  
36.            {  
37.    %>  
38.                留言添加失败,两秒后跳转到留言列表页!!!<br>  
39.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
40.    <%  
41.            }  
42.    %>  
43.    <%  
44.        }  
45.        else 
46.        {  
47.            // 用户未登陆,提示用户登陆,并跳转  
48.            response.setHeader("refresh","2;URL=login.jsp") ;  
49.    %>  
50.            您还未登陆,请先登陆!!!<br>  
51.            两秒后自动跳转到登陆窗口!!!<br>  
52.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
53.    <%  
54.        }  
55.    %>  
56.</center>  
57.</body>  
58.</html> 
--------------------insert_do.jsp---------------------------------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="org.sky.darkness.note.factory.*"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312") ;
%>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<jsp:useBean id="note" scope="page" class="org.sky.darkrness.note.vo.Note"/>
<jsp:setProperty name="note" property="*"/>

<%
response.setHeader("refresh","2;URL=list_notes.jsp") ;
try
{
DAOFactory.getNoteDAOInstance().insert(note) ;
%>
留言添加成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
catch(Exception e)
{
%>
留言添加失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>


Java代码
1.-------------------update.jsp-------------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="org.sky.darkness.note.factory.*"%>  
4.<%@ page import="org.sky.darkness.note.vo.*"%>  
5.<html>  
6.<head>  
7.    <title>JSP+DAO 留言管理程序——登陆</title>  
8.</head>  
9.<body>  
10.<center>  
11.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
12.    <hr>  
13.    <br>  
14.    <%  
15.        // 进行乱码处理  
16.        request.setCharacterEncoding("GB2312") ;  
17.    %>  
18.    <%  
19.        if(session.getAttribute("uname")!=null)  
20.        {  
21.            // 用户已登陆  
22.    %>         
23.    <%  
24.        // 接收参数  
25.        int id = 0 ;  
26.        try 
27.        {  
28.            id = Integer.parseInt(request.getParameter("id")) ;  
29.        }  
30.        catch(Exception e)  
31.        {}  
32.    %>  
33.    <%  
34.        Note note = null ;  
35.        try 
36.        {  
37.            note = DAOFactory.getNoteDAOInstance().queryById(id) ;  
38.        }  
39.        catch(Exception e)  
40.        {}  
41.    %>  
42.    <%  
43.            if(note!=null)  
44.            {  
45.                id = note.getId() ;  
46.                String title = note.getTitle() ;  
47.                String author = note.getAuthor() ;  
48.                String content = note.getContent() ;  
49.    %>  
50.    <form action="update_do.jsp" method="post">  
51.        <table>  
52.            <tr>  
53.                <td colspan="2">添加新留言</td>  
54.            </tr>  
55.            <tr>  
56.                <td>标题:</td>  
57.                <td><input type="text" name="title" value="<%=title%>"></td>  
58.            </tr>  
59.            <tr>  
60.                <td>作者:</td>  
61.                <td><input type="text" name="author" value="<%=author%>"></td>  
62.            </tr>  
63.            <tr>  
64.                <td>内容:</td>  
65.                <td><textarea name="content" cols="30" rows="6"><%=content%></textarea></td>  
66.            </tr>  
67.            <tr>  
68.                <td colspan="2">  
69.                    <input type="hidden" name="id" value="<%=id%>">  
70.                    <input type="submit" value="更新">  
71.                    <input type="reset" value="重置">  
72.                </td>  
73.            </tr>  
74.        </table>  
75.    </form>  
76.    <%  
77.            }  
78.            else 
79.            {  
80.    %>  
81.                没有发现,要更新的内容!!<br>  
82.                请确认要更新的留言是否存在!!<br>  
83.    <%  
84.            }  
85.    %>  
86.    <h3><a href="list_notes.jsp">回到留言列表页</a></h3>  
87.    <%  
88.        }  
89.        else 
90.        {  
91.            // 用户未登陆,提示用户登陆,并跳转  
92.            response.setHeader("refresh","2;URL=login.jsp") ;  
93.    %>  
94.            您还未登陆,请先登陆!!!<br>  
95.            两秒后自动跳转到登陆窗口!!!<br>  
96.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
97.    <%  
98.        }  
99.    %>  
100.</center>  
101.</body>  
102.</html> 
-------------------update.jsp-------------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="org.sky.darkness.note.factory.*"%>
<%@ page import="org.sky.darkness.note.vo.*"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312") ;
%>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<%
// 接收参数
int id = 0 ;
try
{
id = Integer.parseInt(request.getParameter("id")) ;
}
catch(Exception e)
{}
%>
<%
Note note = null ;
try
{
note = DAOFactory.getNoteDAOInstance().queryById(id) ;
}
catch(Exception e)
{}
%>
<%
if(note!=null)
{
id = note.getId() ;
String title = note.getTitle() ;
String author = note.getAuthor() ;
String content = note.getContent() ;
%>
<form action="update_do.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新留言</td>
</tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title" value="<%=title%>"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" value="<%=author%>"></td>
</tr>
<tr>
<td>内容:</td>
<td><textarea name="content" cols="30" rows="6"><%=content%></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="id" value="<%=id%>">
<input type="submit" value="更新">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<%
}
else
{
%>
没有发现,要更新的内容!!<br>
请确认要更新的留言是否存在!!<br>
<%
}
%>
<h3><a href="list_notes.jsp">回到留言列表页</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>


Java代码
1.-----------------------------update_do.jsp--------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="org.sky.darkness.note.factory.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+DAO 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        // 进行乱码处理  
15.        request.setCharacterEncoding("GB2312") ;  
16.    %>  
17.    <jsp:useBean id="note" scope="page" class="org.sky.darkness.note.vo.Note"/>  
18.    <jsp:setProperty name="note" property="*"/>  
19.    <%  
20.        if(session.getAttribute("uname")!=null)  
21.        {  
22.            // 用户已登陆  
23.    %>  
24.      
25.    <%  
26.            response.setHeader("refresh","2;URL=list_notes.jsp") ;  
27.            try 
28.            {  
29.                DAOFactory.getNoteDAOInstance().update(note) ;  
30.    %>  
31.                留言修改成功,两秒后跳转到留言列表页!!!<br>  
32.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
33.    <%  
34.            }  
35.            catch(Exception e)  
36.            {  
37.    %>  
38.                留言修改失败,两秒后跳转到留言列表页!!!<br>  
39.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
40.    <%  
41.            }  
42.    %>  
43.    <%  
44.        }  
45.        else 
46.        {  
47.            // 用户未登陆,提示用户登陆,并跳转  
48.            response.setHeader("refresh","2;URL=login.jsp") ;  
49.    %>  
50.            您还未登陆,请先登陆!!!<br>  
51.            两秒后自动跳转到登陆窗口!!!<br>  
52.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
53.    <%  
54.        }  
55.    %>  
56.</center>  
57.</body>  
58.</html> 
-----------------------------update_do.jsp--------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="org.sky.darkness.note.factory.*"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312") ;
%>
<jsp:useBean id="note" scope="page" class="org.sky.darkness.note.vo.Note"/>
<jsp:setProperty name="note" property="*"/>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>

<%
response.setHeader("refresh","2;URL=list_notes.jsp") ;
try
{
DAOFactory.getNoteDAOInstance().update(note) ;
%>
留言修改成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
catch(Exception e)
{
%>
留言修改失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>


Java代码
1.-------------------------list_notes.jsp--------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="java.util.*"%>  
4.<%@ page import="org.sky.darkness.note.factory.*"%>  
5.<%@ page import="org.sky.darkness.note.vo.*"%>  
6.<html>  
7.<head>  
8.    <title>JSP+DAO 留言管理程序——登陆</title>  
9.</head>  
10.<body>  
11.<center>  
12.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
13.    <hr>  
14.    <br>  
15.    <%  
16.        // 编码转换  
17.        request.setCharacterEncoding("GB2312") ;  
18.        if(session.getAttribute("uname")!=null)  
19.        {  
20.            // 用户已登陆  
21.    %>  
22.    <%  
23.        // 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示  
24.        int i = 0 ;  
25.        String sql = null;   
26.        String keyword = request.getParameter("keyword") ;  
27.        List all = null ;  
28.        try 
29.        {  
30.            if(keyword==null)  
31.            {  
32.                all = DAOFactory.getNoteDAOInstance().queryAll() ;  
33.            }  
34.            else 
35.            {  
36.                // 有查询条件  
37.                all = DAOFactory.getNoteDAOInstance().queryByLike(keyword) ;  
38.            }  
39.        }  
40.        catch(Exception e)  
41.        {  
42.            System.out.println(e) ;  
43.        }  
44.    %>  
45.<form action="list_notes.jsp" method="POST">  
46.    请输入查询内容:<input type="text" name="keyword">  
47.    <input type="submit" value="查询">  
48.</form>  
49.</h3><a href="insert.jsp">添加新留言</a></h3>  
50.<table width="80%" border="1">  
51.    <tr>  
52.        <td>留言ID</td>  
53.        <td>标题</td>  
54.        <td>作者</td>  
55.        <td>内容</td>  
56.        <td>删除</td>  
57.    </tr>  
58.    <%  
59.            Iterator iter = all.iterator() ;  
60.            while(iter.hasNext())  
61.            {  
62.                Note note = (Note)iter.next() ;  
63.                i++ ;  
64.                // 进行循环打印,打印出所有的内容,以表格形式  
65.                // 从数据库中取出内容  
66.                int id = note.getId() ;  
67.                String title = note.getTitle() ;  
68.                String author = note.getAuthor() ;  
69.                String content = note.getContent() ;  
70. 
71.                if(keyword!=null)  
72.                {  
73.                    // 需要将数据返红  
74.                    title = title.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;  
75.                    author = author.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;  
76.                    content = content.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;  
77.                }  
78.    %>  
79.                <tr>  
80.                    <td><%=id%></td>  
81.                    <td><a href="update.jsp?id=<%=id%>"><%=title%></a></td>  
82.                    <td><%=author%></td>  
83.                    <td><%=content%></td>  
84.                    <td><a href="delete_do.jsp?id=<%=id%>">删除</a></td>  
85.                </tr>  
86.    <%  
87.            }  
88.            // 判断i的值是否改变,如果改变,则表示有内容,反之,无内容  
89.            if(i==0)  
90.            {  
91.                // 进行提示  
92.    %>  
93.                <tr>  
94.                    <td colspan="5">没有任何内容!!!</td>  
95.                </tr>  
96.    <%  
97.            }  
98.    %>  
99.</table>  
100. 
101.    <%  
102.        }  
103.        else 
104.        {  
105.            // 用户未登陆,提示用户登陆,并跳转  
106.            response.setHeader("refresh","2;URL=login.jsp") ;  
107.    %>  
108.            您还未登陆,请先登陆!!!<br>  
109.            两秒后自动跳转到登陆窗口!!!<br>  
110.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
111.    <%  
112.        }  
113.    %>  
114.</center>  
115.</body>  
116.</html> 
-------------------------list_notes.jsp--------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="org.sky.darkness.note.factory.*"%>
<%@ page import="org.sky.darkness.note.vo.*"%>
<html>
<head>
<title>JSP+DAO 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + DAO实现</h1>
<hr>
<br>
<%
// 编码转换
request.setCharacterEncoding("GB2312") ;
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<%
// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0 ;
String sql = null;
String keyword = request.getParameter("keyword") ;
List all = null ;
try
{
if(keyword==null)
{
all = DAOFactory.getNoteDAOInstance().queryAll() ;
}
else
{
// 有查询条件
all = DAOFactory.getNoteDAOInstance().queryByLike(keyword) ;
}
}
catch(Exception e)
{
System.out.println(e) ;
}
%>
<form action="list_notes.jsp" method="POST">
请输入查询内容:<input type="text" name="keyword">
<input type="submit" value="查询">
</form>
</h3><a href="insert.jsp">添加新留言</a></h3>
<table width="80%" border="1">
<tr>
<td>留言ID</td>
<td>标题</td>
<td>作者</td>
<td>内容</td>
<td>删除</td>
</tr>
<%
Iterator iter = all.iterator() ;
while(iter.hasNext())
{
Note note = (Note)iter.next() ;
i++ ;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
int id = note.getId() ;
String title = note.getTitle() ;
String author = note.getAuthor() ;
String content = note.getContent() ;

if(keyword!=null)
{
// 需要将数据返红
title = title.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
author = author.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
content = content.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
}
%>
<tr>
<td><%=id%></td>
<td><a href="update.jsp?id=<%=id%>"><%=title%></a></td>
<td><%=author%></td>
<td><%=content%></td>
<td><a href="delete_do.jsp?id=<%=id%>">删除</a></td>
</tr>
<%
}
// 判断i的值是否改变,如果改变,则表示有内容,反之,无内容
if(i==0)
{
// 进行提示
%>
<tr>
<td colspan="5">没有任何内容!!!</td>
</tr>
<%
}
%>
</table>

<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>


Java代码
1.------------------------delete_do.jsp-----------------------------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="org.sky.darkness.note.factory.*"%>  
4. 
5.<html>  
6.<head>  
7.    <title>JSP+DAO 留言管理程序——登陆</title>  
8.</head>  
9.<body>  
10.<center>  
11.    <h1>留言管理范例 —— JSP + DAO实现</h1>  
12.    <hr>  
13.    <br>  
14.    <%  
15.        if(session.getAttribute("uname")!=null)  
16.        {  
17.            // 用户已登陆  
18.    %>     
19.      
20.    <%  
21.        // 接收参数  
22.        int id = 0 ;  
23.        try 
24.        {  
25.            id = Integer.parseInt(request.getParameter("id")) ;  
26.        }  
27.        catch(Exception e)  
28.        {}  
29.    %>  
30.    <%  
31.            response.setHeader("refresh","2;URL=list_notes.jsp") ;  
32.            try 
33.            {  
34.                DAOFactory.getNoteDAOInstance().delete(id) ;  
35.    %>  
36.                留言删除成功,两秒后跳转到留言列表页!!!<br>  
37.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
38.    <%  
39.            }  
40.            catch(Exception e)  
41.            {  
42.    %>  
43.                留言删除失败,两秒后跳转到留言列表页!!!<br>  
44.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
45.    <%  
46.            }  
47.    %>  
48.    <%  
49.        }  
50.        else 
51.        {  
52.            // 用户未登陆,提示用户登陆,并跳转  
53.            response.setHeader("refresh","2;URL=login.jsp") ;  
54.    %>  
55.            您还未登陆,请先登陆!!!<br>  
56.            两秒后自动跳转到登陆窗口!!!<br>  
57.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
58.    <%  
59.        }  
60.    %>  
61.</center>  
62.</body>  
63.</html> 
分享到:
评论

相关推荐

    JSP+DAO留言管理程序(代码+笔记)

    JSP+DAO留言管理程序(代码+笔记)

    李兴华-案例-jsp+DAO实现留言管理程序代码及笔记

    MLDN李兴华-案例-jsp+DAO实现留言管理程序代码及笔记

    MVC+DAO_留言管理程序(代码+笔记).

    MVC+DAO_留言管理程序(代码+笔记).

    JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记

    JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记

    JSP七个小项目代码和笔记汇总(java web).rar_Jsp/Servlet_java dao小项目_jsp_jsp小项目

    项目03_JSP+DAO留言管理程序(代码+笔记) 项目04_使用JSP基于数据库完成用户登陆(代码+笔记) 项目05_MVC+DAO_留言管理程序(代码+笔记) 项目06_使用JSP+DAO完成用户登陆(代码+笔记) 项目07_使用MVC+DAO完成用户登陆...

    JSP七个小项目源码和笔记汇总

    项目03_JSP+DAO留言管理程序(源码+笔记) 项目04_使用JSP基于数据库完成用户登陆(源码+笔记) 项目05_MVC+DAO_留言管理程序(源码+笔记) 项目06_使用JSP+DAO完成用户登陆(源码+笔记) 项目07_使用MVC+DAO完成用户登陆...

    JSP七个小项目代码和笔记汇总(java web).rar

    JSP七个小项目代码和笔记汇总(java web),包括项目01_JSP+JDBC留言管理程序(代码+笔记),项目02_使用JSP完成简单的登陆程序(代码+笔记),项目03_JSP+DAO留言管理程序(代码+笔记),项目04_使用JSP基于数据库完成用户...

    JSP七个小项目代码笔记精品汇总

    项目03_JSP+DAO留言管理程序(代码+笔记) 项目04_使用JSP基于数据库完成用户登陆(代码+笔记) 项目05_MVC+DAO_留言管理程序(代码+笔记) 项目06_使用JSP+DAO完成用户登陆(代码+笔记) 项目07_使用MVC+DAO完成用户登陆...

    7个 JSP小项目源代码和笔记资料汇总 项目总结 开发经验

     项目03_JSP+DAO留言管理程序(代码+笔记)  项目04_使用JSP基于数据库完成用户登陆(代码+笔记)  项目05_MVC+DAO_留言管理程序(代码+笔记)  项目06_使用JSP+DAO完成用户登陆(代码+笔记)  项目07_使用MVC+DAO...

    JSP DAO留言管理代码实例 笔记.rar

    JSP DAO留言管理代码实例 笔记,结合DAO设计模式,通过JSP DAO修改之前的留言管理程序,通过本程序修改之后,可以发现达到了显示与数据操作分离的目的,程序代码更易于维护.

    收集几个JSP开源小项目源码及笔记汇总.rar

    收集几个JSP开源小项目源码及学习笔记汇总,主要是JSP JDBC实现留言管理范例、基于数据库的登陆程序、SP DAO完成用户登陆、MVC DAO完成用户登陆、MVC DAO_留言管理程序、JSP完成简单的登陆程序(代码 笔记)、JSP DAO...

    J2EE框架_笔记_b

    16-留言管理程序_使用Struts + DAO + Hibernate完成笔记 17-Hibernate实体映射笔记 18-Hibernate复合主键笔记 20-22Hibernate_容器映射技术笔记 23-26Hibernate数据关联技术笔记 27-32Hibernate数据关联技术_1vs1...

    J2EE框架_笔记_c

    16-留言管理程序_使用Struts + DAO + Hibernate完成笔记 17-Hibernate实体映射笔记 18-Hibernate复合主键笔记 20-22Hibernate_容器映射技术笔记 23-26Hibernate数据关联技术笔记 27-32Hibernate数据关联技术_1vs1...

    J2EE三大框架_笔记_a

    16-留言管理程序_使用Struts + DAO + Hibernate完成笔记 17-Hibernate实体映射笔记 18-Hibernate复合主键笔记 20-22Hibernate_容器映射技术笔记 23-26Hibernate数据关联技术笔记 27-32Hibernate数据关联技术_1vs1...

    JSP七个小项目源码和笔记汇总.rar

    项目03_JSP DAO留言管理程序(源码 笔记) 项目04_使用JSP基于数据库完成用户登陆(源码 笔记) 项目05_MVC DAO_留言管理程序(源码 笔记) 项目06_使用JSP DAO完成用户登陆(源码 笔记) 项目07_使用MVC DAO完成用户...

    MLDN框架笔记大全

    MLDN框架笔记大全 JSP+JDBC_假分页 02 JSP+JDBC_真分页(基于MySQL数据库分页) 03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) 04 Struts入门 05 使用Struts + DAO完成用户登陆 06 Struts标签-...

    javaEE框架笔记,识货人下

    11-留言管理程序_使用Struts + DAO完成笔记.pdf 12-Struts + DAO分页笔记.pdf 13-Hibernate入门(上)笔记.pdf 14-Hibernate入门(下)笔记.pdf 15-Hibernate数据检索(HQL)笔记.pdf 16-留言管理程序_使用Struts + ...

    JSP七个小项目代码和笔记汇总(java web)

    JSP七个小项目代码和笔记汇总:项目01_JSP+JDBC留言管理程序(代码+笔记),项目02_使用JSP完成简单的登陆程序(代码+笔记),项目03_JSP+DAO留言管理程序(代码+笔记),项目04_使用JSP基于数据库完成用户登陆(代码+笔记)等等

    [JSP暑假实训] 五.MyEclipse+Servlet+JSP实现火车票网站注册操作、登陆验证、查询更新删除操作

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础、网页布局、数据库基础、Servlet、前端后台数据库交互、DAO等知识。 前一篇文章讲解了MyEclipse+Servlet+JSP实现...

Global site tag (gtag.js) - Google Analytics