河北机电职业技术学院实训报告姓名:班级:软件1201 学号:设计名称:动态网站应用实训指导教师:(报告正文部分):(要求:一级大标题靠左,加粗,三号,宋体。
二级大标题靠左,加粗小四号。
正文部分一律用小四号字,宋体,1.5倍行距)一、课程设计目的通过本次课程设计,将动态网站开发的理论知识和网站开发实践有机的结合起来,训练学生的java web开发能力和开发技巧,锻炼学生分析问题的能力,提高学生运用所学知识解决实际问题的能力。
二、题目描述和要求设计题目:分组完成新闻发布系统。
技术要求:实现系统的登录实现栏目的增删改查实现类别的增删改查熟练使用ckeditor质量要求:按要求完成各项功能,链接流畅。
三、课程设计内容3.1设计内容1.设计前准备,配置eclipse,建立News数据库,建立News,News-User,Item,classes四张表。
连接数据库。
2.建立四个包,Action(动作包)、dao(数据访问包)、pojo(基本类包)、servlet (数据处理包)、filter(过滤修改包)。
3.登录到新闻发布的分类管理页面,进行数据栏目的添加、栏目的管理、类别的添加、类别的管理、和数据的增、删、改、查。
3.2设计实现1、以下是登录页面、添加页面、管理页面、添加子类页面的效果图:四、总结本程序是应用,java,jsp,html与css,javaScript,数据库技术等完成的一套新闻发布系统,进行新闻栏目添加,管理,以及栏目的增、删、改、查。
便于新闻发布者进行便捷工作。
通过为期两周的实训,我才发现我们掌握的知识是有多么的少,我们达到教学标准的仅仅是纸上谈兵,而在真正的动手能力上,我们真的还欠却的很多。
时间总是在你不经意间消失得无影无踪,而我们总是后之后觉。
不论做什么事,这都是大忌啊。
说实话,本次实训是我最不满意的一次,因为我什么都没学到,仅仅是一个代码搬运工,如果没有老师,同学们的帮助,我恐怕只能在一边看着。
所以我要感谢,老师您,还有同学热情的帮助。
还有一年的时间我们就毕业,走上社会。
那个我们渴望而又害怕的地方。
因为在那里有一条法则“物竞天择,适者生存”。
我们这些个乳臭未干的初出茅庐新生儿,该如何生存?也许在老师们的眼里我们对这个问题漠不关心,可你们哪知道我们想到这个个问题时的惆怅。
从这两周的实训中,我脚的自己在专业课的学习上还存在很多不足,首先要把基础打牢,不要只看重技术开发,对于一些基本概念也要掌握,再者就是多上机练习,学到什么就要学以致用,最后就是要加强自己的团队协作能力,争取在以后的学习中能够和同学们通过一些项目体改自己的团队协作能力。
以上就是本次实训得到一些心得,体会。
五、附录:(部分源代码清单)1、动作包(Action)关键代码:public class ItemAction {// 判断跳转是否成功。
public String query(HttpServletRequest request, HttpServletResponse response) { // 获得表单中名为ClassName的文本框中输入的值。
String ClassName = request.getParameter("ClassName");// 获得表单中名为dscription的文本框中输入的值。
String description = request.getParameter("description");// 获得表单中名为itemorder的文本框中输入的值。
int itemOrder = Integer.parseInt(request.getParameter("itemorder"));// 将String类型强制转换成Int类型// 实例化一个item对象。
Item item = new Item();// 将获得的表单文本框值分装到item对象中。
item.setItemName(ClassName);item.setItemDesc(description);item.setItemOrder(itemOrder);// 实例化一个连接数据库Itemdao对象。
Itemdao itemdao = new Itemdao();// 调用itemdao类中的addItem方法,判断跳转是否成功。
if (itemdao.addItem(item)) {return "/admin/item_manager.jsp";} else {return "/admin/item.jsp";}}public String update(HttpServletRequest request,HttpServletResponse response) {int itemid = Integer.parseInt(request.getParameter("itemid"));// 获得表单中名为itemName的文本框中输入的值。
String itemname = request.getParameter("itemname");// 获得表单中名为description的文本框中输入的值。
String description = request.getParameter("description");// 获得表单中名为itemorder的文本框中输入的值。
int itemOrder = Integer.parseInt(request.getParameter("itemorder"));// 将String类型强制转换成Int类型// 实例化一个item对象。
Item item = new Item();// 将获得的表单文本框值分装到item对象中。
item.setItemName(itemname);item.setItemDesc(description);item.setItemOrder(itemOrder);item.setItemId(itemid);// 实例化一个连接数据库Itemdao对象。
Itemdao itemdao = new Itemdao();// 调用itemdao类中的updateItem方法,判断跳转是否成功。
if (itemdao.updateItem(item)) {return "/admin/item_manager.jsp";} else {return "/admin/item.jsp";}}2、数据访问包(dao)关键代码:package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class DBConnection {private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=News";private static String name = "sa";private static String pass = "sa";public static Connection getConnection() {Connection con = null;try {Class.forName(driverName);con = DriverManager.getConnection(url, name, pass);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}return con;}public static void closed(Connection con,Statement stmt){try {if(stmt!=null){stmt.close();}if(con!=null){con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String args[]){if(DBConnection.getConnection()!=null){System.out.print("ok");}}}。