JSP与Servlet技术
实验报告
东北大学软件学院
20##年4月
1. 系统分析与设计
1.1 系统功能描述
1.2 系统功能流程
1.3 数据库设计
2.系统实现与测试
2.1 系统采用的关键技术
2.2 关键程序流程
2.3 关键代码分析
2.4 出现的问题及解决
2.5 运行结果
3.分析与总结
对系统的运行情况进行分析,列出系统遗留的问题及可能解决的途径,总结本次编写程序所取得的经验。如果程序未能通过,则应分析其原因。对实验的方式和内容提出建设性的建议。
参考文献
例:
[1] 萨师煊,王珊.数据库系统概论(第三版)[M].北京: 高等教育出版社,2002,122-150.
[2] 侯敏.Java编程思想[M].北京:机械工业出版社,2002,22-35.
第二篇:JSP Servlet JavaBean 技术总结
第一章 JavaEE概述
1.使用JSP开发程序存在如下弊端。
由于大量的显示代码和业务逻辑混淆在一起,不利于程序的维护和扩展。
2.JavaEE的体系结构:表示层、中间层、数据层,三层结构的好处如下。
2.1 一个组件的更改不会影响其他两个组件。
2.2 由于表示层和数据库层相互独立,因而可以方便的扩充表示层,使系统具有的
良好的可扩展性。
2.3 代码重复减少,在3个组件之间尽可能的共享代码。
2.4 良好的分工和协作。这将使不同的小组能够独立地开发应用程序的不同部分,
并充分发挥各自的长处和优势。
3.GET、POST请求的区别如下。
3.1 GET提交数据在地址栏内显示,不安全;而POST不显示,相对安全。
3.2 GET提交数据量有限制,而POST没有。
3.3 GET请求的页面可以设置为书签或使用邮件发送;而POST不可以。
4.HTTP协议是无状态协议,当浏览器向服务器发送一个请求后,服务器对该请求作出响应,当响应结束后,就断开连接,彼此不保存连接信息(一次请求有效)。
第二章 Servlet基础
1. 什么是Servlet?
编程角度:实现了Servlet接口的Java对象;
功能角度:是在服务器上运行,以处理客户端请求,并作出响应的程序;
2. Servlet的结构:
Javax.servlet.* (跨协议的Servlet)
Javax.servlet.http.* (HTTP协议)
3. Servlet编程模式的步骤:
a) 获取请求参数
b) 处理业务逻辑
c) 根据处理结果,返回响应
4. Servlet的生命周期
a) 加载和实例化:Servlet容器创建Servlet的实例
b) 初始化:该容器调用init()方法
c) 服务:如果请求Servlet,则容器调用service()方法
d) 销毁:销毁实例之前调用destory()方法
5. Request的常用方法如下。
a) request.getParameter(“param”); 获取请求参数
b) request.setCharacterEncoding(“GBK”); 设置请求参数的字符编码格式
c) request.setArrtibute(“loginname”,user);在request作用域内保存数据的方法
6. response的常用方法
a) response.setContentType(“text/html;charset=GBK”). //设置响应的编码格式 b) response.sendRedirect(“url”); //重定向
7. 实现页面的跳转有两种方式:转发和重定向。转发可以以request作用域进行数据
的传递;重定向将丢失request作用域内的数据。
8. Web.xml是Web项目中的”调度员”,容器根据在URL中访问的Servlet在web.xml
文件中进行查询(查找方式:<Servlet-mapping>中<url-parttern> --> <servlet-name> ?
<servlet>中<servlet-name> ? <servlet-class>),并调用该Servlet以处理用户的请求。
第三章 基于Servlet的会话跟踪(一)
1. 什么是session?
a) session是指在一段时间内,单个客户与Web服务器的一连串的相关的交互过
程。
2. 为什么要使用session?
a) 在Web中使用session,是为了跟踪用户状态,并区分不同的用户
3. 会话是Web容器创建的,而不是由程序员编码创建的。当客户端浏览器第一次访
问服务器的时候,服务器为客户创建一个session。
4. 结束session有以下3种方式。
a) 关闭浏览器
b) 两次访问的间隔时间大于非活动时间
c) 调用HttpSession的invalidate()方法
5. 使用HttpSession提供的setAttribute()方法保存数据,而使用getAttribute()方法获取
数据。
第四章 基于Servlet的会话跟踪(二)
1. HttpSession对象在Web程序中是很重要的一种技术,服务器可以使用它来区分不
同的用户,对其进行不同的操作,这种功能尤其体现在Web购物系统中,程序通过对HttpSession对象的控制,从而区分用户的身份和状态。
2. 在HttpSession对象中进行存值和取值。
a) setAttribute(String name,Object value).
b) getAttribute(String name).
3. 在Java中常用的集合接口有List、Set和Map。
a) 常用的List接口的实现类有ArrayList类(查询、随机性能高)、LinkedList类。 b) 常用的Set接口的实现类有HashSet类。
c) 常用的Map接口的实现类有HashMap类、Properties类。
课外补充:Filter 过滤器
1. 过滤器的用途
a) 字符设置,统一整个Web程序的编码格式
b) 对程序的访问的控制
2. 过滤器的定义
a) 功能:向请求添加功能(过滤请求)的Web服务组件
b) 编程:实现了Filter接口的Java程序
c) 过滤器是将公共的问题进行集中解决,可在web.xml中进行灵活的配置
3. Filter API javax.servlet.*
a) Filter:定义了所有过滤器对象必须实现的方法(行为/生命周期)。
b) FilterConfig:获取初始化参数
c) FilterChain:过滤器链,doFilter()方法控制请求进入下一个程序。
第五章 基于Servlet的MVC设计模式
1. 什么是设计模式?
a) 设计模式是一套被反复使用、成功的代码设计经验的总结。
b) 是典型问题的解决方案
2. MVC设计模式把系统分为以下3个模块
a) 模型(Model):对应的组件是JavaBean(Java类)
b) 视图(View):对应的组件是JSP或HTML文件
c) 控制器(Controller):对应的组件Servlet
3. 由Servlet接收客户端请求,调用相应的模型处理业务逻辑和数据,再由Servlet根
据处理的结果,选择相应的JSP或HTML文件响应客户端。
第六章 Model层开发:高级JDBC
1. 在进行企业级应用开发时,对数据库性能、处理错误等方面的要求有所提高,所以
才出现了连接池和JNDI技术,以实现对数据库连接的优化。
2. 关于如何连接数据库,我们已经学会了至少3种方式。
a) 编码方式,把数据库配置信息直接写入Java代码中。
b) .properties文件,把数据库配置信息写在属性文件中,用程序读取。
c) 数据源,使用JNDI来获取DataSource对象,从而得到Connection对象。
3. 通过JNDI查找数据源的步骤:
a) 在Tomcat5.5/6.0中配置连接池
i. 将sqljdbc.jar复制到common/lib或lib文件夹中
ii. 在conf/context.xml文件中配置连接池
b) 在项目中使用连接池
i. 在web.xml中声明引用数据源(可选)
ii. 在应用程序中通过JNDI查找数据源获得连接
4. 读取.properties文件的步骤如下。
a) 创建继承自Properties的类,并以单例模式获得实例:私有的静态成员,私有
的默认构造方法,公有的静态同步方法。
b) 使用Class对象的getResourceAsStream()方法,把指定的属性文件读入输入流
中,并使用Properties类中的load()方法,从输入流中读取属性列表(键/值对)。 c) 在实现数据库连接方法时,使用Properties类的getProperty()方法,通过键读
取出value值,从而实现数据库连接的操作。
5. 在编写程序的过程中,由于错误信息不够具体或准确,从而不能很快找到错误或异
常,并解决错误,所有需要自定义异常。
第七章 View层开发:JavaBean在JSP中的使用
1. JavaBean
a) 定义:是应用程序的重要组成部分,JavaEE的可重复使用的组件。
b) 分类:封装数据(狭义),entity、vo;封装业务方法(广义),dao、biz; c) 封装数据的JavaBean的规范:公有、无参构造方法;属性私有,首字母、第
二个字母小写;公有读写方法,get/set+属性名(首字母大写);实现序列化接口;指定报名(就是说JavaBean必须放在自定义包下);
d) 封装业务方法的JavaBean的规范:提供公有、无参的构造方法。
2. 使用JSP标准动作的好处。
a) 可以方便程序开发,体现在代码的重用。
b) 可以方便美工人员美化页面,在JSP中减少了大量的Java代码。
c) 简化了数据的获取和封装的过程。
3. 常用的JSP标准动作
a) useBean:创建和获得一个JavaBean对象
b) setProperty:给JavaBean对象的属性赋值
c) getProperty:获取属性的值
d) forward:跳转页面
4. ModelⅠ与ModelⅡ的区别如下:
a) ModelⅠ使用JSP+JavaBean实现。
b) ModelⅡ使用JSP+JavaBean+Servlet实现。
c) 使用ModelⅠ设计的项目缺少控制层,不易进行扩展,只适合开发小型项目。
5. <jsp:forward>标准动作实质是使用转发器RequestDispatcher对象的forward()方法实
现转发的功能。
第八章 View层开发:EL和JSTL
1. 什么是EL表达式
a) Expression Language是一种简洁的数据访问表达式语言。
b) EL使用地点:HTML,对表达式进行计算、输出;JSTL属性,赋值;
2. EL语法:${ 表达式 }
3. 在JSP页面中使用EL和JSTL,主要的目的就是实现JSP中无脚本编程,从而提高项
目的可维护性(包括美工的网页维护)和可扩展性。
4. JSTL:jsp标准标签库
a) 使用步骤:
i. 在项目的lib文件夹下导入jstl.jar和standard.jar
ii. 在jsp页面上利用taglib指令导入标签库
iii. 在Jsp页面上使用标签,设置属性
b) 执行原理、过程
i. 启动服务器,加载标签库
ii. <% taglib uri=”” prefix=”” %>
c) 核心标签:c
i. 通用标签:set、out、remove。
ii. 条件标签:if。
iii. 迭代标签:forEach。
d) 格式化标签:fmt
e) 函数标签:fn
第九章 Web 服务
1. Web服务的定义、作用
a) 定义:Web服务是在Internet上提供服务的应用程序。
b) 作用:实现系统集成的无缝集成(平台无关性、语言无关性)。
2. Web技术的标准
a) XML:在Web服务环境中各层之间进行数据传递的默认格式为XML。
b) SOAP:封装和交换信息的默认协议是SOAP(Simple Object Access Protocol,简
单对象访问协议),SOAP用于交换XML编码信息的轻量级协议,它可以运行在任何其他协议上。
c) WSDL:Web服务描述语言采用XML格式描述Web服务的用途和调用方式,
以方便其他人调用自己的Web服务。
3. Web服务把软件的重用提高到Internet层面上,因为底层是HTTP协议协议,以XML
传输数据,所以是语言无关、平台无关的,大大提高了软件的可重用性,更加有利于系统的集成。
4. 使用XFire创建和发布Web服务的步骤如下。
a) 添加XFire库。
b) 添加XFire-all-1.2.6.jar包
c) 创建服务接口和实现类
d) 配置services.xml文件
e) 配置web.xml文件
f) 添加xalan.jar包
g) 创建客户端程序访问Web服务
5. 测试类的规范:测试类要继承自TestCase类,测试类的类名为待测试类名+Test,测
试方法名为test+待测试方法名。