1、应用集成原理与工具实验报告应用集成原理与工具集成实验报告 姓名: 学号: 班级: 实验环境:普通PC机,Windows 2010、网络交换机、Elipse 开发软件、数据库为SQL Server 2008,Tomcat服务器实验目的:通过简易的jsp网页设计,各模块的组合,达到应用集成的目的,了解数据集成、应用集成、工具集成原理的简单应用,理论应用于实践。实验内容:以jsp页面为前端,java服务器和数据库为后台,实现通过前端和后台分开完成数据的增删改查。本班设计了计科1402数据库,其中包括五张表,分别为Course,Student,Stu_Course,Interest,Stu_Inter
2、等,通过Eclipse编译器编写jsp文件,以SQL SERVER为数据库,实现前端和后台的分离,简单的可视化话的操作数据库,达到客户-服务器模式的简单应用,从中了解应用集成的基本原理和方法,理论结合实践。 实验步骤:一 数据库的建立数据表的结构数据表sql语句:-表中数据的预览:Course表:Interest表:Stu_Course表:Stu_Inter表:Studen表:二 登陆界面及其后台代码界面展示:登陆分为两种登陆方式:一种是管理员登陆方式,一种为学生登陆,管理员默认账号为root,密码root123,学生则如同Student表中所记录的一般,学生有修改自己信息的权限和查看其他人的
3、信息的权限,管理则可以修改系统中的系统属性,如兴趣爱好的种类,课程的种类和管理学生的权限,但不能管理学生所对应的兴趣和课程,因为那些都是学生的自由。接下来先讲解下管理员的权限,采用的是Server-Client的形式,对于每一个页面都有对应的Server对应服务。登陆界面交互布局:表单用于上传表单到服务器中,做出不同反应。后台处理代码:根据不同表单的数据进行账号密码的验证。布局映射:三 管理员界面及其后台代码通过登陆管理员可进入查看全部信息的页面main.jsp:从这里我们可以看到整个数据库的信息,及其所对应的内容。界面核心代码:代码一:用于遍历数据库,数据的整合表单代码(用于交互):服务器代
4、码:服务器代码是根据前端用户的点击不同而返回不同的处理办法,主要起分流的作用。布局服务的映射:rootserve.RootServerroot/rootmakenl用于在服务器上映射对应的服务程序Server。接下来分三个板块说明,分别是兴趣种类板块,课程种类板块,学生管理板块A兴趣管理板块界面采用简洁明了的方式进行布局布局代码:填充表格:%DatabaseHelper helper = DatabaseHelper.init();/数据库操作String sql = select * from Interest;List list = helper.findInterestData(sql)
5、;for (int i = 0; i list.size(); i+) out.print();out.print( + list.get(i).getId() + );out.print( + list.get(i).getInterest() + );out.print();%表单:兴趣:增加兴趣删除兴趣id:删除兴趣修改兴趣id: 修改为 : 确认修改功能为增删改因为数据量说可以一次全部显示,因此这里没有查询,主要功能的实现是在后台,前端只是提供了服务的界面和交互信息的来源,主要的操作封装在后台实现,用户也只有刷新页面才可以实现新加入的数据。服务代码:protected void doG
6、et(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding(UTF-8);String button = request.getParameter(button);if (button.equals(增加) String interest = request.getParameter(interest);String sql = inser
7、t into Interest (interest) values ( + interest + );System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals(删除) String id = request.getParameter(interest_id);String sql = delete from Interest where id= + id + ;System.out.println(sql);Tool.Post(sql, request, response);sql = d
8、elete from Stu_Inter where inter_id= + id + ;System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals(修改) String id = request.getParameter(interest_id);String interest_value = request.getParameter(interest_value);String sql = update Interest set interest= + interest_value +
9、where id= + id + ;Tool.Post(sql, request, response);/工具包进行返回,Tool类下面进行详述从代码中可以看出来主要是根据表单中button按钮的不同value来判断进行什么操作,然后对应操作种类进行数据的操作和sql的编写。B. 课程种类板块布局代码表格数据及布局:编号爱好%DatabaseHelper helper = DatabaseHelper.init();String sql = select * from Course;List list = helper.findCourseData(sql);for (int i = 0; i
10、 list.size(); i+) out.print();out.print( + list.get(i).getId() + );out.print( + list.get(i).getName() + );out.print();%表单:课程:增加课程删除课程id:删除课程修改课程id: 修改为 : 确认修改课程的增改删原理同上。服务代码:protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / TODO Auto
11、-generated method stubrequest.setCharacterEncoding(UTF-8);String button = request.getParameter(button);if (button.equals(增加) String name = request.getParameter(course);String sql = insert into Course (name) values ( + name + );System.out.println(sql);Tool.Post(sql, request, response); else if (butto
12、n.equals(删除) String id = request.getParameter(course_id);String sql = delete from Course where id= + id + ;System.out.println(sql);Tool.Post(sql, request, response);sql = delete from Stu_Course where cour_id= + id + ;System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals(修
13、改) String id = request.getParameter(course_id);String course_value = request.getParameter(course_value);String sql = update Course set name= + course_value + where id= + id + ;System.out.println(sql);Tool.Post(sql, request, response);C学生管理板块界面:界面代码:id姓名(name)密码(password)性别(sex)电话(tel)%DatabaseHelper
14、 helper = DatabaseHelper.init();List list = helper.findStudentData(select * from Student);if (list != null) for (int i = 0; i list.size(); i+) out.print();out.print( + list.get(i).getId() + );out.print( + list.get(i).getName() + );out.print( + list.get(i).getPassword() + );out.print( + list.get(i).g
15、etSex() + );out.print( + list.get(i).getTel() + );out.print();%表单:学生也可以运用增删改查,此处暂时不累赘。四 学生界面及其后台代码学生界面包括查找和修改自己的内容,为保护个人隐藏了密码:界面代码:链接代码:修改自己的兴趣爱好 修改自己的课程查找学生以下也分成三个板块进行功能说明:A个人查找点击查找会进入查找个人界面:输入学生姓名(如黄二):点击查找:界面布局代码就采用一个表单的形式:查找学生姓名:确认查找通过提交数据到后台再返回进行查找。服务代码:protected void doGet(HttpServletRequest r
16、equest, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding(UTF-8);/转码String name = request.getParameter(name);if(!name.equals()System.out.println(name+-);names=name;RequestDispatcher dis = request.getRequestDispatcher(/loo
17、k.jsp);dis.forward(request,response);B个人课程界面:布局核心代码:爱好%DatabaseHelper helper = DatabaseHelper.init();String sql = select * from Stu_Course where stu_id= + CheckServer.id + ;/sql语句 用于查找该学生对应的课程String sql2 = select * from Course; /sql语句,用于查找课程的全部种类List list_c = helper.findCourseData(sql2);List list_sc
18、 = helper.findStu_CourseData(sql);if (list_sc != null) /遍历显示该学生所有课程for (int i = 0; i list_sc.size(); i+) int j = 0;while (list_c.get(j).getId() != list_sc.get(i).getCour_id() & j list_c.size()j+;out.print();if (j list_c.size() out.print();out.print(list_c.get(j).getName();System.out.println(list_c.g
19、et(j).getName();out.print();out.print();out.print();out.print(以下是全部课程);out.print();out.print(编号);out.print(课程);if (list_c != null) /遍历显示课程种类for (int i = 0; i list_c.size(); i+) out.print();out.print( + list_c.get(i).getId() + );out.print( + list_c.get(i).getName() + );out.print();out.print();%表单代码:操
20、作(1为增加,2为删除):编号(输入在课程的标号):修改课程接下来是增加自己的课程和删除自己的课程:增加、删除操作与个人兴趣操作相同,所以此处不重复,见下操作即可。C个人兴趣界面:布局核心代码:爱好%DatabaseHelper helper = DatabaseHelper.init();String sql = select * from Stu_Inter where stu_id= + CheckServer.id + ; /遍历该学生的所有兴趣String sql2 = select * from Interest; /遍历所有兴趣的种类List list_i = helper.fi
21、ndInterestData(sql2);List list_si = helper.findStu_InterData(sql);/当该学生有兴趣爱好时进行遍历,显示所有兴趣爱好if (list_si != null) for (int i = 0; i list_si.size(); i+) int j = 0;while (list_i.get(j).getId() != list_si.get(i).getInter_id() & j list_i.size()j+;System.out.println(j);out.print();if (j list_i.size()out.pri
22、nt( + list_i.get(j).getInterest() + );out.print();out.println();out.println(以下是全部兴趣);out.println();out.println(编号);out.println(爱好);/当官方提供的兴趣爱好存在时进行便利显示所有的种类if (list_i != null) for (int i = 0; i list_i.size(); i+) out.print();out.print( + list_i.get(i).getId() + );out.print( + list_i.get(i).getIntere
23、st() + );out.print();out.println();%以上代码用于遍历两个数据表,一个是对应关系表,一个是数据表,最终形成上面的两个表格。表单代码:操作(1为增加,2为删除):编号(输入在兴趣的标号):修改兴趣接下来是增加自己的兴趣和删除自己的兴趣:增加:填写好操作1和增加兴趣的编号如:然后点击按钮,即可进行插入:操作成功后返回就看到多了一项数据。首页也相同:删除操作:填写操作序号2,兴趣标号3,如:点击按钮即可进行删除:两类代码同时采用了一个数据服务代码:protected void doGet(HttpServletRequest request, HttpServlet
24、Response response)throws ServletException, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding(UTF-8); /转码String button = request.getParameter(button); /提取按钮valueSystem.out.println(button);if (button.equals(修改兴趣) /若按钮中包含的信息是修改兴趣,则进行此操作String operate = request.getParameter(opera
25、te); /提取操作数String opid = request.getParameter(opid); /提取操作idif (operate.equals(1) /表示增加操作String sql = select * from Stu_Inter where stu_id= + CheckServer.id + and inter_id= + opid+ ; /sql语句,先进行搜索,保证用户输入的种类是否已经用户拥有,防止重复记录System.out.println(sql);DatabaseHelper databaseHelper = DatabaseHelper.init();if
26、 (databaseHelper.findStu_InterData(sql) = null) /若没有则进行插入操作sql = insert into Stu_Inter (stu_id,inter_id) values ( + CheckServer.id + , + opid + );System.out.println(sql);Tool.Post(sql, request, response); else return; else if (operate.equals(2) /若是删除操作则进行删除Tool.Post(delete from Stu_Inter where stu_i
27、d= + CheckServer.id + and inter_id= + opid + ,request, response); else else if (button.equals(修改课程) /若按钮中包含的是修改课程操作,则进行此操作String operate = request.getParameter(operate);String opid = request.getParameter(opid);if (operate.equals(1) String sql = select * from Stu_Course where stu_id= + CheckServer.id
28、 + and cour_id= + opid+ ; /sql语句,先进行搜索,保证用户输入的种类是否已经用户拥有,防止重复记录System.out.println(sql);DatabaseHelper databaseHelper = DatabaseHelper.init();if (databaseHelper.findStu_CourseData(sql) = null) /若没有则进行插入操作sql = insert into Stu_Course (stu_id,cour_id) values ( + CheckServer.id + , + opid + );System.out
29、.println(sql);Tool.Post(sql, request, response); else return; else if (operate.equals(2) /执行删除操作Tool.Post(delete from Stu_Course where stu_id= + CheckServer.id + and cour_id_id= + opid + ,request, response); else 五 数据库操作类及工具类代码总的工程结构:服务器布局xml:工具类(用于大多数程序表明操作成功):JavaBean类:数据库访问类:核心连接类:public class Da
30、tabaseHelper private static DatabaseHelper helper;statichelper=new DatabaseHelper();public static DatabaseHelper init()return helper;private static Statement stmt;private DatabaseHelper() /连接数据库try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);Connection conn=DriverManager.getConnectio
31、n(jdbc:sqlserver:/localhost ; DatabaseName=Class1402;user=sa ; password=123456 );stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public List findStudentData(String sql)/查找学生数据return StudentData.init().findStudentData(sql, stmt);public List findStu_CourseData(String sql) /查找Stu_Course数据return Stu_CourseD
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100