`

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

    博客分类:
  • JSP
阅读更多
JSP+JDBC留言管理程序

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','could','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','could','mmmmmm') ;

-- 事务提交
commit ;


Java代码
1.--------------------------login.jsp--------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<html>  
4.<head>  
5.    <title>JSP+JDBC 留言管理程序——登陆</title>  
6.</head>  
7.<body>  
8.<center>  
9.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
10.    <hr>  
11.    <br>  
12.    <%  
13.        // 判断是否有错误信息,如果有则打印  
14.        // 如果没有此段代码,则显示时会直接打印null  
15.        if(request.getAttribute("err")!=null)  
16.        {  
17.    %>  
18.            <h2><%=request.getAttribute("err")%></h2>  
19.    <%  
20.        }  
21.    %>  
22.    <form action="login_conf.jsp" method="post">  
23.    <table width="80%">  
24.    <tr>  
25.        <td colspan="2">用户登陆</td>  
26.    </tr>  
27.    <tr>  
28.        <td>用户名:</td>  
29.        <td><input type="text" name="id"></td>  
30.    </tr>  
31.    <tr>  
32.        <td>密&nbsp;&nbsp;码:</td>  
33.        <td><input type="password" name="password"></td>  
34.    </tr>  
35.    <tr>  
36.        <td colspan="2">  
37.            <input type="submit" value="登陆">  
38.            <input type="reset" value="重置">  
39.        </td>  
40.    </tr>  
41.    </table>  
42.    </form>  
43.</center>  
44.</body>  
45.</html> 
--------------------------login.jsp--------------------
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</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="java.sql.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+JDBC 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%!  
14.        String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
15.        String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
16.        String DBUSER           = "scott" ;  
17.        String DBPASSWORD       = "darkness" ;  
18.        Connection conn         = null ;  
19.        PreparedStatement pstmt = null ;  
20.        ResultSet rs            = null ;  
21.    %>  
22.    <%  
23.        // 声明一个boolean变量,用于保存用户是否合法的状态  
24.        boolean flag = false ;  
25. 
26.        // 接收参数  
27.        String id = request.getParameter("id") ;  
28.        String password = request.getParameter("password") ;  
29.    %>  
30.    <%  
31.        String sql = "SELECT name FROM person WHERE id=? and password=?" ;  
32.        try {  
33.            Class.forName(DBDRIVER) ;  
34.            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
35.            pstmt = conn.prepareStatement(sql) ;  
36.            pstmt.setString(1,id) ;  
37.            pstmt.setString(2,password) ;  
38.            rs = pstmt.executeQuery() ;  
39.            if (rs.next()) {  
40.                // 用户合法  
41.                flag = true ;  
42.                // 将用户名保存在session之中  
43.                session.setAttribute("uname",rs.getString(1)) ;  
44.            } else {  
45.                // 保存错误信息  
46.                request.setAttribute("err","错误的用户名及密码!!!") ;  
47.            }  
48.            rs.close() ;  
49.            pstmt.close() ;  
50.            conn.close() ;  
51.        } catch (Exception e) {  
52.        }  
53.    %>  
54.    <%  
55.        // 跳转  
56.        if (flag) {  
57.            // 用户合法  
58.    %>  
59.            <jsp:forward page="login_success.jsp"/>  
60.    <%  
61.        } else {  
62.            // 用户非法  
63.    %>  
64.            <jsp:forward page="login.jsp"/>  
65.    <%  
66.        }  
67.    %>  
68.</center>  
69.</body>  
70.</html> 
----------------login_conf.jsp----------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</h1>
<hr>
<br>
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
String DBUSER = "scott" ;
String DBPASSWORD = "darkness" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
<%
// 声明一个boolean变量,用于保存用户是否合法的状态
boolean flag = false ;

// 接收参数
String id = request.getParameter("id") ;
String password = request.getParameter("password") ;
%>
<%
String sql = "SELECT name FROM person WHERE id=? and password=?" ;
try {
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,id) ;
pstmt.setString(2,password) ;
rs = pstmt.executeQuery() ;
if (rs.next()) {
// 用户合法
flag = true ;
// 将用户名保存在session之中
session.setAttribute("uname",rs.getString(1)) ;
} else {
// 保存错误信息
request.setAttribute("err","错误的用户名及密码!!!") ;
}
rs.close() ;
pstmt.close() ;
conn.close() ;
} catch (Exception e) {
}
%>
<%
// 跳转
if (flag) {
// 用户合法
%>
<jsp:forward page="login_success.jsp"/>
<%
} else {
// 用户非法
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
</center>
</body>
</html>


Java代码
1.----------------login_success.jsp------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<html>  
4.<head>  
5.    <title>JSP+JDBC 留言管理程序——登陆</title>  
6.</head>  
7.<body>  
8.<center>  
9.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
10.    <hr>  
11.    <br>  
12.    <%  
13.        if(session.getAttribute("uname")!=null) {  
14.            // 用户已登陆  
15.    %>  
16.            <h2>登陆成功</h2>  
17.            <h2>欢迎<font color="red" size="12">  
18.                <%=session.getAttribute("uname")%>  
19.            </font>光临 留言程序</h2>  
20.            <h3><a href="list_notes.jsp">进入留言管理页面</a></h3>  
21.    <%  
22.        } else {  
23.            // 用户未登陆,提示用户登陆,并跳转  
24.            response.setHeader("refresh","2;URL=login.jsp") ;  
25.    %>  
26.            您还未登陆,请先登陆!!!<br>  
27.            两秒后自动跳转到登陆窗口!!!<br>  
28.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
29.    <%  
30.        }  
31.    %>  
32.</center>  
33.</body>  
34.</html> 
----------------login_success.jsp------------
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</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+JDBC 留言管理程序——登陆</title>  
6.</head>  
7.<body>  
8.<center>  
9.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
10.    <hr>  
11.    <br>  
12.    <%  
13.        if(session.getAttribute("uname")!=null) {  
14.            // 用户已登陆  
15.    %>  
16.    <form action="insert_do.jsp" method="post">  
17.        <table>  
18.            <tr>  
19.                <td colspan="2">添加新留言</td>  
20.            </tr>  
21.            <tr>  
22.                <td>标题:</td>  
23.                <td><input type="text" name="title"></td>  
24.            </tr>  
25.            <tr>  
26.                <td>作者:</td>  
27.                <td><input type="text" name="author"></td>  
28.            </tr>  
29.            <tr>  
30.                <td>内容:</td>  
31.                <td><textarea name="content" cols="30" rows="6"></textarea></td>  
32.            </tr>  
33.            <tr>  
34.                <td colspan="2">  
35.                    <input type="submit" value="添加">  
36.                    <input type="reset" value="重置">  
37.                </td>  
38.            </tr>  
39.        </table>  
40.    </form>  
41.    <h3><a href="list_notes.jsp">回到留言列表页</a></h3>  
42.    <%  
43.        } else {  
44.            // 用户未登陆,提示用户登陆,并跳转  
45.            response.setHeader("refresh","2;URL=login.jsp") ;  
46.    %>  
47.            您还未登陆,请先登陆!!!<br>  
48.            两秒后自动跳转到登陆窗口!!!<br>  
49.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
50.    <%  
51.        }  
52.    %>  
53.</center>  
54.</body>  
55.</html> 
-------------------------insert.jsp------------------
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</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="java.sql.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+JDBC 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        // 进行乱码处理  
15.        request.setCharacterEncoding("GB2312") ;  
16.    %>  
17.    <%  
18.        if(session.getAttribute("uname")!=null) {  
19.            // 用户已登陆  
20.    %>  
21.    <%!  
22.        String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
23.        String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
24.        String DBUSER           = "scott" ;  
25.        String DBPASSWORD       = "tiger" ;  
26.        Connection conn         = null ;  
27.        PreparedStatement pstmt = null ;  
28.    %>  
29.    <%  
30.        // 声明一个boolean变量  
31.        boolean flag = false ;  
32. 
33.        // 接收参数  
34.        String title = request.getParameter("title") ;  
35.        String author = request.getParameter("author") ;  
36.        String content = request.getParameter("content") ;  
37.    %>  
38.    <%  
39.        // 现在note表中的主键是sequence生成  
40.        String sql = "INSERT INTO note VALUES(note_sequ.nextVal,?,?,?)" ;  
41.        try {  
42.            Class.forName(DBDRIVER) ;  
43.            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
44.            pstmt = conn.prepareStatement(sql) ;  
45.            pstmt.setString(1,title) ;  
46.            pstmt.setString(2,author) ;  
47.            pstmt.setString(3,content) ;  
48.            pstmt.executeUpdate() ;  
49.            pstmt.close() ;  
50.            conn.close() ;  
51.            // 如果插入成功,则肯定能执行到此段代码  
52.            flag = true ;  
53.        } catch(Exception e) {  
54.        }  
55.    %>  
56.    <%  
57.            response.setHeader("refresh","2;URL=list_notes.jsp") ;  
58.            if(flag) {  
59.    %>  
60.                留言添加成功,两秒后跳转到留言列表页!!!<br>  
61.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
62.    <%  
63.            } else {  
64.    %>  
65.                留言添加失败,两秒后跳转到留言列表页!!!<br>  
66.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
67.    <%  
68.            }  
69.    %>  
70.    <%  
71.        } else {  
72.            // 用户未登陆,提示用户登陆,并跳转  
73.            response.setHeader("refresh","2;URL=login.jsp") ;  
74.    %>  
75.            您还未登陆,请先登陆!!!<br>  
76.            两秒后自动跳转到登陆窗口!!!<br>  
77.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
78.    <%  
79.        }  
80.    %>  
81.</center>  
82.</body>  
83.</html> 
--------------------------insert_do.jsp--------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</h1>
<hr>
<br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312") ;
%>
<%
if(session.getAttribute("uname")!=null) {
// 用户已登陆
%>
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
String DBUSER = "scott" ;
String DBPASSWORD = "tiger" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
%>
<%
// 声明一个boolean变量
boolean flag = false ;

// 接收参数
String title = request.getParameter("title") ;
String author = request.getParameter("author") ;
String content = request.getParameter("content") ;
%>
<%
// 现在note表中的主键是sequence生成
String sql = "INSERT INTO note VALUES(note_sequ.nextVal,?,?,?)" ;
try {
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,title) ;
pstmt.setString(2,author) ;
pstmt.setString(3,content) ;
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
// 如果插入成功,则肯定能执行到此段代码
flag = true ;
} catch(Exception e) {
}
%>
<%
response.setHeader("refresh","2;URL=list_notes.jsp") ;
if(flag) {
%>
留言添加成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
} else {
%>
留言添加失败,两秒后跳转到留言列表页!!!<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="java.sql.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+JDBC 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        if(session.getAttribute("uname")!=null) {  
15.            // 用户已登陆  
16.    %>     
17.    <%!  
18.        String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
19.        String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
20.        String DBUSER           = "scott" ;  
21.        String DBPASSWORD       = "tiger" ;  
22.        Connection conn         = null ;  
23.        PreparedStatement pstmt = null ;  
24.        ResultSet rs            = null ;  
25.    %>  
26.    <%  
27.        // 接收参数  
28.        int id = 0 ;  
29.        try {  
30.            id = Integer.parseInt(request.getParameter("id")) ;  
31.        } catch(Exception e) {  
32.        }  
33.    %>  
34.    <%  
35.        // 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示  
36.        int i = 0 ;  
37.        String sql = "SELECT id,title,author,content FROM note WHERE id=?" ;  
38.        try {  
39.            Class.forName(DBDRIVER) ;  
40.            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
41.            pstmt = conn.prepareStatement(sql) ;  
42.            // 设置查询条件  
43.            pstmt.setInt(1,id) ;  
44.            rs = pstmt.executeQuery() ;  
45.    %>  
46.    <%  
47.            if(rs.next()) {  
48.                i++ ;  
49.                // 进行循环打印,打印出所有的内容,以表格形式  
50.                // 从数据库中取出内容  
51.                id = rs.getInt(1) ;  
52.                String title = rs.getString(2) ;  
53.                String author = rs.getString(3) ;  
54.                String content = rs.getString(4) ;  
55.    %>  
56.    <form action="update_do.jsp" method="post">  
57.        <table>  
58.            <tr>  
59.                <td colspan="2">添加新留言</td>  
60.            </tr>  
61.            <tr>  
62.                <td>标题:</td>  
63.                <td><input type="text" name="title" value="<%=title%>"></td>  
64.            </tr>  
65.            <tr>  
66.                <td>作者:</td>  
67.                <td><input type="text" name="author" value="<%=author%>"></td>  
68.            </tr>  
69.            <tr>  
70.                <td>内容:</td>  
71.                <td><textarea name="content" cols="30" rows="6"><%=content%></textarea></td>  
72.            </tr>  
73.            <tr>  
74.                <td colspan="2">  
75.                    <input type="hidden" name="id" value="<%=id%>">  
76.                    <input type="submit" value="更新">  
77.                    <input type="reset" value="重置">  
78.                </td>  
79.            </tr>  
80.        </table>  
81.    </form>  
82.    <%  
83.            } else {  
84.    %>  
85.                没有发现,要更新的内容!!<br>  
86.                请确认要更新的留言是否存在!!<br>  
87.    <%  
88.            }  
89.    %>  
90.    <%  
91.            rs.close() ;  
92.            pstmt.close() ;  
93.            conn.close() ;  
94.        } catch(Exception e) {  
95.        }  
96.    %>  
97.    <h3><a href="list_notes.jsp">回到留言列表页</a></h3>  
98.    <%  
99.        } else {  
100.            // 用户未登陆,提示用户登陆,并跳转  
101.            response.setHeader("refresh","2;URL=login.jsp") ;  
102.    %>  
103.            您还未登陆,请先登陆!!!<br>  
104.            两秒后自动跳转到登陆窗口!!!<br>  
105.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
106.    <%  
107.        }  
108.    %>  
109.</center>  
110.</body>  
111.</html> 
---------------------------update.jsp-----------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null) {
// 用户已登陆
%>
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
String DBUSER = "scott" ;
String DBPASSWORD = "tiger" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
<%
// 接收参数
int id = 0 ;
try {
id = Integer.parseInt(request.getParameter("id")) ;
} catch(Exception e) {
}
%>
<%
// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0 ;
String sql = "SELECT id,title,author,content FROM note WHERE id=?" ;
try {
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 设置查询条件
pstmt.setInt(1,id) ;
rs = pstmt.executeQuery() ;
%>
<%
if(rs.next()) {
i++ ;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
id = rs.getInt(1) ;
String title = rs.getString(2) ;
String author = rs.getString(3) ;
String content = rs.getString(4) ;
%>
<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>
<%
}
%>
<%
rs.close() ;
pstmt.close() ;
conn.close() ;
} catch(Exception e) {
}
%>
<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="java.sql.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+JDBC 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        // 进行乱码处理  
15.        request.setCharacterEncoding("GB2312") ;  
16.    %>  
17.    <%  
18.        if(session.getAttribute("uname")!=null) {  
19.            // 用户已登陆  
20.    %>  
21.    <%!  
22.        String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
23.        String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
24.        String DBUSER           = "scott" ;  
25.        String DBPASSWORD       = "tiger" ;  
26.        Connection conn         = null ;  
27.        PreparedStatement pstmt = null ;  
28.    %>  
29.    <%  
30.        // 声明一个boolean变量  
31.        boolean flag = false ;  
32. 
33.        // 接收参数  
34.        String title = request.getParameter("title") ;  
35.        String author = request.getParameter("author") ;  
36.        String content = request.getParameter("content") ;  
37.        int id = 0 ;  
38.        try {  
39.            id = Integer.parseInt(request.getParameter("id")) ;  
40.        } catch(Exception e) {  
41.        }  
42.    %>  
43.    <%  
44.        // 更新note表中的数据  
45.        String sql = "UPDATE note set title=?,author=?,content=? WHERE id=?" ;  
46.        try {  
47.            Class.forName(DBDRIVER) ;  
48.            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
49.            pstmt = conn.prepareStatement(sql) ;  
50.            pstmt.setString(1,title) ;  
51.            pstmt.setString(2,author) ;  
52.            pstmt.setString(3,content) ;  
53.            pstmt.setInt(4,id);  
54.            pstmt.executeUpdate() ;  
55.            pstmt.close() ;  
56.            conn.close() ;  
57.            // 如果修改成功,则肯定能执行到此段代码  
58.            flag = true ;  
59.        } catch(Exception e) {  
60.        }  
61.    %>  
62.    <%  
63.            response.setHeader("refresh","2;URL=list_notes.jsp") ;  
64.            if(flag) {  
65.    %>  
66.                留言修改成功,两秒后跳转到留言列表页!!!<br>  
67.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
68.    <%  
69.            } else {  
70.    %>  
71.                留言修改失败,两秒后跳转到留言列表页!!!<br>  
72.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
73.    <%  
74.            }  
75.    %>  
76.    <%  
77.        } else {  
78.            // 用户未登陆,提示用户登陆,并跳转  
79.            response.setHeader("refresh","2;URL=login.jsp") ;  
80.    %>  
81.            您还未登陆,请先登陆!!!<br>  
82.            两秒后自动跳转到登陆窗口!!!<br>  
83.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
84.    <%  
85.        }  
86.    %>  
87.</center>  
88.</body>  
89.</html> 
-------------------------- update_do.jsp-----------------------------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</h1>
<hr>
<br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312") ;
%>
<%
if(session.getAttribute("uname")!=null) {
// 用户已登陆
%>
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
String DBUSER = "scott" ;
String DBPASSWORD = "tiger" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
%>
<%
// 声明一个boolean变量
boolean flag = false ;

// 接收参数
String title = request.getParameter("title") ;
String author = request.getParameter("author") ;
String content = request.getParameter("content") ;
int id = 0 ;
try {
id = Integer.parseInt(request.getParameter("id")) ;
} catch(Exception e) {
}
%>
<%
// 更新note表中的数据
String sql = "UPDATE note set title=?,author=?,content=? WHERE id=?" ;
try {
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,title) ;
pstmt.setString(2,author) ;
pstmt.setString(3,content) ;
pstmt.setInt(4,id);
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
// 如果修改成功,则肯定能执行到此段代码
flag = true ;
} catch(Exception e) {
}
%>
<%
response.setHeader("refresh","2;URL=list_notes.jsp") ;
if(flag) {
%>
留言修改成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
} else {
%>
留言修改失败,两秒后跳转到留言列表页!!!<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.----------------------delete_do.jsp--------------------  
2.<%@ page contentType="text/html;charset=gb2312"%>  
3.<%@ page import="java.sql.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+JDBC 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        if(session.getAttribute("uname")!=null) {  
15.            // 用户已登陆  
16.    %>     
17.    <%!  
18.        String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
19.        String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
20.        String DBUSER           = "scott" ;  
21.        String DBPASSWORD       = "tiger" ;  
22.        Connection conn         = null ;  
23.        PreparedStatement pstmt = null ;  
24.    %>  
25.    <%  
26.        // 接收参数  
27.        int id = 0 ;  
28.        try {  
29.            id = Integer.parseInt(request.getParameter("id")) ;  
30.        } catch(Exception e) {  
31.        }  
32.    %>  
33.    <%  
34.        String sql = "DELETE FROM note WHERE id=?" ;  
35.        boolean flag = false ;  
36.        try {  
37.            Class.forName(DBDRIVER) ;  
38.            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
39.            pstmt = conn.prepareStatement(sql) ;  
40.            // 设置删除条件  
41.            pstmt.setInt(1,id) ;  
42.            pstmt.executeUpdate() ;           
43.            pstmt.close() ;  
44.            conn.close() ;  
45.            flag = true ;  
46.        } catch(Exception e) {  
47.        }  
48.    %>  
49.    <%  
50.            response.setHeader("refresh","2;URL=list_notes.jsp") ;  
51.            if(flag) {  
52.    %>  
53.                留言删除成功,两秒后跳转到留言列表页!!!<br>  
54.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
55.    <%  
56.            } else {  
57.    %>  
58.                留言删除失败,两秒后跳转到留言列表页!!!<br>  
59.                如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!  
60.    <%  
61.            }  
62.    %>  
63.    <%  
64.        } else {  
65.            // 用户未登陆,提示用户登陆,并跳转  
66.            response.setHeader("refresh","2;URL=login.jsp") ;  
67.    %>  
68.            您还未登陆,请先登陆!!!<br>  
69.            两秒后自动跳转到登陆窗口!!!<br>  
70.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
71.    <%  
72.        }  
73.    %>  
74.</center>  
75.</body>  
76.</html> 
----------------------delete_do.jsp--------------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null) {
// 用户已登陆
%>
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
String DBUSER = "scott" ;
String DBPASSWORD = "tiger" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
%>
<%
// 接收参数
int id = 0 ;
try {
id = Integer.parseInt(request.getParameter("id")) ;
} catch(Exception e) {
}
%>
<%
String sql = "DELETE FROM note WHERE id=?" ;
boolean flag = false ;
try {
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 设置删除条件
pstmt.setInt(1,id) ;
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
flag = true ;
} catch(Exception e) {
}
%>
<%
response.setHeader("refresh","2;URL=list_notes.jsp") ;
if(flag) {
%>
留言删除成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
} else {
%>
留言删除失败,两秒后跳转到留言列表页!!!<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.sql.*"%>  
4.<html>  
5.<head>  
6.    <title>JSP+JDBC 留言管理程序——登陆</title>  
7.</head>  
8.<body>  
9.<center>  
10.    <h1>留言管理范例 —— JSP + JDBC实现</h1>  
11.    <hr>  
12.    <br>  
13.    <%  
14.        // 编码转换  
15.        request.setCharacterEncoding("GB2312") ;  
16.        if(session.getAttribute("uname")!=null) {  
17.            // 用户已登陆  
18.    %>  
19.    <%!  
20.        String DBDRIVER         = "oracle.jdbc.driver.OracleDriver" ;  
21.        String DBURL            = "jdbc:oracle:thin:@localhost:1521:sky" ;  
22.        String DBUSER           = "scott" ;  
23.        String DBPASSWORD       = "tiger" ;  
24.        Connection conn         = null ;  
25.        PreparedStatement pstmt = null ;  
26.        ResultSet rs            = null ;  
27.    %>  
28.    <%  
29.        // 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示  
30.        int i = 0 ;  
31.        String sql = null;   
32.        String keyword = request.getParameter("keyword") ;  
33.        // out.println(keyword) ;  
34.        if(keyword==null) {  
35.            // 没有任何查询条件  
36.            sql = "SELECT id,title,author,content FROM note" ;  
37.        } else {  
38.            // 有查询条件  
39.            sql = "SELECT id,title,author,content FROM note WHERE title like ? or author like ? or content like ?" ;  
40.        }  
41.          
42.        try {  
43.            Class.forName(DBDRIVER) ;  
44.            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
45.            pstmt = conn.prepareStatement(sql) ;  
46. 
47.            // 如果存在查询内容,则需要设置查询条件  
48.            if(keyword!=null) {  
49.                // 存在查询条件  
50.                pstmt.setString(1,"%"+keyword+"%") ;  
51.                pstmt.setString(2,"%"+keyword+"%") ;  
52.                pstmt.setString(3,"%"+keyword+"%") ;  
53.            }  
54. 
55.            rs = pstmt.executeQuery() ;  
56.    %>  
57.<form action="list_notes.jsp" method="POST">  
58.    请输入查询内容:<input type="text" name="keyword">  
59.    <input type="submit" value="查询">  
60.</form>  
61.</h3><a href="insert.jsp">添加新留言</a></h3>  
62.<table width="80%" border="1">  
63.    <tr>  
64.        <td>留言ID</td>  
65.        <td>标题</td>  
66.        <td>作者</td>  
67.        <td>内容</td>  
68.        <td>删除</td>  
69.    </tr>  
70.    <%  
71.            while(rs.next()) {  
72.                i++ ;  
73.                // 进行循环打印,打印出所有的内容,以表格形式  
74.                // 从数据库中取出内容  
75.                int id = rs.getInt(1) ;  
76.                String title = rs.getString(2) ;  
77.                String author = rs.getString(3) ;  
78.                String content = rs.getString(4) ;  
79. 
80.                if(keyword!=null) {  
81.                    // 需要将数据返红  
82.                    title = title.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;  
83.                    author = author.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;  
84.                    content = content.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;  
85.                }  
86.    %>  
87.                <tr>  
88.                    <td><%=id%></td>  
89.                    <td><a href="update.jsp?id=<%=id%>"><%=title%></a></td>  
90.                    <td><%=author%></td>  
91.                    <td><%=content%></td>  
92.                    <td><a href="delete_do.jsp?id=<%=id%>">删除</a></td>  
93.                </tr>  
94.    <%  
95.            }  
96.            // 判断i的值是否改变,如果改变,则表示有内容,反之,无内容  
97.            if(i==0) {  
98.                // 进行提示  
99.    %>  
100.                <tr>  
101.                    <td colspan="5">没有任何内容!!!</td>  
102.                </tr>  
103.    <%  
104.            }  
105.    %>  
106.</table>  
107.    <%  
108.            rs.close() ;  
109.            pstmt.close() ;  
110.            conn.close() ;  
111.        }  
112.        catch(Exception e) {  
113.        }  
114.    %>  
115.    <%  
116.        } else {  
117.            // 用户未登陆,提示用户登陆,并跳转  
118.            response.setHeader("refresh","2;URL=login.jsp") ;  
119.    %>  
120.            您还未登陆,请先登陆!!!<br>  
121.            两秒后自动跳转到登陆窗口!!!<br>  
122.            如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>  
123.    <%  
124.        }  
125.    %>  
126.</center>  
127.</body>  
128.</html> 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics