java博客.docx

上传人:b****6 文档编号:5151570 上传时间:2022-12-13 格式:DOCX 页数:17 大小:1.62MB
下载 相关 举报
java博客.docx_第1页
第1页 / 共17页
java博客.docx_第2页
第2页 / 共17页
java博客.docx_第3页
第3页 / 共17页
java博客.docx_第4页
第4页 / 共17页
java博客.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

java博客.docx

《java博客.docx》由会员分享,可在线阅读,更多相关《java博客.docx(17页珍藏版)》请在冰豆网上搜索。

java博客.docx

java博客

Java课程设计报告书

题目:

个人博客

班级:

0991111

学号:

1099111130

姓名:

陈天任

教师:

吕志峰

周期:

12.12——12.30

成绩:

2011年12月26日

个人博客

一、课程设计的目的与要求

(一)课程设计目的与任务

目的:

一个博客的整体设计规划到编写程序来进一步增加对于JAVA学习的实践经验,时DW用来做前台页面也更好的完善了整个制作流程的步骤。

通过程序的编写深一步了解异常处理的机制及JSP和数据库的连接。

任务:

编写一个个人博客可以对文章和留言进行管理等。

(二)题目要求

通过对一个博客的设计,在过程中学习使用DW对网页进行修改来达到自己最初的设想并不断对其进行优化。

其中个人博客要分为前后两部分,一方面要满足游客对博客浏览的需要,并可以对博客进行评论;另一方面博主则可以对博客的方方面面进行管理,包括写日志,改留言等等。

这些具体的功能则都由Servlet与数据库共同完成。

同时可以使用CSS,JS来进一步丰富个人博客的页面效果,进一步做好美工工作。

二、设计正文

1系统分析和开发背景

博客是WEBLOG的缩写,它是一个新型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。

博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设性。

本系统是用JSP实现的一个完全基于浏览器的博客系统,具有登录博客系统的后台管理平台,撰写日志,日志管理,留言管理,浏览博客系统中的日志、留言、相册、视频,发表留言,检索日志。

2功能详细描述

a)博主登录:

户通过浏览器发送信息与数据库中存有的用户信息进行比对成功之后可以对整个博客进行管理。

b)编写日志:

登录成功之后可以在博客内增添新的文章。

c)留言板:

任何浏览博客的人都可以在留言板留下自己的痕迹。

d)管理日志及留言板:

可以对已经显示在博客上的内容进行删除等。

e)检索日志:

可以对现有日志进行查询。

f)小游戏、视频及相册:

通过在网页中插入FLASH等各种内容的形式丰富个人博客的内容。

3、数据结构或数据库设计

1.博主帐号密码

2.留言板

3.博客文章

4、主要功能逻辑过程和实现算法

首先在欢迎页面使用了从网上自学的嵌套表格来学以致用,嵌套表格有很多优点,网页的排版有时会很复杂,在外部需要一个表格来控制总体布局,如果内部排版的细节也通过总表格来实现,容易引起行高列宽等的冲突,给表格的制作带来困难。

其次,浏览器在解析网页的时候,是将整个网页的结构下载完毕之后才显示表格,如果不使用嵌套,表格非常复杂,浏览者要等待很长时间才能看到网页内容。

引入嵌套表格,由总表格负责整体排版,由嵌套的表格负责各个子栏目的排版,并插入到总表格的相应位置中,各司其职,互不冲突。

通过嵌套表格,利用表格的背景图像、边框、单元格间距和单元格边距等属性可以得到漂亮的边框效果,制作出精美的音画贴图网页。

用户登录代码通过把浏览器传入的内容与数据库进行比对得出是否允许登录的结果。

