已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 实验一实验一 开发开发 WEBWEB 简单实例简单实例.1 一、实验目的.1 二、实验内容.1 三、实验方法和步骤.1 1J2EE服务器的配置.1 2创建Web工程.2 3创建JSP文件3 4部署Web程序.6 5. 浏览JSP网页.8 四、实验思考.8 五、实验报告.8 实验二实验二 JSPJSP 的基本结构的基本结构9 一、实验目的.9 二、实验内容.9 三、实验方法和步骤.9 1. JSP结构简介.9 2. 脚本元素.9 3实验程序 sum.jsp10 四、实验思考.10 五、实验报告.10 实验三实验三 JSPJSP 实现动态实现动态 WEBWEB.11 7.1 用内置对象前后台页面间的参数传递.11 7.2 用值对象 JAVABEAN 实现页面间的参数传递.12 实验四实验四 SERVLETSERVLET 技术技术14 实验五实验五 数据库连接组件数据库连接组件 JDBCJDBC20 实验六实验六 MVCMVC 开发模式开发模式 JSP+SERVLET+JAVABEANJSP+SERVLET+JAVABEAN.35 实验一实验一 开发开发 WebWeb 简单实例简单实例 一、实验目的一、实验目的 熟悉 Eclipse(其实是 MyEclipse 插件)环境下开发、部署 Web 程序的过程。Web 开发 是 J2EE 应用的首要方面。 二、实验内容二、实验内容 1MyEclipse 下 Tomct 服务器的配置; 2通过一个简单的 JSP 实例,熟悉 Web 工程创建和 JSP 文件创建、编辑、发布、访问 的全过程; 三、实验方法和步骤三、实验方法和步骤 1J2EE 服务器的配置服务器的配置 首次进行 Web 开发,要确认 J2EE 服务器是否已经可用。前面已经介绍了本例的 J2EE 服务器是采用 Tomcat。 服务器使能和配置。激活服务器如图 1.1 的配置界面有两个地方:一个是通过菜单“窗 口”“多选项”进入;另一个是通过快捷工具栏图标有一个 Configure Server 选 项进入(见图 5.2) 。具体每个参数值请参阅图 1.1。 图图 1.11.1 J2EEJ2EE 服务器配置界面服务器配置界面 在 Eclipse 下启动服务器 通过工具栏服务器图标“Tomct 8”“Start”启动 Tomct,启动过程需几十秒钟。 启动过程中底部的控制台会显示一系列提示,直到出现“Server Started in RUNNING mode”为止。见图 1.2: 图图 1.21.2 TomctTomct 的启动的启动 2创建创建 Web 工程工程 通过“文件”“新建”“项目”进入 “新建项目”窗口如图 1.3。选择 “MyEclipse”“Web Project”。“下一步”进入图 1.4,输入 Project Name=Web_pro,其它选项都是默认的。 值得说明的是 Source folder=src 是存放源文件目录,Web root folder=WebRoot 目 录存放发布到服务器上的内容,因此,在打包发布前要把 src 下面的 jsp、html 等要发布 的文件拷贝到 WebRoot 目录下,甚至在创建文件时就选择放在该目录下。 创建完的项目结构见图 1.5 左侧的视图区。 图图 1.31.3 创建创建 WebWeb ProjectProject 的第一步的第一步 图图 1.41.4 创建创建 WebWeb ProjectProject 第二步第二步 3创建创建 JSP 文件文件 向项目中添加一个 JSP 文件。通过图 1.5 的选择进入创建过程。 图图 1.51.5 创建创建 JSPJSP 文件的选择界面文件的选择界面 创建的第二步是确定文件名和路径,见图 1.6。本例 File Path=/Web_pro/WebRoot 目 的是直接将 JSP 文件放在待发布包里。 图图 1.61.6 确定确定 JSPJSP 文件名和路径文件名和路径 “完成”之后在 WebRoot 目录出现了 MyJsp.jsp(见图 1.7)。在编辑区显示出根据模版 创建的 JSP 文件内容。本例的内容是经过修改的内容。修改内容有:为简单明了,只保 留了 JSP 和 HTML 主框架,无关部分删掉了。为了正确显示汉字,第一行的 pageEncoding 由默认的“UTF-8”改为“gb2312”或“GBK”。为验证汉字是否正确显示, 显示内容增加了一行“这是第一个 JSP 网页”。 在编辑区切换到 Preview 可预览 JSP 网页的内容,见图 1.8。 图图 1.71.7 创建的创建的 JSPJSP 图图 1.81.8 预览预览 JSPJSP 内容内容 4部署部署 Web 程序程序 部署 Web 程序可以通过如图 1.9 的选择过程进入图 1.10。 图图 1.91.9 进入部署界面的选择过程进入部署界面的选择过程 也可采用快捷方式,见图 1.10。 在快捷工具栏中选择部署图标进入部署的第一步。 第一步在选定部署的项目后,按“Add”钮进入部署第二步; 第二步选定 Server 是 Tomct 8(Tomct 必须事先已启动); 如果 Tomct 有问题可进入 Edit server connectors 进行服务器参数的修改; Deploy type 的两个点选项:Exploded Archive 对 WebRoot 不压缩,Packaged Archive 对 WebRoot 压缩成 war 文件; Deploy Location 是默认填入; 按“完成”钮返回如图 1.11。Web_pro.war 已被部署到 Tomct 服务器上,你可以用 OS“我 的电脑”到服务器发布目录下查看。同时目录表格中已加入一个新的部署。另三个按钮被 激活: Remove: 删除已部署的项目; Redeploy: 重新部署; Browse: 非常快捷地浏览部署到服务器上内容(比用“我的电脑”浏览快捷); 图图 1.101.10 WebWeb 部署向导部署向导 图图 1.111.11 部署操作界面部署操作界面 5. 浏览浏览 JSP 网页网页 JSP 发布到服务器上之后,通过 IE 浏览器就可访问,地址栏中输入: http:/Localhost:7001/Web_pro/MyJsp.jsp。 另外一种快捷的方法是在 Eclipse 环境中启用 Web Browser。见图 1.12。在 Localtion 中输入访问地址,网页内容显示在下部。启用 Web Browser 是通过“窗口” “显示视图”“Web Browser”实现。 图图 1.121.12 用内部浏览器访问部署到用内部浏览器访问部署到 TomctTomct 上的网页上的网页 四、实验思考四、实验思考 1Eclipse、MyEclipse、Tomct 三者是什么关系? eclipse 是可用于 java 开发的集成环境 myeclipse 是基于 eclipse 的插件 web 开发常用 tomcat 是站点或者你的 web 工程容器 2一个简单的 JSP 开发过程经过哪些步骤?与非 Web 程序开发有何重大区别? 区别:具有支持线程,安全,高效等性能。 3在实验室局域网里,用另一台计算机能否访问到你刚发布的网页,怎样访问? 4部署(发布)是什么意思? 5创建工程时为什么选用 Web 工程?在程序的发布时起何作用? 五、实验报告五、实验报告 1报告重点反映 Web 的开发过程; 2按思考题的提示写出实验收获和感想。 实验二实验二 JSPJSP 的基本结构的基本结构 一、实验目的一、实验目的 熟悉 JSP 程序中的各种构成元素所起的作用和语句规则;理解 JSP 静态代码和动态代 码的混合编码方式;理解 JSP 的静、动态代码分离运行原理;重点掌握脚本标签的使用规 则和作用。 二、实验内容二、实验内容 1建立一个结构完整的 JSP 程序,改动标签内容看对 JSP 静、动态的影响。 2使用三种脚本标签,在 JSP 中嵌入 Java 代码,完成一个简单的数学运算; 三、实验方法和步骤三、实验方法和步骤 1. JSP 结构简介结构简介 在传统的 HTML 页面文件中加入 java 程序片和 JSP 标签就构成了一个 JSP 页面文件。一个 JSP 页面可由种元素组合而成: () 模版元素(普通的 HTML 标记符) () 注释 () 指令元素 () 动作元素 () 脚本元素(Java 声明、表达式、Scriptlets) JSP2.0 新增技术 (1)表达式语言 (2)标签语言 2. 脚本元素脚本元素 脚本元素是 JSP 的主要特征。是嵌入 Java 动态代码的地方。有三种标签: JavaJava 程序片:程序片:ScriptletsScriptlets 嵌入可执行的 Java 语言; 声明:声明:DeclarationDeclaration 变量声明、方法体定义; 表达式:表达式:ExpressionExpression插入一个表达式; 3实验程序实验程序 sum.jsp % size=1 用声明标签声明了一个用声明标签声明了一个 longlong 型变量型变量 sumsum 和一个方法和一个方法 continuSum()continuSum(),为整个页面使用,为整个页面使用 % 然后用然后用 ScripletScriplet 标签调用方法标签调用方法 continueSumcontinueSum,执行代码,执行代码 % 用表达式标签将用表达式标签将 continueSumcontinueSum 得到的值显示到客户:得到的值显示到客户: 11 到到 100100 的连续和是:的连续和是: % 四、实验思考四、实验思考 1修改页面的标题、改变字体的大小和颜色、超链接、显示图片、添加表单等属于修改 JSP 程序中的哪部分元素? 2指令元素有哪三种?改变 JSP 页面支持中文字符、在页面中加载(import)类包等各用 什么标签? 3动作元素与指令元素应用上有何不同?动作元素有几种?页面中使用 JavaBean、使用 其他网页、转发到另一页面各用什么标签? 4什么是动态代码?什么是静态代码?运行时如何各行其职、如何协调工作?找出你实验 中的动态代码; 五、实验报告五、实验报告 1参考指导书中的实验程序,拟定自己的实验程序,重点实验、分析脚本标签; 2按思考题的提示总结出 JSP 的结构特征和运行原理。 实验三实验三 JSPJSP 实现动态实现动态 WebWeb 一、实验目的一、实验目的 动态 Web 很重要的一部分内容就是前台实现人机交互,在后台完成业务逻辑的运算。 本实验验证前后台数据传递的两种常用机制,进一步熟悉 JSP 结构,掌握后台响应进行动 态处理的方法。 二、实验内容二、实验内容 1用 JSP 的内置对象 request 在前后台页面间传递表单数据; 2用置对象 JavaBean 在前后台页面间传递表单数据; 3验证是否对数值、西文、中文字符都能正常传递; 三、实验方法和步骤三、实验方法和步骤 1用内置对象前后台页面间的参数传递用内置对象前后台页面间的参数传递 (1)客户端主界面MyJsp.jsp,表单封装了三个参数: 这是第一个JSP 大家好!恭喜你的第一个JSP 第一个数: 第二个数: 第三个数: (2) 第一个后台响应first.jsp,用request对象提取前台传过来的参数,验证输入的数据 a、b、c分别是西文、数字、中文: This is first.jsp page 前台传过来的a= 前台传过来的b= 前台传过来的c= a+b+c= 返回 【在线思考】 请检查结果都正确吗?尤其注意传输中文字符时是否为乱码?如果出现乱码可在 request.getParameter()之前加入如下语句request.setCharacterEncoding(“GBK“);再 试,并解释对与错的原因。 s1+s2+s3是什么运算? (3)第二个响应界面second.jsp,用request对象提取前台传过来的参数,进行运算后将 其结果显示给客户端: 从MyJsp.jsp传过来的参数求得体积: 用request: 返回 【在线思考】 修改MyJsp.jsp什么地方才能响应second.jsp? 为什么三个数据都用Integer.valueOf(request.getParameter(“a“).intValue();语 句处理? 请在前台输入含有非数字字符数据,你看到什么结果?为什么? 2用值对象用值对象 JavaBean 实现页面间的参数传递实现页面间的参数传递 (1)值对象JavaBean :mybean.java package my; public class mybean private int a;/第一个操作数 private int b;/第二个操作数 private int c;/第三个操作数 public void setA(int a) this.a=a; public void setB(int b) this.b=b; public void setC(int a) this.c=c; public int getA() return this.a; public int getB() return this.b; public int getC() return this.c; (2)前台主界面MyJsp.jsp 大家好!恭喜你的第一个JSP 第一个数: 第二个数: 第三个数: 【在线思考】 与应用内置对象request的前台界面相比增加了什么类型的标签?分析标签里的内容和作用。 (3)返回结果给客户端的响应界面second.jsp 从MyJsp.jsp传过来的参数乘积: 用JavaBean: 返回 【在线思考】 响应界面多了什么标签?与前台界面比较一下该标签的写法; 与用request提取参数有何变化? 四、实验思考四、实验思考 1总结用内置对象 request 与用 JavaBean 传递数据各有何特点? 2值对象 mybean 不打包,请再试一下,有什么问题吗? 3请将后台响应与前台 form 用同一个 jsp,看看会出现什么问题?分析原因找出解决问 题的办法。 4在此程序的基础上,验证其他内置对象的作用。 五、实验报告五、实验报告 1参考指导书中的实验程序,编程验证两种传递表单参数的机制; 2根据【在线思考】的提示,分析调试中遇到的问题及解决的办法; 3按思考题的提示总结出用内置对象 request 与用值对象 JavaBean 传递数据在编程上的 变化; 实验四实验四 ServletServlet 技术技术 一、实验目的一、实验目的 更常用的后台响应程序用 Servlet。Servlet 是纯 Java 程序,但也可以输出 HTML 静态 代码。通过本实验,掌握 Servlet 的编程结构,理解 Servlet 生命周期。有关 Servlet 的 更高级应用请参阅相关教材。 二、实验内容二、实验内容 1用 Servlet 作后台响应程序,注意与 JSP 程序结构有何不同? 2掌握在 MyEclipse 开发环境下正确创建 Servlet 程序的过程; 3验证是否对数值、西文、中文字符都能正常传递; 4后台运算的数值处理; 5理解部署描述文件 web.xml 的作用; 三、实验方法和步骤三、实验方法和步骤 前台界面与实验四相同,后台响应用Servlet. (1)客户端主界面MyJsp.jsp 这是第一个JSP 大家好!恭喜你的第一个JSP 第一个数: 第二个数: 第三个数: 【在线思考】 尽管代码与实验三几乎相同,但你注意规定后台响应是用Servlet还是用JSP的关键代码在 哪儿? (2)MyEclipse创建Servlet文件向导 选定当前工程击右键,“新建”“Servlet”进入图4.1窗口,按提示输入文件名, 选定要创建的方法。 点击“下一步”进入图4.2 确定web.xml描述文件中对Servlet的描述,请见web.xml。 这里的Servlet jsp mapping URL是确定Servlet网络访问的映射名字,字符要尽量简单。 按“完成”生成Servlet代码框架。业务逻辑代码在doPost()方法中。注意doPost进口参 数为编程带来的方便。 第一个Servlet 程序见first.java ,它验证用request对象提取从Form表单传来的各 种数据是否都得到正确的结果,验证回送的HTML是否能在浏览器正确显示,尤其对中文字 符。 图图4.14.1 创建创建ServletServlet窗口窗口 图图4.24.2 确定确定ServletServlet 在在web.xmlweb.xml中的描述中的描述 (3)验证Servlet能正确地得到Form数据和输出HTML文档。 first.java如下: 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; public class second extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(“text/html;charset=GBK“); request.setCharacterEncoding(“GBK“); PrintWriter out = response.getWriter(); String s1,s2,s3; s1=request.getParameter(“a“); s2=request.getParameter(“b“); s3=request.getParameter(“c“); out.println(“); out.println(“ “); out.println(“传过来的第一个数据:“+s1+“); out.println(“传过来的第二个数据:“+s2+“); out.println(“传过来的第三个数据:“+s3+“); out.println(“); out.println(“返回“); out.println(“ “); out.println(“); out.flush(); out.close(); 【在线思考】 请在前台分别输入数值、西文、中文字符串,后台是否得到正确的结果? 请注释掉语句request.setCharacterEncoding(“GBK“);重复上面的输入,你会看到什 么现象?你会得到什么结论? 请注释掉语句response.setContentType(“text/html;charset=GBK“);重复上面的输入, 你会看到什么现象?你会得到什么结论? (4)后台运算,返回结果给客户端的响应Servlet: second.java 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; public class second extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(“text/html;charset=GBK“); PrintWriter out = response.getWriter(); int x=Integer.valueOf(request.getParameter(“a“).intValue(); int y=Integer.valueOf(request.getParameter(“b“).intValue(); int z=Integer.valueOf(request.getParameter(“c“).intValue(); out.println(“); out.println(“ “); out.println(“x*y*z 的结果是:“+x*y*z+“); out.println(“); out.println(“返回“); out.println(“ “); out.println(“); out.flush(); out.close(); 【在线思考】 后台对前台输入的数据进行了什么运算? 语句 Integer.valueOf(request.getParameter(“a“).intValue();有何作用? 请在前台输入含有非数字字符数据,你看到什么结果?为什么? Servlet 可否使用值对象 JavaBean? 比较一下第一次执行时,后台响应用 JSP 和 Servlet 响应时间上的差别,为什么有差 别? (5)部署描述文件 web.xml second second first first second /second first /first 【在线思考】 部署描述符有何作用? 修改/first标签为/FFF 你修改前台jsp程序的哪里还能用此first.class正确响应? 四、实验思考四、实验思考 1与 JSP 比较 Servlet 处理静态和动态代码有何不同?由此引申说明后台响应大多采用 Servlet 的原因; 2在 MyEclipse 集成开发环境下,创建 Servlet 时为什么使用向导?用创建普通类向导行 否? 五、实验报告五、实验报告 1创建 Servlet 实验程序,编程验证 Servlet 如何使用表单数据; 2根据【在线思考】的提示,分析调试中遇到的问题及解决的办法; 3按思考题的提示总结出 JSP 与 Servlet 在编程和使用上的区别; 实验五实验五 数据库连接组件数据库连接组件 JDBCJDBC 一、实验目的一、实验目的 JDBC 是 Java 访问数据库的基础组件。通过本实验,掌握 JDBC 连接数据库的方法和步 骤;掌握数据访问的方法;了解不同数据库和不同提供商提供的驱动程序;了解数据库连 接池作用和使用。 二、实验内容二、实验内容 1以 MS SQL Server2000 为数据库,分别用 ODBC 桥、微软提供的 JDBC 驱动、Bea Tomct 提供的驱动建立连接。 2先用 Application 程序验证将数据插入数据库表,然后从数据库表中读回数据验证 刚插入的数据是否正确; 3然后用 Web 程序实现 form 表单界面输入的数据插入数据库表,然后读回数据验证 插入数据是否正确; 4验证几种不同的访问方法; 5在 Tomct 服务器上 JDBC 连接池的配置和使用; 关于 JDBC 连接 SQL Server2000 的一揽子解决方案见附录 A。 三、实验方法和步骤三、实验方法和步骤 DBMS 用 Mysql;建立数据库 mydb;建立表是 student(String name,int age,float score); 验证用 ODBC 桥驱动和 MS for JDBC 驱动;执行 insert 和 select 语句。 1访问程序用 Application 程序; test1.java 程序如下: import java.sql.*; import java.util.*; import javax.naming.*; public class test1 public static void main(String args) String ODBC_driver =“sun.jdbc.odbc.JdbcOdbcDriver“;/ODBC 桥驱动 String ODBC_url=“jdbc:odbc:my_odbc“; String MS_driver=“com.microsoft.jdbc.sqlserver.SQLServerDriver“;/微软驱动 String MS_url = “jdbc:microsoft:sqlserver:/localhost:1433;databaseName=mydb“; Connection conn = null; Statement stmt = null; ResultSet rs = null; try Class.forName(MS_driver); conn = DriverManager.getConnection(MS_url,“sa“,“54321“);/创建连接对象 catch (Exception ex) System.out.println(“conn 错误“); try stmt = conn.createStatement(); /创建语句对象 stmt.executeUpdate(“insert into student(name,age,score)values(大连 ,30,432.67)“); rs = stmt.executeQuery(“select * from student“); /执行语句 catch (SQLException e) System.out.println(“SQL 错误“); try while(rs.next() System.out.print(rs.getString(1)+t); System.out.print(rs.getInt(2)+“ “); System.out.println(rs.getFloat(3); catch (Exception ex) System.out.println(“错误“); try rs.close(); stmt.close(); conn.close();catch(SQLException e) 【在线思考】 (1)如何建立 ODBC 数据源; (2)如何加载微软的驱动程序包? 2.使用数据库连接池 JDBCpool_test.java import java.sql.*; import java.util.*; import javax.naming.*; import javax.sql.DataSource; public class JDBCpool_test public static void main(String args) Connection conn = null; Statement stmt = null; ResultSet rs = null; DataSource ds=null; Hashtable ht = new Hashtable(); /Tomct 连接池 ht.put(Context.INITIAL_CONTEXT_FACTORY,“Tomct.jndi.WLInitialContextFactory“); ht.put(Context.PROVIDER_URL,“t3:/localhost:7001“); try Context ctx = new InitialContext(ht); ds = (DataSource)ctx.lookup(“My_JNDI“); conn = ds.getConnection(“swx“,“12345678“);/此处是 Tomct7 的域用户和密码 catch(Exception ex)System.out.println(“连接池错误“); try stmt = conn.createStatement(); /创建语句对象 String SQL=“insert into student(name,age,score) values(鞍山,30,123.5)“; stmt.executeUpdate(SQL); rs = stmt.executeQuery(“select * from student“); /执行语句 catch (SQLException e1) System.out.println(“SQL 错误“); try while(rs.next() System.out.print(rs.getString(1)+“t“); System.out.print(rs.getInt(2)+“t“); System.out.println(rs.getFloat(3); catch (Exception ex) System.out.println(“错误“); try rs.close(); stmt.close(); conn.close();catch(SQLException e) 【在线思考】 (1)什么是 JDBC 连接池?使用连接池有什么好处?什么情况适宜使用连接池? (2)如何在 Tomct 建立连接池和它的数据源; (3)使用连接池与直接使用 JDBC 在编程上有何区别? 3访问程序用 JSP。 请自行创建一个 Web 工程(或利用已有的工程),加入一个 jsp 文件,jsp 文件封装一个 表单,表单三个参数对应数据表 student 三个字段。后台响应用 proccess.jsp,将表单三 个数据插入表 student 中并校验插入数据是否正确。 proccess.jsp 参考程序如下: “); out.println(“从数据库中读回数据“); sql=“select * from student“; stmt=connect.createStatement(); rs=stmt.executeQuery(sql); try while (rs.next() out.println(“); out.println(rs.getString(“name“); out.println(“ “); out.println(rs.getInt(“age“); out.println(“ “); out.println(rs.getFloat(“score“); rs.close(); stmt.close(); connect.close(); catch(Exception exc)System.err.println(exc.getMessage(); % 返回重新输入 【在线思考】 (1)你注意到该程序使用的语句对象是 PreparedStatement,与前两个程序中使用 CreateStatement 对象有较大不同,你找到不同的地方在哪儿吗? (2)将此程序改用数据库连接池; (3)在此程序之上编写一个用户“注册”和“登陆”程序; 四、实验思考四、实验思考 1本实验针对 Mysql 验证了几种 JDBC 驱动?各适用什么应用场合? 2本实验验证了哪两种语句对象,使用上有何不同? 3本实验出现过什么 SQL 语句?建议对其于的 SQL 语句课后进行实验; 4在本实验的启发下,工作中遇到其它 DBMS(Oracle、MySQL、SyBase)你会使用它的 JDBC 吗? 5在 MyEclipse 集成开发环境下,提供一个 DataBase Explore,方便浏览数据库,请你 自己研究使用方法。 五、实验报告五、实验报告 1写出实验目的,实验内容、实验程序、实验结果; 2根据【在线思考】的提示,分析调试中遇到的问题及解决的办法; 3按思考题的提示总结出 JDBC 使用基本过程、不同的适用方法; 4深入比较 Web 程序访问数据库用 JDBC 连接和连接池使用上的区别;(选做) 实验六实验六 综合应用综合应用网上投票系统网上投票系统 一、实验目的一、实验目的 通过一个网上投票 Web 程序,系统地应用已学过的知识,理解 Web 系统的开发过程和 各组件的配合应用。主要应进一步理解和掌握:JSP 的构成和作用;Servlet 的使用; JavaBean 和值对象在 Web 程序的应用,JSP+Servlet+JavaBean 设计模式的应用;静态代码 与动态代码的分离;JDBC 连接和访问数据库;Web 程序的调试方法。 二、实验内容二、实验内容 一个简单的网上投票系统,集中了 JSP 应用 Web 开发的所有环节和过程。通过网上对 MicroSoft、Sun、IBM、 Oracle 四个公司进行喜欢度投票,选中的公司将增加一票,同时记录投票人的 姓名、IP、投票时间等信息。可查看投票结果。 1以 MS SQL Server2000 建立数据库 vote_result。 表 Voter 存放投票人的信息 字段名数据类型存放信息 candidatenvarchar (50) 候选公司名 voter_namenvarchar (50) 投票人的名字 voter_companynvarchar (50) 投票人所在公司 voter_countrynvarchar (50) 投票人所在国家 ip_addressnvarchar (50) 投票人 IP 地址 vote_timedatetime 投票时间 表 result 存放候选公司的名字和投票累计数 字段名数据类型存放信息 candidatenvarchar (50) 候选公司名,初始数据: Sun MicroSystem Oracle IBM Microsoft vote_numInt(4) 投票累计数,初值 0 2Web 程序前后台都先用 JSP,采用内置对象或用值对象传递数据; 3然后修改程序后台响应用 Servlet; 4进一步用 JSP+Servlet+JavaBean 模式; 5数据库连接先采用直接 JDBC 方法,再用 JDBC 连接池; 6访问数据库的语句对象先用 createStatement(),然后用prepareStatement(); 三、实验方法和步骤三、实验方法和步骤 该实验分为两大步进行。 第一步:调试和阅读本指导书先给出的程序,理解程序结构和基本的原理。给定的参 考程序前后台均用 JSP 的方法,且获取参数用内置对象 request,JDBC 采用直接连接方法。 第二步:同学们在此基础上改造程序完成指定实验内容。 参考程序如下: 1 1前台界面前台界面votejsp.jspvotejsp.jsp 从列表框中选择你喜欢的公司,填入你的姓名、所在的公司和国家;也可查看当前投票情从列表框中选择你喜欢的公司,填入你的姓名、所在的公司和国家;也可查看当前投票情 况。况。 投票系统 function validate_form() validity = true; if (!check_empty(document.submitt.candidate.value) validity = false; alert(请选择一个候选公司!); document.submitt.candidate.focus(); return validity; if (!check_empty(document.submitt.voter.value) validity = false; alert(请输入您的姓名); document.submitt.voter.focus(); return validity; if (!check_empty(pany.value) validity = false; alert(请输入您所在公司的名称); pany.focus(); return validity; if (!check_empty(document.submitt.country.value) validity = false; alert(请输入您所在的国家的名称) document.submitt.country.focus(); return validity; /fun end function check_empty(text) return text.length 0; 这是一个简单的投票系统 选出你最喜爱的公司: 太阳公司 Oracle IBM 微软 请认真准确的填写您的个人资料 姓 名: 所在公司: 所在国家: 察看当前选举情况 2 2后台响应后台响应result.jspresult.jsp 用内置对象request提取表单参数,为被选择的候选公司增加1票(更新result表), 将投票人的信息存入voter表。 谢谢你对支持 查看当前投票情况 返回投票 3 3显示当前投票结果的界面显示当前投票结果的界面show.jspshow.jsp 查询result表显示候选公司的得票情况,查询voter表显示投票人的信息。 bgcolor=“#FFFFFF“); 当前票数统计 候选公司名 当前票数 投票人的详细资料 投票的公司 投票人姓名 投票人所在公司 投票人所在国家 投票人的IP地址 投票时间 【在线思考】 1JSP中要显示查询结果,是如何处理表头和结果集在页面中的显示?这部分静、动态代 码是如何编制和协作的? 2votejsp.jsp中使用了Javascript,有什么作用?它与Java语言是一回事吗? 3在result.jsp和show.jsp中都有数据库的操作,他们都有获取数据库连接对象和创建语 句对象的共用代码段,请你思考一下用什么来解决代码的重用问题? 第二步请按如下步骤进行: 1前后台依然用原JSP,但要求: 用值对象JavaBean传递参数; 数据库的连接与语句对象的创建封装在一个JavaBean类中。 2再修改为后台响应用Servlet实现,用JSP+Servlet+JavaBean模式实现静、动态代码的 最大分离; 四、实验思考四、实验思考 1本实验综合应用了哪些技术? 2为什么 Servlet 经常做后台响应程序,你又有新的认识和体会吗? 3在 JSP 中使用普通 JavaBean 和在 Servlet 中应用有何不同? 4使用 JSP+Servlet+JavaBean 模式到底有何好处,你在程序中怎样使用的? 5你体验了使用 JDBC 的直接方式和连接池方式的不同吗? 6你体验了使用 PreparedStatement 和 createStatement 语句对象的区别吗? 五、实验报告五、实验报告 1写出实验目的,实验内容、实验程序、实验结果; 2根据【在线思考】的提示,分析调试中遇到的问题及解决的办法; 3按指导书修改程序的演变过程从开始全采用 JSP 到最终用 JSP+Servlet+JavaBean 模式, 来总结出 Web 开发为什么遵循 MVC 设计模式。 六、六、JSP+Servlet+JavaBean 参考程序参考程序 程序按 JSP+Servlet+JavaBean 结构使得动、静态代码做到最大程度的分离。前台界 面 votejsp.jsp 提供输入表单,同时用 javascript 代码 validate_form()在前端进行校验; 后台响应用 result.java,在 doPost()方法中传递消息 executeUpdate()给 JavaBean- JDBC_pro.java 执行数据库的连接与访问等业务逻辑;执行完后,用超连接可导航到 votejsp.jsp 页面或 show.java,show.java 向 JDBC_pro 传递消息 executeQuery()执行查 询业务,返回投票结果和投票人信息屏显示。系统的顺序图见图 6.1。 图图6.16.1 网上投票系统顺序图网上投票系统顺序图 参考程序: 1前台表单界面votejsp.jsp 投票系统 function validate_form() validity = true; if (!check_empty(document.submitt.candidate.value) validity = false; alert(请选择一个候选公司!); document.submitt.candidate.focus(); return validity; if (!check_empty(document.submitt.voter.value) validity = false; alert(请输入您的姓名); document.submitt.voter.focus(); return validity; if(!check_empty(pany.value) validity = false; alert(请输入您所在公司的名称); pany.focus(); return validity; if (!check_empty(document.submitt.country.value) validity = false; alert(请输入您所在的国家的名称) document.submitt.country.focus(); return validity; function check_empty(text) return text.length 0; 这是一个简单的投票系统 选出你最喜爱的公司: 太阳公司 Oracle IBM 微软 请认真准确
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季市场营销专业开学第一课 专业证书与资格认证
- 2026年秋季土木工程专业开学第一课 专业社团与学术活动讲座方案
- 抗焦虑药治疗护理查房
- 金地中心项目广场铺装施工方案
- 手术室植入物管理完整版护理查房
- 2026年院感试题及答案(医院感染知识考试试题及答案)
- 考核聘用临床医学面试题及答案2026版
- 教学楼混凝土浇筑施工方案-施工技术方案
- 型材屋面工程施工方案
- 服装制造企业铣工定期维护安全操作规程
- 2025年党员发展对象培训课件:入党积极分子培训教材
- 《先兆流产中西医结合诊疗指南》
- 标准日本语初级下课后练习题答案25-48
- 2024年江苏省张家港市文化中心管委办招聘3人历年(高频重点复习提升训练)共500题附带答案详解
- 多导睡眠监测课件
- 《复变函数与积分变换》第三版课后习题及答案
- 四川大学高等学历继续教育本科生毕业论文样本格式
- 交接班管理制度车间交接班制度生产车间交接班制度
- 仪器内校员培训教材
- 《中国石化建设工程招标投标规定》(完整版)资料
- 中小学会计制度测试题及答案
评论
0/150
提交评论