JSP留言板作业(jdbc+mysql)
- 格式:doc
- 大小:708.05 KB
- 文档页数:36
JSP中使⽤JDBC连接MySQL数据库的详细步骤1,⾸先在⾃⼰新建的项⽬⽂本框中输⼊Web Project的名称,然后单击下⼀步。
2,继续单击下⼀步3,把Generate web.xml deployment descriptor复选框勾上。
4,单击Finish,完成Web project⼯程的创建。
5,打开MyEclipse Datebase Explore,如图所⽰6,按图中所⽰填写各项内容,并通过Add JARS添加相应的数据库驱动程序。
7,通过Test Driver测试驱动是否连接成功,需要输⼊密码。
成功后如下图所⽰8,单击Finish完成数据库的连接,右击选择Open Database Connection,输⼊密码后,并单击OK9,接下来需要在创建的⽬录中添加MySQL数据库驱动,需要将相应的MySQL数据库驱动粘贴到WEB-INF/lib⽂件夹下。
10,通过右击mysql-connectior-java-5.1.6.jar,在Build Path中单击Add to Build Path11,在index.jsp中输⼊如下代码,并配置相应mySQL数据库数据<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page import="java.sql.*" %><body><%String driver = "com.mysql.jdbc.Driver";// URL指向要访问的数据库名test1String url = "jdbc:mysql://127.0.0.1:3306/test";// MySQL配置时的⽤户名String user = "root";// Java连接MySQL配置时的密码String password = "111";try {// 1 加载驱动程序Class.forName(driver);// 2 连接数据库Connection conn = DriverManager.getConnection(url, user, password);// 3 ⽤来执⾏SQL语句Statement statement = conn.createStatement();// 要执⾏的SQL语句String sql = "select * from login";ResultSet rs = statement.executeQuery(sql);String name = null;String mima=null;while (rs.next()) {name = rs.getString("userName");mima = rs.getString("passWord");out.println(name+"\t"+mima);}rs.close();conn.close();} catch (ClassNotFoundException e) {System.out.println("Sorry,can`t find the Driver!");e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}%></body>12,这样就运⾏成功了,对于出现8080端⼝号被占⽤,可以采⽤如下的⽅法进⾏删除对应的进程。
河北大学工商学院数据库课程设计学部学科门类专业班级学号姓名2012年05月20日目录1.需求分析 (3)1.1系统需求和功能............................................................................................. 错误!未定义书签。
1.2数据字典......................................................................................................... 错误!未定义书签。
1.2.1数据结构............................................................................................. 错误!未定义书签。
1.2.2数据项 (3)1.3数据流图 (4)1.4安全性要求 (4)1.5完整性要求 (4)2.系统设计概要 (5)2.1数据库概念结构设计和逻辑结构设计。
(5)3.数据库实施 (6)3.1.1各数据表说明 (6)3.1.2数据库创建 (7)4.用户界面设计和应用程序编码 (7)4.1用户界面设计 (7)4.2主要代码 (9)5.安装与使用说明 (13)5.1安装运行环境 (13)6.完成情况和总结 (19)6.1完成情况 (19)6.2总结 (19)留言管理系统1.需求分析1.1系统需求和功能设计一个简单的留言管理系统包括登陆界面,留言管理界面,写留言界面,删除,改留言界面,查询留言界面。
可以实现用户登录,增删改查留言。
1)需求概要:A可以有多个管理员登陆系统;B可以浏览留言内容;C实现增删改差留言;2)、系统功能包括:A用户登陆界面(从数据库验证用户是否为管理员)B留言界面(显示出所有的留言)C增加留言页面(可以增加留言)D删除留言界面(可以删除留言)E修改留言界面(可以修改留言界面的留言)F查询留言界面(可以通过关键字管理留言)1.2数据字典1.2.1数据结构用户=用户账号+用户密码留言=ID+标题+作者+内容1.2.2数据项编号标识符类型长度所属表名同义名1name Varchar 50 Liu 用户名2Id Int 10 Note 留言ID3author Varchar 50 Note 作者4Content Varchar 50 Note 留言内容1.2.2数据项 1.3数据流图用户信息查询字段1.4安全性要求用户访问数据库时需要输入登陆帐号和密码。
首先,搭建Jsp基本环境开发JSP网页,基本工具有:1、jdk-6-beta2-windows-i586.exe JDK JRE为java运行环境2、apache-tomcat6 支持JSP语言的服务器3、EditPlus 3.1中文破解版比较强大的文本编辑软件先安装JDK,安装完后,设置,右击桌面“我的电脑”--->“高级”选项卡--->单击“环境变量”,在下方系统变量,点击“新建”,依次创建如下键值对:1、变量名:CLASSPATH 值:C:\Java\jdk1.6.0\jre\lib\rt.jar;.; 前提是jdk 安装到c:\java下2、JAVA_HOME C:\Java\jdk1.6.0 3、PathC:\Java\jdk1.6.0\bin\然后按照tomcat6,装完后,打开C:\Tomcat 6.0\bin\tomcat6.exe,启动tomcat 服务,打开IE,输入,看是否有tomcat默认页面弹出设置tomcat虚拟目录的方法:<Context path="/web" docBase="D:\jspweb" debug="0" reloadable="true"></Context></Host>,打开C:\Tomcat 6.0\conf\server.xml,在</host>上一行,添加红色段,就完成添加虚拟目录(重启tomcat生效),虚拟目录为,所对应的物理路径是本机d:\jspweb目录下,需要在d:\jspweb下新建个名为WEB-INF文件夹,复制C:\Tomcat 6.0\webapps\ROOT\WEB-INF\web.xml到D:\jspweb\WEB-INF目录下,完成。
第二,MySQL安装版本:mysql-5.0.37-win32(为例,本人安装的是5.1.43版本,安装方法完全一样)我安装的mysql5目录为c:\mysql5,这样c:\java\jdk1.6.0(java环境),c:\tomcat5(平台),c:\mysql5(数据库),都在c盘根目录,比较好找,输入dos下命令路径也会比较短而显得清晰。
JSP连接MySQL数据库指导说明:首先,找到 Connector j\mysql-connector-java-5.1.34-bin.jar,因为电脑系统不一样,所以你们自己找到这个文件就行了,我的是在C:\Program Files(x86)\MySQL\MySQL,然后将Connectorj\mysql-connector-java-5.1.34-bin.jar拷贝到tomcat\lib文件夹下。
然后,新建一个jsp文件,将里面的内容改为如下代码:<%@ page language="java" contentType="text/html;charset=utf-8"pageEncoding="utf-8" import="java.sql.* "%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><title>Insert title here</title></head><body>This is my first jsp.这是我的第一个JSP文件。
<%String sql = "select * from ds1";String url = "jdbc:mysql://localhost/class";String username = "root";String password = "9527329";Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection(url, username, password);Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet rs = stmt.executeQuery(sql);while(rs.next()){out.println(rs.getInt(1));out.println(rs.getString(2));out.println(rs.getString(3));out.println(rs.getString(4));}rs.close();stmt.close();conn.close();%></body></html>由此代码,运行,即可读取到提前在数据库建立的表格ds1.以上内容只是我举得一个事例,具体的大家还要自己去研究,如果有什么不懂得,可以提问。
我写的一个用jsp连接MySQL数据库的代码。
要正确的使用这段代码,你需要首先在MySQL数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现JSP连接MySql数据库。
第一种方式,用JSP实现。
程序代码<%@ page contentType="text/html; charset=gb2312" language="java"import="java.sql.*"%><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><%//*********************************************** JDBC_ODBC连接MySql数据库,不需要设置数据源*********************************///********** 数据库连接代码开始******///以下几项请自行修改String server="localhost"; //MYSQL 服务器的地址String dbname="test"; //MYSQL 数据库的名字String user="root"; //MYSQL 数据库的登录用户名String pass="chfanwsp"; //MYSQL 数据库的登录密码String port="3306"; //SQL Server 服务器的端口号,默认为1433//数据库连接字符串String url="jdbc:mysql://"+server+":"+port+"/"+dbname+"?user="+user+"&password="+pass+"&useUnicode=tru e&characterEncoding=GB2312";//加载驱动程序Class.forName("org.gjt.mm.mysql.Driver").newInstance();//建立连接Connection conn= DriverManager.getConnection(url);//创建语句对象Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); // **** 数据库连接代码结束*******String sql="select * from username";ResultSet rs=stmt.executeQuery(sql);//rs.first();while(rs.next()){out.print("用户名:");out.print(rs.getString("uid")+" 密码:");out.println(rs.getString("pwd")+"<br>");}rs.close();stmt.close();conn.close();%>第二种方式,用JavaBean来实现。
LOGIN.JSP<%@ page contentType="text/html;charset=gb2312"%> <html><head><title>JSP+JDBC 留言管理程序――登陆</title></head><body><center><h1>留言管理范例―― JSP + JDBC实现</h1><hr><br><%// 判断是否有错误信息,如果有则打印// 如果没有此段代码,则显示时会直接打印nullif(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>密码:</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>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:three" ;String DBUSER = "scott" ;String DBPASSWORD = "tiger" ;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>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>光临MLDN留言程序</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>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><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>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:three" ; 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>LIST_NOTES.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:three" ;String DBUSER = "scott" ;String DBPASSWORD = "tiger" ;Connection conn = null ;PreparedStatement pstmt = null ;ResultSet rs = null ;%><%// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示int i = 0 ;String sql = null;String keyword = request.getParameter("keyword") ;// out.println(keyword) ;if(keyword==null){// 没有任何查询条件sql = "SELECT id,title,author,content FROM note" ;}else{// 有查询条件sql = "SELECT id,title,author,content FROM note WHERE title like ? or author like ? or content like ?" ;}try{Class.forName(DBDRIVER) ;conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ; pstmt = conn.prepareStatement(sql) ;// 如果存在查询内容,则需要设置查询条件if(keyword!=null){// 存在查询条件pstmt.setString(1,"%"+keyword+"%") ;pstmt.setString(2,"%"+keyword+"%") ;pstmt.setString(3,"%"+keyword+"%") ;}rs = pstmt.executeQuery() ;%><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><%while(rs.next()){i++ ;// 进行循环打印,打印出所有的内容,以表格形式// 从数据库中取出内容int id = rs.getInt(1) ;String title = rs.getString(2) ;String author = rs.getString(3) ;String content = rs.getString(4) ;if(keyword!=null){// 需要将数据返红title = title.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ; author = author.replaceAll(keyword,"<fontcolor=\"red\">"+keyword+"</font>") ;content = content.replaceAll(keyword,"<fontcolor=\"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><%rs.close() ;pstmt.close() ;conn.close() ;}catch(Exception e){}%><%}else{// 用户未登陆,提示用户登陆,并跳转response.setHeader("refresh","2;URL=login.jsp") ;%>您还未登陆,请先登陆!!!<br>两秒后自动跳转到登陆窗口!!!<br>如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br> <%}%></center></body></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:three" ;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>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:three" ; 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>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:three" ;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>-- 创建表-- 用户表(登陆)、留言表-- 删除表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 , -- sequencetitle varchar(20) not null ,author varchar(20) not null ,content varchar(50) not null) ;-- 插入测试数据INSERT INTO person VALUES ('LXH','李兴华','zzzzzz') ; INSERT INTO person VALUES ('MLDN','魔乐','mmmmmm') ;。
用Jsp + Servlet + JavaBean 做的一个简单的留言板,可以提交留言和查看留言。
注意,Servlet的配置问题。
<servlet>标签表示:这是一个servlet的声明<display-name>标签表示:该servlet的显示名称,不重要,可以不用配置<servlet-name>标签表示:该servlet在web容器中的名称,必需配置<servlet-class>标签表示:该servlet所对应java类的路径,必需配置<servlet-mapping>标签表示:该servlet在web容器中的映射,必需配置<servlet-name>标签表示:这个servlet映射所对应的是哪一个servlet,它就是需要填入上面的那个<servlet-name>标签中的值,必需配置<url-pattern>标签表示:这个servlet在web容器中的请求路径,必需配置追问:谢谢在麻烦您一下我有一个页面newTopic.jsp<form name="form1" action="newtopicservlet" method="post">然后servlet包里有个NewTopicServlet.java的servlet我要怎么写配置呢?回答:<servlet><servlet-name>NewTopicServlet</servlet-name><servlet-class>servlet.NewTopicServlet</servlet-class></servlet><servlet-mapping><servlet-name>NewTopicServlet</servlet-name><url-pattern>/NewTopicServlet</url-pattern></servlet-mapping>下面是一个例子:<%@page language="java"contentType="text/html" import="java.util.*"pageEncoding="utf-8"%><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>留言板页面</title></head><body background="image/abc.jpg"><form action="AddMessageServlet"method="post"><h1>留言板</h1><h3>留言者:<input type="text"name="author" size="30"></h3><h3>留言标题:<input type="text"name="title" size="30"></h3><h3>留言内容:</h3><textarea rows="15"cols="100" name="content"></textarea><p><h3><input type="submit"name="submit"value="提交" style="height:30px;width:80px">  <input type="reset"name="reset"value="重置" style="height:30px;width:80px">  <a href="showmessage.jsp">查看留言</a></h3></form></body></html><%@page import="bean.MessageBean"%><%@page language="java"contentType="text/html" import="java.util.*"pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>显示留言内容</title></head><body background="image/abc.jpg"><%ArrayList wordlist = (ArrayList)application.getAttribute("wordlist");if(wordlist == null || wordlist.size()==0){out.print("目前还没有留言!");%><a href="index.jsp"><h3>我要留言</h3></a><%}else{for(int i=wordlist.size()-1;i>=0;i--){MessageBean mm = (MessageBean)wordlist.get(i);%><h2>留言板内容</h2><h4>留言者:<%=mm.getAuthor() %></h4><h4>留言时间:<%=mm.getTime() %></h4><h4>留言标题:<%=mm.getTitle() %></h4><h4>留言内容:<p><textarea rows="15"cols="100" readonly><%=mm.getContent() %></textarea></h4><a href="index.jsp"><h3>我要留言</h3></a><hr width ="90"><%}}%></body></html><?xml version="1.0"encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><display-name></display-name><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>AddMessageServlet</servlet-name><servlet-class>servlet.AddMessageServlet</servlet-class></servlet><servlet-mapping><servlet-name>AddMessageServlet</servlet-name><url-pattern>/AddMessageServlet</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>package servlet;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import bean.MessageBean;importcom.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader .Array;importcom.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl;public class AddMessageServlet extends HttpServlet { /*** Constructor of the object.*/public AddMessageServlet() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.** @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.** @param request the request send by the client to the server* @param response the response send by the server to the client * @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String author = new String(request.getParameter("author").getBytes("ISO-8859-1")," UTF-8");String title = new String(request.getParameter("title").getBytes("ISO-8859-1"),"U TF-8");String content = new String(request.getParameter("content").getBytes("ISO-8859-1"), "UTF-8");//获取当前时间并格式化时间为指定格式SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String today = format.format(new Date());MessageBean mm = new MessageBean();mm.setAuthor(author);mm.setTitle(title);mm.setContent(content);mm.setTime(today);//获取session对象HttpSession session = request.getSession();//通过session对象获取应用上下文ServletContext scx = session.getServletContext();//获取存储在应用上下文中的集合对象ArrayList wordlist = (ArrayList)scx.getAttribute("wordlist");if(wordlist == null)wordlist = new ArrayList();//将封装了信息的JavaBean值存储到集合对象中wordlist.add(mm);//将集合对象保存到应用上下文中scx.setAttribute("wordlist", wordlist);response.sendRedirect("showmessage.jsp");/*** Initialization of the servlet. <br>** @throws ServletException if an error occurs */public void init() throws ServletException { // Put your code here}}package bean;public class MessageBean {private String author;private String title;private String content;private String time;public MessageBean(){}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;public void setContent(String content) { this.content = content;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}}。
学生设计性实验报告项目组长学号成员专业好计算机科学与技术班级 1班实验项目名称留言版的设计与实现指导教师及职称开课学期 2013 至 2014 学年 1 学期--廊坊师范学院留言版的设计与实现一、摘要二、实验目的及要求实验目的:本实验的目的是通过本课程的上机实践,使学生进一步巩固Web应用程序设计的基本知识,熟悉各种控件和对象的使用方法,并且通过对于这些基本知识的掌握和运用,能够独立设计和开发Web应用程序,掌握一定的专业技能,为将来就业与学习打下坚实的基础。
实验要求:1.认真复习在设计中要用到的原理与技术。
2.考察留言板的相关功能,掌握应用的一般需求。
3.设计作品界面美观。
4.后台数据库可以使用SQL Server或MySQL。
5.每人一组,按照实验大纲要求完成实验。
6.提交设计作品与实验报告。
三、实验仪器设备实验软件:Eclipse,SQL Server ,mysql四、实验内容(一)班级网络留言板的分析网络留言板,即班级留言管理程序,是一个可以在用户登陆以后,进行查询、发表、修改、浏览全部、删除留言等功能。
用户使用ID及PASSWORD登录网上留言版,随后进入欢迎界面,然后留言管理页面,根据用户需要,看是否要查找、添加、修改或删除留言。
根据以上分析,网络留言板应该具有如下功能:1.1 用户登陆用户在进入留言板前,必须验证身份。
即只有已注册的用户才能进行留言管理。
1.2 用户注册用户没有账号需要注册。
1.3 添加留言用户可以在留言板上添加留言。
1.4查询留言查询出现所要查询字的相关留言信息。
1.5回复留言用户登录系统后,可以修改留言信息。
1.6删除留言用户登录系统后,删除数据库留言。
(二)网络留言板的数据库设计根据以上的分析,设计出下面的数据库表。
2.1 用户信息表(person)用户信息表实,主要用来记录用户的详细信息。
用户信息表如表3-1所示表3-1用户信息表2.2留言表(note)留言表,主要用于记录用户留言信息。
留言表表详细信息如表3-2所示:表3-2留言表(三)网络留言板的基本框架网络留言程序目录部署如图所示:(四)网络留言板系统各功能模块的设计和实现4.1 用户登陆界面用户登陆界面如图5-1所示:图4-1用户登陆册页面运行效果用户登陆页面程序“index.jsp”代码如下:<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>用户登录</title><script type="text/javascript">function check(form) {if (form.id.value == "") {alert("用户名不能为空");return false;}if (form.password.value == "") {alert("密码不能为空");return false;}return true;}</script><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"><meta http-equiv="description"content="This is my page"><!--link rel="stylesheet" type="text/css" href="styles.css">--><style type="text/css"><!--.STYLE1 {color: #66FFCC;font-weight: bold;font-size: 36px;font-family: "楷体_GB2312";}.STYLE2 {font-family: "Courier New", Courier, monospace;font-size: 16px;font-weight: bold;color: #FFCCFF;}--></style></head><body><p align="center"class="STYLE1">留言板</p><p align="center"class="STYLE2">用户登录页面</p><%if (request.getAttribute("error") != null) {%><center><h3><font color="red"><%=request.getAttribute("error")%></font> </h3></center><%}%><form id="form1"name="form1"method="post"onsubmit=" return check(this)" action="LoginServlet"><table width="337"height="124"border="1"align="center"><tr><td width="77">用户名:</td><td width="107"><label><input name="id"type="text"id="id"size="20"maxlength="20"/></label></td></tr><tr><td>密 码:</td><td><label><input name="password"type="password"id="password"size="20"maxlength="20"/></label></td></tr><tr><td><label><input type="submit"name="submit"id="submit"value="登录"/></label></td><td><label><input type="reset"name="reset"id="reset"value="重置"/></label><label><input type="reset"name="register"id="register"value="注册"onclick="javascript:document.location.href='cpc_register.jsp';"></label></td></tr></table></form></body></html>用户登陆页面程序“LoginServlet.java”package cpc.message;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;@WebServlet("/LoginServlet")public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;public LoginServlet() {// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String id = String.valueOf(request.getParameter("id"));String pwd = String.valueOf(request.getParameter("password"));//System.out.println(id);try{Class.forName("com.mysql.jdbc.Driver");String url="jdbc:mysql://localhost:3306/message";String username="root";String password="admin";Connection myconn=DriverManager.getConnection(url,username,password);if(myconn!=null){System.out.println("数据库连接成功!");}else{System.out.println("数据库连接失败!");}String sql="select * from person where name='"+id+"'and password='"+pwd+"'";//password='"+pwd+"'Statement stmt=myconn.createStatement();ResultSet rs=stmt.executeQuery(sql);if(rs.next()){response.sendRedirect("ListNoteServlet");System.out.println("登录成功");}else{if(request.getAttribute("name") == null){request.setAttribute("error","您没有登录或密码错误!");request.getRequestDispatcher("index.jsp").forward(request,response);}}myconn.close();}catch(Exception e){e.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request,response);}}4.2 用户注册页面注册页面如4-2所示:如图4-2 注册页面注册页面“cpc_register.jsp”如下:<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" <html><head><title>注册新用户</title><script type="text/javascript">function check(form) {if (.value == "") {alert("用户名不能为空");return false;}if (form.password1.value == "") {alert("密码不能为空");return false;}if (form.password2.value == "") {alert("确认密码不能为空");return false;}if (form.password1.value != form.password2.value) {alert("两次输入密码不一致");return false;}return true;}</script><style type="text/css"><!--.STYLE1 {color: #66FFCC;font-weight: bold;font-size: 36px;font-family: "楷体_GB2312";}.STYLE2 {font-family: "Courier New", Courier, monospace;font-size: 16px;font-weight: bold;color: #FFCCFF;}--></style></head><body><p align="center"class="STYLE1">留言板</p><p align="center"class="STYLE2">注册页面</p><%if (request.getAttribute("error") != null) {%><center><h3><font color="red"><%=request.getAttribute("error")%></font> </h3></center><%}%><form id="form1"name="form1"method="post"onsubmit=" return check(this)" action="RegistServlet"><table width="337"height="124"border="1"align="center"><tr><td width="77">用 户 名:</td><td width="107"><label><input name="name"type="text"id="name"size="20"maxlength="20"/></label></td></tr><tr><td>密 码:</td><td><label><input name="password1"type="password"id="password1"size="20"maxlength="20"/></label></td></tr><tr><td>重复密码:</td><td><label><input name="password2"type="password"id="password2"size="20"maxlength="20"/></label></td></tr><tr><td><label><input type="reset"name="register"id="register"value="登录"onclick="javascript:document.location.href='index.jsp';"></label></td><td><label><input type="submit"name="reset"id="reset"value="注册"/></label></td></tr></table></form></body></html>注册页面“RegistServlet.java”如下:package cpc.message;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/RegistServlet")public class RegistServlet extends HttpServlet {private static final long serialVersionUID = 1L;public RegistServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name = String.valueOf(request.getParameter("name"));String pwd1 = String.valueOf(request.getParameter("password1"));System.out.println(name);System.out.println(pwd1);try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/message";String username = "root";String password = "admin";Connection conn = DriverManager.getConnection(url, username,password);String sql = null;sql = "insert into person(name,password) values(?,?)";PreparedStatement pstmt = conn.prepareStatement(sql); // 获取PreparedStatementpstmt.setString(1, name);pstmt.setString(2, pwd1);pstmt.executeUpdate();pstmt.close();conn.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}request.getRequestDispatcher("index.jsp").forward(request,response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}}4.3 留言板管理页面留言板管理页面如4-3所示:如图4-3留言板界面效果留言板管理页面程序“cpc_listnote.jsp”如下:<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page import="cpc.message.ListNoteBean"%><%@page import="java.util.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html;charset=UTF-8"><title>留言列表</title><script type="text/javascript">function check(form) {if (form.keyword.value == "") {alert("查询条件不能为空");return false;}}</script></head><body><p align="center">留言板</p><p align="center">留言管理列表</p><form action="SearchServlet"method="post"onsubmit="return check(this)"> 请您输入查询内容:<input type="text"name="keyword"id="keyword"/> <input type="submit"value="模糊查询"/></form><table width="816"height="137"border="1"align="center"><tr><td width="86">留言编号</td><td width="115">标题</td><td width="115">作者</td><td width="291">内容</td><td width="291">回复</td><td width="99">操作</td></tr><%List<ListNoteBean>list=(List<ListNoteBean>)request.getAttribute("list");if (list == null || list.size() < 1) {out.print("<tr><td bgcolor='#FFFFFF' colspan='5'>没有任何留信息!</td></tr>");} else {for (ListNoteBean note : list) {%><tr><td><%=note.getId()%></td><td><%=note.getTitle()%></td><td><%=note.getAuthor()%></td><td><%=note.getContent()%></td><td><%=note.getReply()%></td><td><a href="ReplyServlet?id=<%=note.getId()%>">回复</a><a href="DeleteServlet?id=<%=note.getId()%>">删除</a></td></tr><%}}</table><p align="center"><strong><a href="cpc_insert.jsp">添加新留言</a></strong></p><p> </p></body></html>留言板管理页面程序“cpc_listnote.jsp”如下:package cpc.message;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/ListNoteServlet")public class ListNoteServlet extends HttpServlet {private static final long serialVersionUID = 1L;public ListNoteServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/message";String username = "root";String password = "admin";Connection conn = DriverManager.getConnection(url,username,password);Statement stmt = conn.createStatement();String sql = "select * from note";ResultSet rs = stmt.executeQuery(sql);List<ListNoteBean> list = new ArrayList<>();while(rs.next()){ListNoteBean note = new ListNoteBean();note.setId(rs.getInt("id"));note.setTitle(rs.getString("title"));note.setAuthor(rs.getString("author"));note.setContent(rs.getString("content"));note.setReply(rs.getString("reply"));list.add(note);}request.setAttribute("list", list);rs.close();stmt.close();conn.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}request.getRequestDispatcher("cpc_listnote.jsp").forward(request, response);}}留言板管理页面程序“ListNoteBean.java”如下:package cpc.message;public class ListNoteBean {private int id;private String title;private String author;private String content;private String reply;public int getId(){return id;}public String getTitle(){return title;}public String getAuthor(){return author;}public String getContent(){return content;}public String getReply(){return reply;}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 void setReply(String reply){this.reply=reply;}}4.4 添加留言页面添加留言如图4-4所示:如图4-4添加留言页面效果添加留言程序“cpc_insert.jsp”如下:<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <html><head><title>添加新留言</title><script type="text/javascript">function check(form) {if (form.title.value == "") {alert("请填写留言标题");return false;}if (form.author.value == "") {alert("请填写你的名字");return false;}if (form.content.value == "") {alert("你还没写留言内容呐!");return false;}return true;}</script><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"><meta http-equiv="description"content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><style type="text/css"><!--.STYLE1 {color: #66FFCC;font-weight: bold;font-size: 36px;font-family: "楷体_GB2312";}.STYLE2 {font-family: "Courier New", Courier, monospace;font-size: 16px;font-weight: bold;color: #FFCCFF;}--></style></head><body><p align="center"class="STYLE1">留言板</p><p align="center"class="STYLE2">添加新留言</p><form id="form1"name="form1"method="post"onsubmit=" return check(this)" action="InsertServlet"><table width="551"height="162"border="1"align="center"><tr><td width="76">标题:</td><td width="358"><label><input name="title"type="text"id="title"size="40"maxlength="40"/></label></td></tr><tr><td>作者:</td><td><label><input name="author"type="text"id="author"size="20"maxlength="20"/></label></td></tr><tr><td>内容:</td><td><label><textarea name="content"cols="50"rows="10"id="content"></textarea></label></td></tr><tr><td><label><input type="submit"name="submit"id="submit"value="提交"/></label></td><td><label><input type="reset"name="reset"id="reset"value="重置"/></label></td></tr></table><center><h3><a href="javascript:history.back(-1);">返回留言列表</a></h3></center></form><p> </p></body></html>添加留言程序“InsertServlet.java”如下:package cpc.message;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/InsertServlet")public class InsertServlet extends HttpServlet {private static final long serialVersionUID = 1L;public InsertServlet() {super();}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { doPost(request, response);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8");String title = String.valueOf(request.getParameter("title"));String author = String.valueOf(request.getParameter("author"));String content = String.valueOf(request.getParameter("content"));try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/message";String username = "root";String password = "admin";Connection conn = DriverManager.getConnection(url, username,password);String sql = null;sql = "insert into note(title,author,content) values(?,?,?)";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setString(1, title);pstmt.setString(2, author);pstmt.setString(3, content);pstmt.execute();//pstmt.executeQuery();sql = "select * from note";pstmt = conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();List<ListNoteBean> list = new ArrayList<>();while (rs.next()) {ListNoteBean note = new ListNoteBean();note.setId(rs.getInt("id"));note.setTitle(rs.getString("title"));note.setAuthor(rs.getString("author"));note.setContent(rs.getString("content"));note.setReply(rs.getString("reply"));list.add(note);}request.setAttribute("list", list);pstmt.close();conn.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}request.getRequestDispatcher("cpc_listnote.jsp").forward(request, response);}}4.5 查询留言页面用户查询留言页面如图4-5-1所示如图4-5-1用户查询留言结果如图4-5-2用户查询留言结果查询留言程序“cpc_search.jsp”如下:<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page import="cpc.message.ListNoteBean"%><%@page import="java.util.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>查询结果</title></head><body><table width="816"height="137"border="1"align="center"><tr><td width="86">留言编号</td><td width="179">标题</td><td width="115">作者</td><td width="291">内容</td><td width="291">回复</td></tr><%List<ListNoteBean> list = (List<ListNoteBean>)request.getAttribute("list");if (list == null || list.size() < 1) {out.print("<tr><td bgcolor='#FFFFFF' colspan='5'>没有查询内容!</td></tr>");} else {for (ListNoteBean note : list) {%><tr><td><%=note.getId()%></td><td><%=note.getTitle()%></td><td><%=note.getAuthor()%></td><td><%=note.getContent()%></td><td><%=note.getReply()%></td></tr><%}}%></table><p align="center"><strong><a href="javascript:history.back(-1);">返回留言列表</a></strong> </p></body></html>查询留言程序“SearchServlet..java”如下:package cpc.message;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/SearchServlet")public class SearchServlet extends HttpServlet {private static final long serialVersionUID = 1L;public SearchServlet() {super();}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubrequest.setCharacterEncoding("utf-8");String keyword = String.valueOf(request.getParameter("keyword"));try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/message";String username = "root";String password = "admin";Connection conn = DriverManager.getConnection(url, username,password);String sql = "select id,title,author,content,reply from note where id like ? or title like ? or author like ? or content like ? or reply like ?";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setString(1,"%"+keyword+"%") ;pstmt.setString(2,"%"+keyword+"%") ;pstmt.setString(3,"%"+keyword+"%") ;pstmt.setString(4,"%"+keyword+"%") ;pstmt.setString(5,"%"+keyword+"%") ;ResultSet rs = pstmt.executeQuery();List<ListNoteBean> list = new ArrayList<>();while (rs.next()) {ListNoteBean note = new ListNoteBean();note.setId(rs.getInt("id"));note.setTitle(rs.getString("title"));note.setAuthor(rs.getString("author"));note.setContent(rs.getString("content"));note.setReply(rs.getString("reply"));list.add(note);}request.setAttribute("list", list);rs.close();pstmt.close();conn.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}request.getRequestDispatcher("cpc_search.jsp").forward(request, response);。