广东商学院 web开发实验项目五 Servlet技术开发实验Web.docx
《广东商学院 web开发实验项目五 Servlet技术开发实验Web.docx》由会员分享,可在线阅读,更多相关《广东商学院 web开发实验项目五 Servlet技术开发实验Web.docx(34页珍藏版)》请在冰豆网上搜索。
![广东商学院 web开发实验项目五 Servlet技术开发实验Web.docx](https://file1.bdocx.com/fileroot1/2023-7/27/22381545-f187-4481-a4d0-ea3c338bdfc0/22381545-f187-4481-a4d0-ea3c338bdfc01.gif)
广东商学院web开发实验项目五Servlet技术开发实验Web
实验报告
课程名称Web开发技术
实验项目名称实验项目五
Servlet技术开发实验
班级与班级代码(2012-2013-1)-113283-11006-2
实验室名称(或课室)实验楼403
专业2010信息管理与信息系统1班
任课教师傅清波
学号:
姓名:
实验日期:
2012年11月13日
广东商学院教务处制
姓名实验报告成绩
评语:
项目等级
优
良
中
评分
实验态度(10)
对实验内容积极准备,认真预习,无迟到早退现象。
对实验内容有所准备、预习,无迟到早退现象。
对实验内容无准备、预习,有迟到早退现象。
实验原理(10)
对相关技术原理理解正确,知识掌握充分。
对相关技术原理和知识能够正确理解。
对相关技术原理和知识不理解。
操作结果(10)
能够按照正确的实验步骤进行操作,并得出正确的实验结果。
全部完成,正确率90%以上。
能够按照正确的实验步骤进行操作,并得出正确的实验结果。
正确率70%以上。
实验操作步骤有误,实验结果正确率60%以下。
实验分析(40)
对思考分析题能进行正确的实验验证,正确率90%以上。
对思考分析题能进行正确的实验验证,正确率70%以上。
对思考分析题有实验验证,正确率60%以下。
实验总结(20)
对相关技术重点难点问题解决能够深刻领会,举一反三,感受真实。
对相关技术重点难点问题解决能够领会,感受真实。
对相关技术重点难点问题认识模糊,感受不真实。
报告格式(10)
格式规范,组成部分完整,内容充实。
格式规范,组成部分完整。
格式不规范,组成部分不完整。
实验成绩
指导教师(签名)
年月日
说明:
指导教师评分后,实验报告交院(系)办公室保存。
实验项目五Servlet技术开发实验
一、实验目的
1、了解和掌握Servlet接口的使用方法;
2、掌握Servlet的配置方法;
3、掌握Web监听的常用的方法;
4、掌握Web应用过滤器的开发方法。
二、实验内容
参照教材第7章内容,完成一个Servlet程序的开发和配置过程。
参照教材第8章内容,创建Web监听和过滤程序。
三、实验原理
Servlet技术原理、Web监听和过滤原理。
四、实验环境
电脑主机CPUintelcorei5-2450m、RAM6G,操作系统Windows764位,开发工具Myeclipse8.5。
五、实验步骤
(一)Servlet程序的开发和配置过程
1、打开Myeclipse8.5软件,新建一个web工程“jsp56”;
图1:
新建“jsp56”工程
2、在src文件夹下新建一个com包;
图2:
新建“com”包
3、在com包下新建一个servlet,配置如下图,输入源代码并保存;
图3:
新建servlet并配置
图4:
输入源代码
4、运行工程“jsp56”,在浏览器中输入链接http:
//127.0.0.1:
8080/jsp56/hello访问;
(二)创建Web监听
1、在com包下新建一个MyServletContextListener类,输入代码并保存;
图5:
新建MyServletContextListener类
图6:
输入源代码并保存
2、编辑WebRoot/WEB-INF/web.xml文件,部署监听器;
图7:
部署监听器
3、编写测试程序test.jsp对其进行测试,输入代码并保存;
图8:
新建test.jsp
3、在浏览器中输入链接http:
//127.0.0.1:
8080/jsp56/test.jsp访问,访问成功后可在C盘下浏览执行的结果记录test.txt;
4、实现监听HTTP会话,在com包下新建一个SessionListener类;
5、新建index.jsp、display.jsp、session.jsp、login.jsp、logout.jsp、end.jsp等页面并输入代码:
图9:
新建JSP页面
6、编辑WebRoot/WEB-INF/web.xml文件,部署监听器;
图10:
部署监听器
(三)创建过滤程序
1、在com包下新建一个EncodingFilter类,输入代码并保存;
图11:
新建一个EncodingFilter类
2、编辑WebRoot/WEB-INF/web.xml文件,部署过滤器;
图12:
部署过滤器
图13:
声明过滤器初始函数
3、新建SignonFilter.java
图14:
新建SignonFilter类
4、配置auth过滤器
图15
图16
图17
图15-图17:
配置auth过滤器
六、实验结果
(一)通过配置和调试,“Servlet程序的开发和配置实验”的结果如下:
图18:
最终实验结果页面
(二)通过配置和调试,“创建web监听程序”的结果如下:
图19:
访问test.jsp
图20:
保存执行结果记录的test.txt文件
(三)过滤程序测试结果
1、访问http:
//127.0.0.1:
8080/jsp56/index.jsp,控制台提示如下信息:
2、在首页输入名称与事件,点击提交,进入session.jsp页面,控制台提示如下信息:
七、实验分析
对于servlet技术,需要先写一个相应的java类,然后需要在web.xml文件中增加对servlet的描述,最后就可实现对servlet的访问。
而对于web监听,通过创建监听程序对某些动作进行监听,同样需要在web.xml文件中对其进行描述。
最后是过滤器的开发,过滤器是客户端发来请求所要经历的第一道关卡,可以实现多种功能,比如完成可以验证客户是否来自可信的网络,对数据重新编码,获得系统配置信息等。
与servlet和监听程序一样,它也需要在web.xml文件中进行描述才能正常工作
工程中包含的文件如下图所示:
八、实验结论
在本次实验中,最重要的对web.xml文件的配置,不管是servlet、Filter还是Listeners,若在web.xml文件中对其配置错误,都可能造成网站访问异常。
同时通过此次实验,能了解和掌握servlet、监听器、过滤器的基本原理。
为以后的JSP编程巩固基础。
附源代码:
//EncodingFilter.java(\jsp56\src\com)
packagecom;
importjavax.servlet.FilterChain;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjava.io.IOException;
importjavax.servlet.Filter;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.ServletException;
importjavax.servlet.FilterConfig;
publicclassEncodingFilterimplementsFilter
{
protectedFilterConfigfilterConfig;
privateStringtargetEncoding="gb2312";
/**
*初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
*/
publicvoidinit(FilterConfigconfig)throwsServletException{
this.filterConfig=config;
this.targetEncoding=config.getInitParameter("encoding");
}
/**
*进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
*/
publicvoiddoFilter(ServletRequestsrequest,ServletResponsesresponse,FilterChainchain)
throwsIOException,ServletException{
System.out.println("使用以下方法对请求进行编码:
encoding="+targetEncoding);
HttpServletRequestrequest=(HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding);
//把处理权发送到下一个
chain.doFilter(srequest,sresponse);
}
publicvoidsetFilterConfig(finalFilterConfigfilterConfig)
{
this.filterConfig=filterConfig;
}
//销毁过滤器
publicvoiddestroy()
{
this.filterConfig=null;
}
}
//HelloWorldServlet.java(\jsp56\src\com)
packagecom;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloWorldServletextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsIOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriterout=response.getWriter();
out.println("");
out.println("
");
out.println("
HelloWorld");
out.println("");
out.println("");
out.println("
");
out.println("HelloWorld");
out.println("你好!
世界");
out.println("