JavaEE实验报告电子档Word文档下载推荐.docx
《JavaEE实验报告电子档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JavaEE实验报告电子档Word文档下载推荐.docx(44页珍藏版)》请在冰点文库上搜索。
要
求
(1)熟悉JavaEE编程环境JDK和NetBeans的安装,配置和使用;
(2)掌握Servlet的编写及部署;
(3)掌握Servlet的工作原理和编程接口;
(4)掌握Servlet中客户端输入数据处理技术;
(5)掌握Servlet中的会话跟踪技术;
(6)掌握Servlet中的请求指派技术;
(7)掌握Servlet上下文属性的使用方法;
(8)掌握Servlet中Filter基本编程技术;
(9)掌握Servlet中Listener基本编程技术;
原
理
(
算
法
流
程
)
实验原理:
1、登陆界面:
由于登陆时要输入姓名的中文,需要编码语言格式,将输入的内容转换成中文:
<
meta
http-equiv="
Content-Type"
content="
textml;
charset=gb2312"
>
在网页中插入图片作为登陆页面的背景:
<
body
background="
2.jpg"
用post方法提交登陆的表单,将内容交给Main函数处理:
form
name="
login"
method="
post"
action="
Main"
设置表格参数包括表宽,表框宽度和居中:
table
width="
52%"
border="
2"
align="
center"
设置表单内容格式,和内容:
td
43%"
div
用户名
td
密码
2、登陆失败:
响应一个Http的操作:
HttpServletRequest
request,
HttpServletResponse
response
获取输入值:
PrintWriter
out
=
response.getWriter()
如果用户输入了错误的用户名或者密码则会响应登陆失败:
out.println("
title>
登录失败<
/title>
"
);
h1>
登录失败,请重新登陆<
/h1>
3、登陆成功进入聊天室:
创建会话监听:
public
class
counterListener
implements
HttpSessionListener
创建会话时调用HttpSessionListener的方法。
销毁会话(使其无效)时调用
HttpSessionListener的方法。
在此处添加您的代码:
sessionDestroyed(HttpSessionEvent
evt);
定义一个日期格式:
SimpleDateFormatsdf=newSimpleDateFormat("
yyyy-mm-ddhh:
mm"
把字符串按照约定的格式转换成一个日期类型:
Date
contentTime=new
Date();
String
dateString
=timeformat.format(contentTime);
4、主函数:
定义主函数的扩展:
Main
extends
HttpServlet
编码转换:
response.setContentType("
charset=GB2312"
定义用户名和密码:
String
userID=request.getParameter("
userID"
写入小组成员的姓名和学号如:
if(userID.equals("
孙少伟"
)&
&
password.equals("
09066062"
))
{
request.getSession().setAttribute("
userID);
RequestDispatcher
dispatcher=request.getRequestDispatcher("
webchat"
若果输入错误则重新设置。
5、进入聊天室:
由http服务提供的,webchat服务:
webchat
用来处理一个HTTP的DELETE操作:
这个操作允许客户端请求从服务器上删除URL:
throws
ServletException,
IOException
用于设置输出的文档的类型:
response.setContentType
获取输入值:
获取聊天信息:
table
width=\"
58%\"
border=\"
2\"
align=\"
left
显示当前用户:
+counter.counte+;
输入聊天信息:
50%\"
1\"
left\
调用doget()和dopost()方法;
doGet(HttpServletRequest
response)
doPost(HttpServletRequest
流程图如下:
登录失败,返回
组
内
分
工
结
果
析
及
心
得
体
会
实验结果:
1、在主机A的浏览器地址栏输入:
http:
//localhost:
8080/webchat0/login.html进入当登陆页面:
2、输入正确的用户名及密码:
若输入了错误的用户名或密码,则会出现错误提示页面,并提醒重新输入:
3、登陆成功后进入聊天窗口:
4、若将另一台主机B的IP地址与改主机A的IP改为一样,进入该聊天室后,即可与主机A上的用户进行聊天:
心得体会:
王鹏:
通过Servlet的程序实验练习,学会了Netbeans软件开发环境的使用,并且对于其一些基本的使用功能有了比较具体的了解。
Servlet作为一种独立于操作系统平台和网络传输协议的的服务器端的Java应用程序,通过实验让我感受到了它最大的用途就是通过动态的响应客户端的请求来扩展服务器端的功能,并生成生成动态的Web页面。
通过实验进一步夯实了关于Servlet的相关基础知识,例如Servlet的编程接口,doGet()、doPost()、init()和destroy()等方法,还有Xml和Html标签语言,并且了解了Servlet程序的编程思想。
同时,在实验的过程中,不可避免的遇到了许多的问题,如页面的跳转、文字乱码、页面刷新计数错误的问题,但是通过小组成员的讨论和查阅相关的书籍,所有的问题都得到了解决,通过解决问题的过程,也锻炼了自己数据查询检索的能力,并且意识到了团队合作的重要性。
高圆圆:
此次实验是设计一个简单的聊天室,主要功能是用户登录并显示聊天内容和在线人数,并学会实现与数据库的连接实现。
通过至此实验在理解Servlet的基本概念,工作原理的基础上更加熟练对Servlet的应用。
方莹:
实验一的要求是让我们利用Servlet编程技术实现一个简单的聊天室系统,在我们小组的分工合作下,我从刚开始的只是熟悉JDK和NetBeans的操作环境,逐渐到学会了Servlet的编写,掌握它的工作原理。
同时为了实现一定的功能,了解到如何运用会话跟踪技术以及请求指派技术,学会如何添加Filter以及对程序的监听功能。
通过理论知识的学习,加上实验课上亲自动手编码的实练,我对JavaEE编程的认识以及运用方面都有很大的提高。
王璐:
通过此次实验使我对servlet的编程更加了解。
用servlet实现聊天界面,使用会话统计在线人数,在编写代码的过程中遇到了乱码问题,通过response.setContentType语句和request.setCharacterEncoding语句解决了。
对filter和listener的原理和编程方法也有了一定的认识,通过servlet的学习也对后面学习JSP打下基础。
孙少伟:
经过九个星期对JAVAEE编程技术的的学习,使我从开始的对Netbeans软件的熟悉了解,到编出第一个Servlte的程序,到最后的JSP的程序,收获了很多的东西,熟悉并掌握了如何使用Servelt和JSP编写程序,并且对这门课程产生了浓厚的兴趣,虽然JAVAEE与JAVA有实质性的不同,但是这两种编程技术的结合使得能够编写并搭建出企业级的应用程序,JAVAEE这门编程技术是许多其他技术不能相比的,它的高速反应性、安全性、可扩展性等都是得这个技术具有很高的实用性。
通过这些天的实验让我了解了什么是Servlet,什么是JSP,让我掌握了如何发送非HTML文档,如何进行会话管理,以及如何使用JSP与JavaBenas结合在一起,而且JSP的自定义标记和标准标记库都使得这门编程技术更具有灵活性和可是实性,尤其是与数据库的结合更能体现出它的优点。
此外,通过这段时间的实验,也体会到了团队的协作也是非常重要的,好的团队精神能够让大家收获更多的东西,能够做出更完美的项目。
仅从课堂学到的还远远不够,没有实践的检验是没有真正的学到知识。
成
绩
评
定
教师签名:
年月日
源代码如下:
login.html
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
html>
head>
metahttp-equiv="
text/html;
Login<
/head>
bodybackground="
h1align="
b>
简易群聊天室<
/b>
formname="
method="
action="
>
p>
/p>
tablewidth="
trbgcolor="
#ABCDEF"
tdalign="
width="
divalign="
用户名:
/div>
/td>
tdwidth="
57%"
left"
inputtype=textname="
value="
/tr>
密码:
inputtype="
password"
name="
div>
/table>
palign="
reset"
重置"
submit"
Submit2"
提交"
/form>
/body>
/html>
Main.java
packagecom.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.RequestDispatcher;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassMainextendsHttpServlet{
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException
{
request.setCharacterEncoding("
gb2312"
StringuserID=request.getParameter("
if(userID==null)
userID="
"
;
}
Stringpassword=request.getParameter("
if(password==null)
password="
}
许显通"
request.getSession().setAttribute("
RequestDispatcherdispatcher=request.getRequestDispatcher("
dispatcher.forward(request,response);
elseif(userID.equals("
杜天"
09066065"
张栩豪"
09066055"
程斌彬"
09066059"
严茗"
09066053"
else
Loginfail"
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
processRequest(request,response);
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
publicStringgetServletInfo(){
return"
Shortdescription"
}
Loginfail.java
publicclassLoginfailextendsHttpServlet{
PrintWriterout=response.getWriter();
/*TODOoutputyourpagehere*/
body>
login.html"
dispatcher.include(request,response);
out.close();
//<
editor-folddefaultstate="
collapsed"
desc="
HttpServletmethods.Clickonthe+signonthelefttoeditthecode."
Content.java
publicclassContentextendsHttpServlet{
staticStringcontent="
//<
comment"
;
throws