{request.setCharacterEncoding("gb2312");

response.setContentType("text/html");

response.setCharacterEncoding("gb2312");

PrintWriterout=response.getWriter();

Stringuid=request.getParameter("uid");

Stringpwd=request.getParameter("pwd");

Stringsql="select*fromstudentwhereuid='"+uid+"'andpwd='"+pwd+"'";

mydbdb1=newmydb();

ResultSetrs=db1.getquery(sql);

try

{

if(rs!

=null)

{

if(!

rs.next())

{

out.println("

用户名或密码错误


");

}

else

{

response.sendRedirect("main.jsp");

}

}

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

}

}

连接数据库:

importjava.sql.*;

publicclassmydb

{

privateStringdrivername="com.microsoft.sqlserver.jdbc.SQLServerDriver";

privateStringurl="jdbc:

sqlserver:

//localhost:

1433;DatabaseName=stu";

privateStringuid="sa";

privateStringpwd="";

privateConnectionconn=null;

publicmydb()

{

try

{

Class.forName(drivername);

conn=DriverManager.getConnection(url,uid,pwd);

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

}

publicResultSetgetquery(Stringsql)

{

ResultSetrs=null;

try

{

Statementst=conn.createStatement();

rs=st.executeQuery(sql);

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

returnrs;

}

publicintgetupdate(Stringsql)

{

inti=0;

try

{

Statementst=conn.createStatement();

i=st.executeUpdate(sql);

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

returni;

}

}

写日志及留言:

importjavax.servlet.http.HttpServlet;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

importjava.sql.*;

publicclassRegistorFormextendsHttpServlet

{

Connectiondbcon;

protectedvoiddoPost(HttpServletRequestreq,

HttpServletResponseresp)

throwsServletException,

java.io.IOException

{

try

{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");dbcon=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;DatabaseName=stu","sa","");

}

catch(Exceptione)

{

System.out.println("Databasenotfound!

");

}

resp.setContentType("text/html");

PrintWriterout=resp.getWriter();

Stringfirstname=req.getParameter("title");

Stringlastname=req.getParameter("nr");

introws=0;

try

{

PreparedStatementstat=dbcon.prepareStatement("insertstudentvalues(?

?

)");

stat.setString(1,firstname);

stat.setString(2,lastname);

rows=stat.executeUpdate();

}

catch(Exceptione)

{

System.out.println(e.toString());

}

if(rows==0)

{

System.out.println("ErrorInsert");

}

else

{

System.out.println("SuccessfulInsert");

}

out.println("");

out.println("Thankyou");

out.println("
");

out.println("");

try

{

dbcon.close();

}

catch(Exceptione)

{

System.out.println(e.toString());

}

}

}

删除留言:

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjava.sql.*;

importza.*;

publicclassscextendsHttpServlet

{

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException

{

request.setCharacterEncoding("gb2312");

response.setContentType("text/html");

response.setCharacterEncoding("gb2312");

PrintWriterout=response.getWriter();

Stringid=request.getParameter("id");

Stringsql="deletefromlywhereid='"+id+"'";

mydbdb1=newmydb();

ResultSetrs=db1.getquery(sql);

try

{

if(rs!

=null)

{

if(!

rs.next())

{

out.println("

删除失败


");

}

else

{

response.sendRedirect("main.jsp");

}

}

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

}

}

更新文章:

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjava.sql.*;

importza.*;

publicclassgxextendsHttpServlet

{

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException

{

request.setCharacterEncoding("gb2312");

response.setContentType("text/html");

response.setCharacterEncoding("gb2312");

PrintWriterout=response.getWriter();

Stringid=request.getParameter("id");

Stringtitle=request.getParameter("title");

Stringnr=request.getParameter("nr");

Stringsql="updatewzsettitle='"+title+"',nr='"+nr+"'whereid='"+id+"'";

mydbdb1=newmydb();

ResultSetrs=db1.getquery(sql);

try

{

if(rs!

=null)

{

if(!

rs.next())

{

out.println("

更新失败


");

}

else

{

response.sendRedirect("main.jsp");

}

}

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

}

}

显示文章及留言:

importjavax.servlet.http.HttpServlet;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

importjava.sql.*;

publicclassxsextendsHttpServlet

{

Connectiondbcon;

protectedvoiddoPost(HttpServletRequestreq,

HttpServletResponseresp)

throwsServletException,

java.io.IOException

{

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

dbcon=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;DatabaseName=stu","sa","");

System.out.println("Connectionestablished");

}

catch(Exceptione)

{

System.out.println("Databasenotfound!

");

}

resp.setContentType("text/html");

resp.setCharacterEncoding("gb2312");

PrintWriterout=resp.getWriter();

Stringfirstname=req.getParameter("title");

Stringlastname=req.getParameter("nr");

introws=0;

try

{

PreparedStatementstat=dbcon.prepareStatement(

"select*fromwz");

ResultSetresult=stat.executeQuery();

while(result.next())

{

out.println("");

out.println("

");

out.println("题目:

"+result.getString

(2)+"");

out.println("内容:

"+result.getString(3)+"");

out.println("
");

out.println("");

}

}

catch(Exceptione)

{

e.toString();

}

try

{

dbcon.close();

}

catch(Exceptione)

{

System.out.println(e.toString());

}

}

}

5、界面设计

1.欢迎界面

2.相册

3.视频

4.博客小游戏

5.主页

6、系统测试

1.写日志

2.留言板

3.管理日志

4.管理留言

5.登录界面

三、小组成员分工说明

独立完成

四、课程设计总结或结论

1课程设计过程中出现的技术难点和解决方法:

在最初的设计中出现的困难是没有理解DW和MyEclipse之间的关系,并不清楚Servlet在其中扮演着怎样的角色和功能,在随着老师一周的讲解及对老师所给课件的不断研习,搞懂了三者之间的关系,为后续的编写清除了思维上的障碍。

在后来的Servlet的编写中,始终没有搞懂如何将网页内容插入到数据库中,查了很多资料,尝试了很多次还是无果,因为网上所给出的Servlet大都是和MYSQL相连,说白了还是自己没有弄懂Servlet的原理,在后来的一次偶然的交流中想到了其实注册用户也是向数据库中插入信息,换了一种思路再去寻找答案果然很快得到了自己想要的结果,同时也算是比之前更进一步了解了Servlet和数据库及页面三者之间的关系。

在这次难点的解决中,我又一次反省了自己,自己总是在想把同样的方法用在不同的地方,借此来完成最终的目的,却始终都着眼于从最终的目的找方法,没有想到以不同的地方来寻找相同的方法,自己的逆向思维差的还是太多了,还是该多加联系和尝试去换一种方式思考。

2课程设计期间的主要收获:

经过这次为期三周的课程设计我进一步学习了JAVA同时深入的了解了Servlet和DW,也终于学到了CSS的一些基础知识为未来的进阶提供了足够的知识储备。

在三周的课程设计中尽管还有这样和那样的遗憾,但是总的来说还是很成功的,对于即将过去的一年虽然我没有能做到完美,但是我已经尽自己可能做到足够的完满了。

Servlet还有很多东西值得去学习,相比于去年的ASP我做到了更好的查询功能,也弥补了去年ASP那一点点缺憾,感到很是满意。

不知不觉已经做了两年的个人博客的课程设计,想想儿时那个遥不可及的梦想,我想来是越来越近了的。

3对今后课程设计的建议

希望以后课程设计的时间可以短一点,老师讲的东西可以更加多一点,有时候多讲一些东西确实可以达到事半功倍的效果。

同时也感谢老师给了我宽松的学习的环境,让我学到了很多东西,丰富了这个学期的学习和生活,对于过去的一年有一个完满的总结。

五、参考文献

[1]王婧,高洪志,巩萃萃.计算机实用基础教程.中国铁道出版社

[2]吕志峰,邓琨.Java语言程序设计教程.北京-清华大学出版社

六、指导教师评阅意见

附录

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1