1、java博客Java课程设计报告书题目: 个人博客 班级: 0991111 学号: 1099111130 姓名: 陈天任 教师: 吕志峰 周期: 12.1212.30 成绩: 2011年 12 月 26日个人博客一、课程设计的目的与要求 (一)课程设计目的与任务目的:一个博客的整体设计规划到编写程序来进一步增加对于JAVA学习的实践经验,时DW用来做前台页面也更好的完善了整个制作流程的步骤。通过程序的编写深一步了解异常处理的机制及JSP和数据库的连接。任务:编写一个个人博客可以对文章和留言进行管理等。(二)题目要求通过对一个博客的设计,在过程中学习使用DW对网页进行修改来达到自己最初的设想并不
2、断对其进行优化。其中个人博客要分为前后两部分,一方面要满足游客对博客浏览的需要,并可以对博客进行评论;另一方面博主则可以对博客的方方面面进行管理,包括写日志,改留言等等。这些具体的功能则都由Servlet与数据库共同完成。同时可以使用CSS,JS来进一步丰富个人博客的页面效果,进一步做好美工工作。二、设计正文1 系统分析和开发背景博客是WEB LOG的缩写,它是一个新型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设性。本系统是用JSP实现的一个完全基于浏览器的博客系统,具有
3、登录博客系统的后台管理平台,撰写日志,日志管理,留言管理,浏览博客系统中的日志、留言、相册、视频,发表留言,检索日志。2 功能详细描述a) 博主登录:户通过浏览器发送信息与数据库中存有的用户信息进行比对成功之后可以对整个博客进行管理。b) 编写日志:登录成功之后可以在博客内增添新的文章。c) 留言板:任何浏览博客的人都可以在留言板留下自己的痕迹。d) 管理日志及留言板:可以对已经显示在博客上的内容进行删除等。e) 检索日志:可以对现有日志进行查询。f) 小游戏、视频及相册:通过在网页中插入FLASH等各种内容的形式丰富个人博客的内容。3、数据结构或数据库设计1.博主帐号密码2.留言板3.博客文
4、章4、主要功能逻辑过程和实现算法首先在欢迎页面使用了从网上自学的嵌套表格来学以致用,嵌套表格有很多优点,网页的排版有时会很复杂,在外部需要一个表格来控制总体布局,如果内部排版的细节也通过总表格来实现,容易引起行高列宽等的冲突,给表格的制作带来困难。其次,浏览器在解析网页的时候,是将整个网页的结构下载完毕之后才显示表格,如果不使用嵌套,表格非常复杂,浏览者要等待很长时间才能看到网页内容。引入嵌套表格,由总表格负责整体排版,由嵌套的表格负责各个子栏目的排版,并插入到总表格的相应位置中,各司其职,互不冲突。通过嵌套表格,利用表格的背景图像、边框、单元格间距和单元格边距等属性可以得到漂亮的边框效果,制
5、作出精美的音画贴图网页。用户登录代码通过把浏览器传入的内容与数据库进行比对得出是否允许登录的结果。 request.setCharacterEncoding(gb2312); response.setContentType(text/html); response.setCharacterEncoding(gb2312); PrintWriter out=response.getWriter(); String uid=request.getParameter(uid); String pwd=request.getParameter(pwd); String sql=select * fro
6、m student where uid=+uid+ and pwd=+pwd+; mydb db1=new mydb(); ResultSet rs=db1.getquery(sql); try if(rs!=null) if(!rs.next() out.println(用户名或密码错误); else response.sendRedirect(main.jsp); catch(Exception ex) System.out.println(ex.toString(); 连接数据库:import java.sql.*;public class mydb private String dri
7、vername=com.microsoft.sqlserver.jdbc.SQLServerDriver; private String url=jdbc:sqlserver:/localhost:1433;DatabaseName=stu; private String uid=sa; private String pwd=; private Connection conn=null; public mydb() try Class.forName(drivername); conn=DriverManager.getConnection(url,uid,pwd); catch(Except
8、ion ex) System.out.println(ex.toString(); public ResultSet getquery(String sql) ResultSet rs=null; try Statement st=conn.createStatement(); rs=st.executeQuery(sql); catch(Exception ex) System.out.println(ex.toString(); return rs; public int getupdate(String sql) int i=0; try Statement st=conn.create
9、Statement(); i=st.executeUpdate(sql); catch(Exception ex) System.out.println(ex.toString(); return i; 写日志及留言:import javax.servlet.http.HttpServlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.sql.*;public class RegistorForm extends HttpServlet Connection dbcon; pro
10、tected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); dbcon=DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=stu,sa,); catch(Exception e) System.out.pri
11、ntln(Database not found!); resp.setContentType(text/html); PrintWriter out=resp.getWriter(); String firstname=req.getParameter(title); String lastname=req.getParameter(nr); int rows=0; try PreparedStatement stat=dbcon.prepareStatement( insert student values(?,?); stat.setString(1,firstname); stat.se
12、tString(2,lastname); rows=stat.executeUpdate(); catch(Exception e) System.out.println(e.toString(); if(rows=0) System.out.println(Error Insert); else System.out.println(Successful Insert); out.println(); out.println(Thank you); out.println(); out.println(); try dbcon.close(); catch(Exception e) Syst
13、em.out.println(e.toString(); 删除留言:import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;import za.*;public class sc
14、 extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(gb2312); response.setContentType(text/html); response.setCharacterEncoding(gb2312); PrintWriter out=response.getWriter(); String id=requ
15、est.getParameter(id); String sql=delete from ly where id=+id+; mydb db1=new mydb(); ResultSet rs=db1.getquery(sql); try if(rs!=null) if(!rs.next() out.println(删除失败); else response.sendRedirect(main.jsp); catch(Exception ex) System.out.println(ex.toString(); 更新文章:import java.io.IOException;import jav
16、a.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;import za.*;public class gx extends HttpServlet public void doPost(HttpServletRequest request, Htt
17、pServletResponse response) throws ServletException, IOException request.setCharacterEncoding(gb2312); response.setContentType(text/html); response.setCharacterEncoding(gb2312); PrintWriter out=response.getWriter(); String id=request.getParameter(id); String title=request.getParameter(title); String
18、nr=request.getParameter(nr); String sql=update wz set title=+title+ , nr=+nr+where id=+id+; mydb db1=new mydb(); ResultSet rs=db1.getquery(sql); try if(rs!=null) if(!rs.next() out.println(更新失败); else response.sendRedirect(main.jsp); catch(Exception ex) System.out.println(ex.toString(); 显示文章及留言:impor
19、t javax.servlet.http.HttpServlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.sql.*;public class xs extends HttpServlet Connection dbcon; protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException try Class.
20、forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); dbcon=DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=stu,sa,); System.out.println(Connection established); catch(Exception e) System.out.println(Database not found!); resp.setContentType(text/html); resp.setCharacterEnco
21、ding(gb2312); PrintWriter out=resp.getWriter(); String firstname=req.getParameter(title); String lastname=req.getParameter(nr); int rows=0; try PreparedStatement stat=dbcon.prepareStatement( select* from wz); ResultSet result=stat.executeQuery(); while (result.next() out.println(); out.println(); ou
22、t.println(题目 :+result.getString(2)+); out.println(内容:+result.getString(3)+); out.println(); out.println(); catch(Exception e) e.toString(); try dbcon.close(); catch(Exception e) System.out.println(e.toString(); 5、界面设计1.欢迎界面2.相册3.视频4.博客小游戏5.主页6、系统测试1.写日志2.留言板3.管理日志4.管理留言5.登录界面三、小组成员分工说明独立完成四、课程设计总结或结
23、论1 课程设计过程中出现的技术难点和解决方法:在最初的设计中出现的困难是没有理解DW和MyEclipse之间的关系,并不清楚Servlet在其中扮演着怎样的角色和功能,在随着老师一周的讲解及对老师所给课件的不断研习,搞懂了三者之间的关系,为后续的编写清除了思维上的障碍。在后来的Servlet的编写中,始终没有搞懂如何将网页内容插入到数据库中,查了很多资料,尝试了很多次还是无果,因为网上所给出的Servlet大都是和MYSQL相连,说白了还是自己没有弄懂Servlet的原理,在后来的一次偶然的交流中想到了其实注册用户也是向数据库中插入信息,换了一种思路再去寻找答案果然很快得到了自己想要的结果,同
24、时也算是比之前更进一步了解了Servlet和数据库及页面三者之间的关系。在这次难点的解决中,我又一次反省了自己,自己总是在想把同样的方法用在不同的地方,借此来完成最终的目的,却始终都着眼于从最终的目的找方法,没有想到以不同的地方来寻找相同的方法,自己的逆向思维差的还是太多了,还是该多加联系和尝试去换一种方式思考。2 课程设计期间的主要收获:经过这次为期三周的课程设计我进一步学习了JAVA同时深入的了解了Servlet和DW,也终于学到了CSS的一些基础知识为未来的进阶提供了足够的知识储备。在三周的课程设计中尽管还有这样和那样的遗憾,但是总的来说还是很成功的,对于即将过去的一年虽然我没有能做到完
25、美,但是我已经尽自己可能做到足够的完满了。Servlet还有很多东西值得去学习,相比于去年的ASP我做到了更好的查询功能,也弥补了去年ASP那一点点缺憾,感到很是满意。不知不觉已经做了两年的个人博客的课程设计,想想儿时那个遥不可及的梦想,我想来是越来越近了的。3 对今后课程设计的建议希望以后课程设计的时间可以短一点,老师讲的东西可以更加多一点,有时候多讲一些东西确实可以达到事半功倍的效果。同时也感谢老师给了我宽松的学习的环境,让我学到了很多东西,丰富了这个学期的学习和生活,对于过去的一年有一个完满的总结。五、参考文献1 王婧,高洪志,巩萃萃.计算机实用基础教程.中国铁道出版社2 吕志峰,邓琨. Java语言程序设计教程. 北京-清华大学出版社六、指导教师评阅意见附录无
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1