JavaWeb实验报告Word文档下载推荐.docx
《JavaWeb实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JavaWeb实验报告Word文档下载推荐.docx(50页珍藏版)》请在冰点文库上搜索。
![JavaWeb实验报告Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/27ee103a-88e3-43b2-880c-82ff2e9737c6/27ee103a-88e3-43b2-880c-82ff2e9737c61.gif)
xmlversion="
1.0"
encoding="
UTF-8"
>
web-appversion="
2.5"
<
display-name>
/display-name>
servlet>
servlet-name>
TestLifeCycleServlet<
/servlet-name>
servlet-class>
/servlet-class>
/servlet>
servlet-mapping>
url-pattern>
/servlet/TestLifeCycleServlet<
/url-pattern>
/servlet-mapping>
welcome-file-list>
welcome-file>
index.jsp<
/welcome-file>
/welcome-file-list>
/web-app>
运行结果
实验二
第一步
先建一个webproject命名为wy,在src目录下新建一个Servlet命名为ThreeParams
publicclassThreeParamsextendsServlet{
privatestaticfinallongserialVersionUID=1L;
protectedvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{
response.setContentType("
text/html;
charset=GBK"
);
//解决post方式提交内容的乱码
//一定要写在存取第一个参数之前
request.setCharacterEncoding("
GBK"
//解决get方式乱码问题:
-->
URIEncoding="
PrintWriterout=response.getWriter();
out.println(request.getParameter("
sName"
));
//获取名字
out.println("
br>
"
//显示名字
sex"
age"
}
protectedvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{
doGet(request,response);
}
编写jsp文件,使其能调用java文件
html>
head>
title>
MyJSP'
QueryForm.jsp'
startingpage<
/title>
/head>
body>
formaction="
/wy/servlet/ThreeParams"
method="
post"
输入姓名:
inputtype="
text"
name="
输入性别:
输入年龄:
submit"
value="
查询"
/form>
/body>
/html>
建立关联,并把tomcat跑起来。
程序结果
实验二JSP应用程序设计(内置对象)
5、加强对servlet的生命周期的理解;
掌握servlet程序的实现方法。
1、掌握表单的使用方法,以及服务器端处理表单请求的方法;
2、掌握页面跳转的解决方法;
4、重点掌握JSP内置对象request、response、application、session。
1、熟悉JSP开发环境的各项设置。
2、建立Web工程。
该工程有如下要求:
根据用户类型(教师/学生)显示不同的页面。
需要定义设计如下页面:
1)登录页面(Login.html)
图1登录页面
在上述登录页面提供计数器功能,在页面右侧显示:
“本网站访问次数:
”后面显示被访问次数。
提示:
用户类型的输入用下拉列表实现,下拉列表的使用见教材P.57-58例exa3_7.jsp。
2)forward.jsp
根据用户类型,进行任务转发(逻辑处理)。
如果是教师类型,把任务转发给teacher.jsp;
如果是学生类型,把任务转发给student.jsp
3)teacher.jsp
如果用户名和密码都等于teacher,跳转到本页面(teacher.jsp),输出“欢迎您的访”,同时在本页面提供留言板的功能;
否则页面返回到Login.html。
留言板的功能利用内置对象application实现。
参见教材P.78-79示例。
4)student.jsp
如果用户名和密码不为空,输出:
您输入的用户名是***。
5)loginfail.jsp
若用户名或密码为空,则返回到login.html重新登录,并在登录页面的表单上方显示:
“用户名或密码不能为空!
”。
图2登录失败后出现的页面
创建登陆页面Login.html
提供用户类型选择,用户名和密码输入框。
并用计数器记录本网站访问次数。
第二步:
创建登陆处理页面Login.jsp
第三步:
创建forward.jsp
如果角色选择为教师(即b),并且用户名为shiyunmei,密码为1234,则跳转到Teacher.jsp页面;
如果角色选择为学生(即c),并且用户名也windy,密码为1234,则跳转到Student.jsp页面;
以上两种情况都不是跳转到Loginfail.jsp页面。
第四步:
创建学生处理页面Student.jsp
第五步:
创建老师处理界面Teacher.jsp
输出“欢迎您的访问”,同时提供留言板功能和查看留言板的功能。
当按提交信息时,表单会跳转到messagePane1.jsp页面,提交方法为post;
当按查看留言板时,会跳转到showMessage1.jsp页面,提交方法为post。
第六步:
创建提交信息处理界面messagePane1.jsp
输出“您的信息已经提交”。
该页面讲留言存入向量,并将向量存放在application对象中。
第七步:
创建查看留言板处理界面showMessage.jsp
当查看留言板时,showMessage.jsp负责从application对象中取出向量,并遍历向量显示其中所有的留言。
第八步:
创建Loginfail.jsp页面
”
代码:
Login.jsp:
%@pagelanguage="
java"
import=pageEncoding="
gb2312"
%>
%!
intnumber=1;
synchronizedvoidcountPeople()//同步方法
{
number++;
}
%>
%
if(session.isNew())//判断是否为新用户
{
countPeople();
Stringstr=String.valueOf(number);
session.setAttribute("
count"
str);
//将str增加到session对象中
P>
您是第<
%=(String)session.getAttribute("
)%>
个访问本站的人。
p>
请选择用户类型
forward.jsp"
name=form>
//提交表单后跳转到foward.jsp页面,提交方法为post
SELECTname="
a"
>
OPTIONname=Teachervalue="
b"
教师
OPTIONname=Studentvalue="
c"
学生
/SELECT>
用户登录
用户名:
username"
size="
20"
密码:
password"
size=20>
提交您的选择"
/p>
forward.jsp
GB2312"
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"
:
//"
+request.getServerName()+"
+request.getServerPort()+path+"
/"
;
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
basehref="
%=basePath%>
forward.jsp'
%
if(request.getParameter("
)!
=null&
&
request.getParameter("
=null){
Stringrole=request.getParameter("
//从request中拿出名字叫a的值,赋给role
StringName=request.getParameter("
//从request中拿出名字叫username的值,赋给Name
StringPassword=request.getParameter("
//从request中拿出名字叫password的值,赋给Password
if(role.equals("
)&
Name.equals("
shiyunmei"
)&
Password.equals("
1234"
))//如果选择老师,用户名为施运梅,密码为1234,则发送到老师页面
{
session.setAttribute("
Login"
"
OK"
response.sendRedirect("
Teacher.jsp"
}
elseif(role.equals("
windy"
))//如果选择学生,用户名为windy,密码为1234,则发送到学生页面
{
session.setAttribute("
response.sendRedirect("
Student.jsp"
else
Loginfail.jsp"
//都不符合,则发送到Loginfail.jsp
Student.jsp
Student.jsp'
您的用户名为:
windy<
Teacher.jsp
Teacher.jsp'
%--<
formaction=Login.jspmethod="
POST"
LoginName:
userName"
LoginPassword:
Password"
Send"
--%>
欢迎您的访问!
FORMaction="
messagePane1.jsp"
method=postnam=form>
%--当按提交时,跳转到messagePane1,提交方法为post--%>
输入您的留言:
TEXTAREAname="
messages"
ROWs="
10"
COLS=36WRAP="
physical"
/TEXTAREA>
INPUTtype="
提交信息"
/FORM>
showMessage1.jsp"
form1"
%--当按查询时,跳转到showMessage1,提交方法为post--%>
查案留言板"
look"
messagePane1.jsp
messagePane1.jsp'
Vectorv=newVector();
inti=0;
ServletContextapplication;
synchronizedvoidsendMessage(Strings)
{application=getServletContext();
i++;
v.add("
No."
+i+"
"
+s);
application.setAttribute("
Mess"
v);
Stringmessages=request.getParameter("
if(messages==null)
{messages="
无信息"
sendMessage(messages);
out.print("
您的信息已经提交!
AHREF="
返回<
/A>
showMessage1.jsp
showMessage1.jsp'
%Vectorv=(Vector)application.getAttribute("
for(inti=0;
i<
v.size();
i++)
{Stringmessage=(String)v.elementAt(i);
StringTokenizerfenxi=newStringTokenizer(message,"
#"
while(fenxi.hasMoreTokens())
{Stringstr=fenxi.nextToken();
bytea[]=str.getBytes("
ISO-8859-1"
str=newString(a);
BR>
+str);
}
Loginfail.jsp
Loginfail.jsp'