admin 管理员组文章数量: 887629
2023年12月23日发(作者:java中switch的格式)
实验2 Struts 2 入门
一. 目的要求
1.掌握Struts 2 开发环境的搭建;
2.理解Strtus 2 的工作流程;
3.掌握Struts 2 的和文件配置。
二.实验任务
1. 搭建Struts 2 的开发环境;
2. 实现用户登录。
三.实验环境、设备
PC、Tomcat7.0、strtus2.3.4、Eclipse。
四.实验指导
4.1 背景知识简述
如果在文件中配置了FilterDispatcher过滤器,且关联了action资源,当用户发送一个以.action结尾的请求后,Struts2框架将根据*.action请求前面的”*”来决定调用哪个业务。
配置文件起映射作用,它根据”*”来决定调用用户定义的哪个Action类。Struts2的拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到用户定义的Action类中,然后再调用其execute()方法处理用户请求,处理结束会返回一个值,此时,Struts框架又起映射作用,会根据其返回值来决定跳转到哪个页面。
4.2 试验内容
根据本单元已学的Struts 2的相关知识完成图书馆管理系统的用户登录模块的设计,要求如下:
(1)当首次登录页面时,程序提示用户“您尚未登录,请登陆”。
(2)单击“登录超链接”,系统会自动跳转到登陆页面。
(3)在登录页面中,若用户在文本框和密码框什么都不输入,就单击“确
定”按钮,则该页面会出现“用户名不能为空”和“密码不能为空”的提示性信息。
(4)当用户输入的用户名和密码错误时,即用户名和密码不是指定的用户名和密码,系统会在当前页面上显示“用户名和密码出错”,要求用户重新输入。
(5)如果用户输入的用户名和密码无误,就会跳转到成功页面,在成功登录页面上显示当前登录的用户名和详细信息。
(6)用户输入的用户名和密码可以是数字和中英文字符等。
4.3 实验步骤
1. 搭建Struts 2 开发环境;
2. 建立一个Web Project(命名为struts_0101),并添加Struts 2 jar
包;
3. 编写登录页面()、登录成功(login_)和登录失败页面(login_);
4. 编写Ation实现类,继承ActionSupport,重写execute()方法;
5. 配置;
6. 配置;
7. 部署、启动Tomcat;
8. 运行:在IE地址栏输入localhost:8080/struts_0101/
4.4 源代码清单
:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import=""%>
<%
String path = textPath() + "/";
境)
String basePath = eme() + "://" +
verName() + ":" + verPort() + path;
String str = UUID().toString();
%>
//context 上下文(环
"/TR/html4/">
}
("username=" + userName +"&password="+password);
style="height:400px;width:350px;float:left;border:10">
loginAction:
package s;
import ist;
import ;
import rvletRequest;
import del;
import ols;
public class LoginAction {
private UserModel um;
HttpServletRequest request;
public void execute() {
}
public String find(){
("进入findAction");
String un = rName();
String pw = sword();
String sql = "select * from bookinfo where username
='"+un+"'";
}
:
"-//Apache Software Foundation//DTD Struts Configuration
public void setUm(UserModel um) {
}
= um;
}
public UserModel getUm() {
}
return um;
JDBCTools jt = new JDBCTools();
ArrayList
Map
String pw1 = ("PASSWORD");
if ((pw1)) {
n("-------------- 登陆 成功");
ribute("un",rName());
return "success";
} else {
}
return "saveError";
2.1//EN"
"/dtds/">
class="ction" method="execute" >
:
xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_"> Dispatcher
JDBCTools:
public ArrayList
ArrayList
try {
rsList = new ArrayList
e("");
Connection conn =
nection("jdbc:mysql://localhost:3308/test",
"huyue", "huyue");
Statement stmt = Statement();
ResultSet rs = eQuery(sql);
ResultSetMetaData rsmd = aData();
while (()) {
Map
HashMap
for (int i = 1; i <= umnCount();
i++) {
String columnName =
umnName(i);
}
}
}
(rsMap);
String value = ing(columnName);
(columnName, value);
} catch (Exception e) {
}
return rsList;
tackTrace();
UserModel:
package ;
public class UserModel {
private int userid;
private String userName;
private String password;
private String sex;
private int age;
private String telNum;
private String email;
public int getUserid() {
}
return userid;
public void setUserid(int userid) {
= userid;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
me = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
rd = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
= sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
= age;
}
public String getTelNum() {
return telNum;
}
public void setTelNum(String telNum) {
= telNum;
}
}
public String getEmail() {
}
public void setEmail(String email) {
}
= email;
return email;
4.5 运行结果截图
4.6 回答问题
1.简述Struts2的体系结构。
答:Struts2是一个上拉型MVC框架。在Struts2的模型-视图-控制器模式,实现以下五个核心部件:Actions,Interceptors,Value
Statck/OGNL,Results/Result types,View technologies.
2.简述Struts2的工作机制。
答:Struts2与WebWork的工作方式类似,它同样使用了拦截器作为其处理用户请求的控制器。在Struts2中有一个核心控制器FilterDispatcher,这个核心控制器相当于Struts1的ActionServlet类。FilterDispatcher负责处理用户的所有请求,如果遇到以“.action”结尾请求的URL,就会交给Struts2框架来处理,具体步骤如下:(1)客户端浏览器发送请求,此时客户端会初始化一个指向Servlet容器的请求。(2)这个请求要经过一系列的过滤器(3)接着核心控制器FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定是否调用action以及调用哪个action(4)如果ActionMapper决定需要调用某个action,FilterDispatcher把请求的处理交给ActionProxy(5)ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的action(6)ActionProxy创建一个ActionInvocation的实例(7)ActionInvocation实例使用命名模式来调用,在调用Action的execute()方法之前,struts2回调用一系列的拦截器以提供一些通用的功能。(8)在调用完拦截器链之后,struts2会调用action的execute方法(9)一旦action执行完毕,ActionInvocation负责根据中的配置找到相应的返回结果。
3.叙述实验中的文件中,各个元素代表的含义,以及在工程中的位置。
答:(1)
class="ction" method="execute" >
(2)是Struts2的核心配置文件,通常放在Web应用程序的WEB-INF/classes目录下
版权声明:本文标题:实验2Struts2入门 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703307918h446306.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论