Java Web综合开发实战网络留言系统Word格式.docx
- 文档编号:22109654
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:28
- 大小:834.69KB
Java Web综合开发实战网络留言系统Word格式.docx
《Java Web综合开发实战网络留言系统Word格式.docx》由会员分享,可在线阅读,更多相关《Java Web综合开发实战网络留言系统Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
图2.3
注:
SqlSrvDBConn类代码如下。
packageorg.easybooks.test.jdbc;
importjava.sql.*;
publicclassSqlSrvDBConn{
privateStatementstmt;
privateConnectionconn;
ResultSetrs;
//在构造方法中创建数据库连接
publicSqlSrvDBConn(){
stmt=null;
try{
/**加载并注册SQLServer2008的JDBC驱动*/
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
);
conn=DriverManager.getConnection("
jdbc:
sqlserver:
//localhost:
1433;
databaseName=TEST"
"
sa"
123456"
}catch(Exceptione){
e.printStackTrace();
}
rs=null;
}
//获取数据连接
publicConnectiongetConn(){
returnthis.conn;
//执行查询类的SQL语句,有返回集
publicResultSetexecuteQuery(Stringsql)
{
try
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}catch(SQLExceptione){
System.err.println("
Data.executeQuery:
"
+e.getMessage());
returnrs;
//关闭对象
publicvoidcloseStmt()
stmt.close();
publicvoidcloseConn()
conn.close();
}
4.构造JavaBean
在项目src文件夹下建立包org.easybooks.test.model.vo,其中分别创建两个数据库表所对应的标准JavaBean。
userTable表对应UserTable.java,代码同前。
如图2.4。
图2.4
注:
1.UserTable.java代码如下。
packageorg.easybooks.test.model.vo;
publicclassUserTable{
//Fields
privateIntegerid;
privateStringusername;
privateStringpassword;
//Propertyaccessors
//属性id的get/set方法
publicIntegergetId(){
returnthis.id;
publicvoidsetId(Integerid){
this.id=id;
//属性username的get/set方法
publicStringgetUsername(){
returnthis.username;
publicvoidsetUsername(Stringusername){
this.username=username;
//属性password的get/set方法
publicStringgetPassword(){
returnthis.password;
publicvoidsetPassword(Stringpassword){
this.password=password;
2.LyTable.java代码如下。
importjava.sql.Date;
publicclassLyTableimplementsjava.io.Serializable{
privateIntegeruserId;
privateDatedate;
privateStringtitle;
privateStringcontent;
//属性userId的get/set方法
publicIntegergetUserId(){
returnthis.userId;
publicvoidsetUserId(IntegeruserId){
this.userId=userId;
//属性date的get/set方法
publicDategetDate(){
returnthis.date;
publicvoidsetDate(Datedate){
this.date=date;
//属性title的get/set方法
publicStringgetTitle(){
returnthis.title;
publicvoidsetTitle(Stringtitle){
this.title=title;
//属性content的get/set方法
publicStringgetContent(){
returnthis.content;
publicvoidsetContent(Stringcontent){
this.content=content;
5.编写Servlet
(1)登录验证
登录验证功能用MainServlet实现,增加对留言的查询功能即可。
如图2.5
图2.5
MainServlet.java代码如下。
packageorg.easybooks.test.servlet;
importjava.io.*;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importorg.easybooks.test.jdbc.SqlSrvDBConn;
importorg.easybooks.test.model.vo.*;
publicclassMainServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
request.setCharacterEncoding("
gb2312"
//设置请求编码
Stringusr=request.getParameter("
username"
//获取提交的用户名
Stringpwd=request.getParameter("
password"
//获取提交的密码
booleanvalidated=false;
//验证成功标识
SqlSrvDBConnsqlsrvdb=newSqlSrvDBConn();
HttpSessionsession=request.getSession();
//获得会话对象,用来保存当前登录用户的信息
UserTableuser=null;
//先获得UserTable对象,如果是第一次访问该页,用户对象肯定为空,但如果是第二次甚至是第三次,就直接登录主页而无须再次重复验证该用户的信息
user=(UserTable)session.getAttribute("
user"
//如果用户是第一次进入,会话中尚未存储user持久化对象,故为null
if(user==null){
//查询userTable表中的记录
Stringsql="
select*fromuserTable"
;
ResultSetrs=sqlsrvdb.executeQuery(sql);
//取得结果集
try{
while(rs.next())
{if((rs.getString("
).trim().compareTo(usr)==0)&
&
(rs.getString("
).compareTo(pwd)==0)){
user=newUserTable();
//创建持久化的JavaBean对象user
user.setId(rs.getInt
(1));
user.setUsername(rs.getString
(2));
user.setPassword(rs.getString(3));
session.setAttribute("
user);
//把user对象存储在会话中
validated=true;
//标识为true表示验证成功通过
}
}
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
sqlsrvdb.closeStmt();
else{
validated=true;
//该用户在之前已登录过并成功验证,故标识为true表示无须再验了
if(validated)
//验证成功,应该去主界面,主界面中包含了所有留言信息,所以要从留言表中查出来,并暂存在会话中
ArrayListal=newArrayList();
select*fromlyTable"
//取得结果集
while(rs.next()){
LyTablely=newLyTable();
ly.setId(rs.getInt
(1));
ly.setUserId(rs.getInt
(2));
ly.setDate(rs.getDate(3));
ly.setTitle(rs.getString(4));
ly.setContent(rs.getString(5));
al.add(ly);
}catch(SQLExceptione){
sqlsrvdb.closeStmt();
session.setAttribute("
al"
al);
//然后跳转到main.jsp
response.sendRedirect("
main.jsp"
//验证失败跳转到error.jsp
error.jsp"
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doGet(request,response);
(2)添加留言
添加留言功能由AddServlet实现,在org.easybooks.test.servlet包下创建AddServlet类,编写代码。
图2.6
AddServlet.java代码如下。
importjava.util.ArrayList;
publicclassAddServletextendsHttpServlet{
Stringtitle=request.getParameter("
title"
//获取留言的标题
Stringcontent=request.getParameter("
content"
//获取留言的内容
//从会话中取出当前用户对象
UserTableuser=(UserTable)session.getAttribute("
//建立留言表对应的JavaBean对象,把数据封装进去
LyTablely=newLyTable();
ly.setUserId(user.getId());
//获取当前登录用户的id
ly.setDate(newDate(System.currentTimeMillis()));
//获取当前系统时间
ly.setTitle(title);
ly.setContent(content);
ArrayListal=(ArrayList)session.getAttribute("
al.add(ly);
//新添加的留言要保存一份到会话中,这样在刷新主页时就无须每次都去查询数据库留言表了
//向数据库中插入新的留言记录
PreparedStatementpstmt=null;
Connectionct=sqlsrvdb.getConn();
pstmt=ct.prepareStatement("
insertintolyTablevalues(?
?
)"
pstmt.setInt(1,ly.getUserId());
pstmt.setDate(2,ly.getDate());
pstmt.setString(3,ly.getTitle());
pstmt.setString(4,ly.getContent());
pstmt.executeUpdate();
response.sendRedirect("
liuyan.jsp"
(3)注册用户
注册新用户功能由RegisterServlet类实现。
如图2.7
图2.7
RegisterServlet.java代码如下。
publicclassRegisterServletextendsHttpServlet{
//获取提交注册的用户名
//获取提交注册的密码
//向数据库中插入新用户名和密码
insertintouserTablevalues(?
pstmt.setString(1,usr);
pstmt.setString(2,pwd);
login.jsp"
(4)配置Servlet
Servlet编写完成后,必须在项目web.xml中进行配置方可使用。
在web.xml文件中的配置如图2.8。
图2.8
web.xml配置代码如下。
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
web-appxmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
xmlns="
//xmlns.jcp.org/xml/ns/javaee"
xsi:
schemaLocation="
//xmlns.jcp.org/xml/ns/javaeehttp:
//xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="
WebApp_ID"
version="
3.1"
<
display-name>
JSPExample<
/display-name>
welcome-file-list>
welcome-file>
login.jsp<
/welcome-file>
/welcome-file-list>
servlet>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Web综合开发实战网络留言系统 Web 综合开发 实战 网络 留言 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)