实验2Struts2入门.docx
《实验2Struts2入门.docx》由会员分享,可在线阅读,更多相关《实验2Struts2入门.docx(15页珍藏版)》请在冰点文库上搜索。
实验2Struts2入门
实验2Struts2入门
一.目的要求
1.掌握Struts2开发环境的搭建;
2.理解Strtus2的工作流程;
3.掌握Struts2的web.xml和struts.xml文件配置。
二.实验任务
1.搭建Struts2的开发环境;
2.实现用户登录。
三.实验环境、设备
PC、Tomcat7.0、strtus2.3.4、Eclipse。
四.实验指导
4.1背景知识简述
如果在web.xml文件中配置了FilterDispatcher过滤器,且关联了action资源,当用户发送一个以.action结尾的请求后,Struts2框架将根据*.action请求前面的”*”来决定调用哪个业务。
struts.xml配置文件起映射作用,它根据”*”来决定调用用户定义的哪个Action类。
Struts2的拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到用户定义的Action类中,然后再调用其execute()方法处理用户请求,处理结束会返回一个值,此时,Struts框架又起映射作用,会根据其返回值来决定跳转到哪个页面。
4.2试验内容
根据本单元已学的Struts2的相关知识完成图书馆管理系统的用户登录模块的设计,要求如下:
(1)当首次登录页面时,程序提示用户“您尚未登录,请登陆”。
(2)单击“登录超链接”,系统会自动跳转到登陆页面。
(3)在登录页面中,若用户在文本框和密码框什么都不输入,就单击“确定”按钮,则该页面会出现“用户名不能为空”和“密码不能为空”的提示性信息。
(4)当用户输入的用户名和密码错误时,即用户名和密码不是指定的用户名和密码,系统会在当前页面上显示“用户名和密码出错”,要求用户重新输入。
(5)如果用户输入的用户名和密码无误,就会跳转到成功页面,在成功登录页面上显示当前登录的用户名和详细信息。
(6)用户输入的用户名和密码可以是数字和中英文字符等。
4.3实验步骤
1.搭建Struts2开发环境;
2.建立一个WebProject(命名为struts_0101),并添加Struts2jar包;
3.编写登录页面(login.jsp)、登录成功(login_success.jsp)和登录失败页面(login_fail.jsp);
4.编写Ation实现类,继承ActionSupport,重写execute()方法;
5.配置web.xml;
6.配置struts.xml;
7.部署、启动Tomcat;
8.运行:
在IE地址栏输入http:
//localhost:
8080/struts_0101/login.jsp
4.4源代码清单
Login.jsp:
<%@pagelanguage="java"contentType="text/html;charset=utf-8"
pageEncoding="utf-8"%>
<%@pageimport="java.util.UUID"%>
<%
Stringpath=request.getContextPath()+"/";//context上下文(环境)
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path;
Stringstr=UUID.randomUUID().toString();
%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
login.jsp
functiondenglu(){
varuserName=document.getElementsByName("userName").value;
varpassword=document.getElementsByName("password").value;
if(userName==""){
alert("用户名不能为空");
}elseif(password==""){
alert("密码不能为空");
}else{
varreq=newXMLHttpRequest();
req.onreadystatechange=function(){
if(req.readyState==4){
vardata=req.responseText;//响应数据
if(data>0){
location.href="success。
jsp?
un="+username;
}else{
alert("用户名或密码错误");
}
}
}
req.open("post","Login.action",true);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.send("username="+userName+"&password="+password);
}
}
500px;width:
450px;float:
left">
400px;width:
350px;float:
left;border:
10">
会员名:
25px;width:
220px"name="userName"value=""/>
密 码:
25px;width:
220px"type="password"name="password"value=""/>
40px;width:
290px;sborder:
0;font-size:
17px;"type="button"value="登录"onclick="denglu()"/>