一、实验目的

学习Struts2框架的概念及使用方法,学会使用Struts2开发Web程序的过程及其设计案例。

二、实验原理

Struts框架提供了一种基于MVC体系结构的Web程序的开发方法,具有组件模块化、灵活性和重用性等优点,使基于MVC模式的程序结构更加清晰,同时也简化了Web应用程序的开发。本章主要介绍Struts2框架的使用方法及其使用Struts2开发Web程序的过程及其设计案例。

1、Struts2的组成与工作原理

Struts2是基于MVC模式的Web框架,Struts2框架按照MVC的思想主要有,控制器层,模型层,视图组件。

(1)模型组件:模型组件是实现业务逻辑的模块,由JavaBean或者EJB构成。

(2)视图组件:视图组件主要有:HTML、JSP和Struts2标签,以及FreeMarker、Velocity等模板视图技术。

(3)控制器组件:控制器组件主要由一个StrutsPrepareAndExecuteFilter核心控制器和业务控制器Action组成。

2、Struts2的业务控制器——Action类

开发基于Struts2的Web应用程序时,action是程序的核心,需要编写大量的Action类,并在struts.xml文件中配置Action。Action类中包含了对用户请求的处理逻辑,因此,也把Action称为Action业务控制器。设计Struts2中对Action类没有特殊要求,可以是任意的Java类。

Action类的实现有3种方式:

•普通的Java类作为Action

•继承ActionSupport实现Action

•对象属性驱动的Action

3、Struts2的OGNL表达式和标签库

Struts视图可以使用JSP、HTML、JavaScript 和样式表等技术外,Struts2框架专门给出自己的标签库,OGNL表达式和国际化处理方式。

OGNL可以通过简单的表达式来访问Java对象中的属性。它是Struts2框架的默认表达式语言。Struts2框架中的ActionContext是OGNL的根对象,即Action对象是OGNL的根对象。假设在Action中有一个属性类型是对象Student(name, age),变量名是stu,那么访问属性name的OGNL表达式为stu.name。访问其他Context中的对象的时候,由于不是根对象,在访问时需要加“#”前缀。

三、实验内容

设计一个简单的Web程序,其功能是让用户输入两个整数,并提交给Action,在Action中计算这两个数的代数和,如果代数和为非负数,则跳转到ch11_1_Positive.jsp页面,否则跳转到ch11_1_Negative.jsp页面。步骤如下:

(1)在MyEclipse中创建Web工程ch11_1_StrutsAdd(注意:在创建Web工程时,最好选用JavaEE规范),并导入Struts2必需的jar包。

(2)修改web.xml配置文件,在web.xml中添加如下的配置信息:

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

(3)编写JSP页面,该系统需要3个页面:

①提交数据页面:ch11_1_Input.jsp代码:

<%@ page language="java" import="java.util.*"

pageEncoding="UTF-8"%>

<html>

<head><title>提交两数据页面</title></head>

<body>

<form action= "add"  method="post">

请输入两个整数:<br><br>

加数:<input name="x"/><br><br>

被加数:<input name="y"/><br><br>

<input type="submit" value="求和">

</form>

</body>

</html>

②代数和为非负数时要跳转到页面ch11_1_Positive.jsp代码:

<%@ page language="java"  pageEncoding="UTF-8"%>

<%@  taglib prefix="s" uri="/struts-tags"%>

<html>

<head>

<title>显示页面——代数和为非负整数</title>

</head>

<body>

代数和为非负整数:<s:property value="sum"/>

</body></html>

③代数和为负数时要跳转到页面ch11_1_Negative.jsp代码:

<%@ page language="java"  pageEncoding="UTF-8"%>

<%@  taglib prefix="s" uri="/struts-tags"%>

<html>

<head><title>显示页面——代数和为负整数</title></head>

<body>

代数和为负整数:<s:property value="sum"/>

</body></html>

(4)设计控制类(Action类):Ch11_1_Action.java,属性x、y用于接受用户提交的数据,而sum用于保存计算结果。

package Action;

public class Ch11_1_Action {

private int x;

private int y;

private int sum;

public int getX() {return x;}

public void setX(int x) {this.x = x;}

public int getY() {return y;}

public void setY(int y) {this.y = y;}

public int getSum() {return sum;}

public String execute() {

sum=x+y;

if(sum>=0) return "+";

else return "-";}

(5)修改struts.xml配置文件,配置Action

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="default" namespace="/" extends="struts-default">

<action name="add" class="Action.Ch11_1_Action">

<result name="+">/ch11_1_Positive.jsp </result>

<result name="-">/ch11_1_Negative.jsp</result>

</action>

</package>

</struts>

Struts2框架的概念及使用方法相关推荐

  1. 第14篇:Struts2框架下Log4j2漏洞检测方法分析与总结

     Part1 前言  Log4j2漏洞出现有大半年的时间了,这个核弹级别的漏洞危害很大,但是这个漏洞检测起来却很麻烦,因为黑盒测试无法预判网站哪个应用功能在后台调用了log4j2记录日志功能.目前通用 ...

  2. 第2篇:区分Spring与Struts2框架的几种新方法

    Part1前言 在近几年的HW比赛.红队项目中,攻击队在外围打点时,越来越依赖于对Java站点的漏洞挖掘.Java站点的主流框架大致就是两个:Struts2系列(包括Webwork等)及Spring系 ...

  3. Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。...

    1. spring整合struts的基本操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2 ...

  4. Struts2框架--学习笔记(上):搭建struts2工程、struts2基本概念、struts2对页面数据的操作

    概述: Struts2框架应用于javaee三层框架中的web层.是在Struts1和webwork基础上发张的一个全新的框架. 一.搭建一个最基本的struts2工程步骤: 1.导入基本的jar包依 ...

  5. 关于将struts2框架下,使自定义过滤器对部分的action(一个action或多个action)请求忽略的方法

    关于将struts2框架下,使自定义过滤器对部分的action请求忽略的方法 首先需要了解一个方法 request.getServletPath() 他将返回一个当前请求的路径的醉详细名称 例如对路径 ...

  6. java struts2国际化代码下载_【Java框架】java struts2框架中页面表示国际化的方法 - 思诚科技...

    在struts2框架中,前端页面表示国际化的实现更加简单.简单的应用struts2框架提供的支持国际化的表达式即可快速方便的进行页面的国际化的实现.如何做呢?本文以英文和中文为例进行说明. 1,自定义 ...

  7. 基于Struts2框架的名片管理系统

    目录 1.系统设计 2.数据库设计 3.系统管理 4.用户管理 5.名片管理 本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5,集 ...

  8. struts2通配符_基于Struts2框架的名片管理系统

    本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5,集成开发环境为Eclipse IDE for Java EE Developer ...

  9. Spring笔记 整合SSM[Struts2框架] 万神小栈

    一 spring概述 1.1 web项目开发中的耦合度问题 微信小程序搜索 万神小栈 更多资源等你发现! 如果文章对你有帮助别忘了点赞加关注喔~ 在servlet中需要调用service中的方法,则需 ...

  10. Struts2框架学习笔记_Struts2入门

    文章为学习struts的笔记,可供读者参考,有不足之处还望之指出. 参考: POJO与JavaBean的区别 Velocity Velocity官网 FreeMarker XSLT struts2 学 ...

最新文章

  1. Java项目:网上水果蔬菜项目系统设计和实现(java+springboot+mysql+ssm)
  2. C# Regex(2)
  3. python猜数游戏在程序中预设一个_一道Python简单程序结构练习题
  4. 正则表达式中的小括号用法
  5. python将元组转换为列表_使用python将元组转换成列表,并替换其中元素
  6. Delphi连接AutoCAD_计算任意线条的长度宏的嵌套
  7. oracle desc能看约束,ORACLE 12C新特性-DESC显示不可见字段 | 信春哥,系统稳,闭眼上线不回滚!...
  8. [Ubuntu] Simple way to pass passwords on a shell script
  9. 基于java SSM springboot景区行李寄存管理系统设计和实现
  10. python代码写好了怎么运行-python代码如何运行
  11. Tomcat 日志文件分割
  12. 已知两点坐标求水平距离_过中心的弦---极坐标
  13. Odoo与ERP传统软件有什么不同?
  14. CentOS7 安装jdk8教程
  15. 自适应特征融合用于Single-Shot目标检测(附源代码下载)
  16. 计算机单元测验2符号化,地理信息系统概论
  17. k均值聚类算法原理和TensorFlow实现
  18. 雨滴网易云播放器html代码,【问题求助】这种代码的播放器怎么关联网易云?...
  19. [Python人工智能] 九.gensim词向量Word2Vec安装及《庆余年》中文短文本相似度计算
  20. FLD5302和FLD5303升压充电芯片

热门文章

  1. VM9.0链接+汉化包+序列号
  2. 小甲鱼python课后习题【1,2,3,4,5】
  3. c语言实现《学生管理系统》
  4. java实验报告心得_java实验报告心得体会.doc
  5. linux备份系统iso,将Linux系统转换为ISO镜像文件以实现备份
  6. python下载离线包
  7. JAVA毕设项目vue架构云餐厅美食订餐系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  8. linux系统下JDK的下载安装和配置教程
  9. 51单片机模拟交通灯c语言程序,51单片机protues仿真——LED模拟交通灯
  10. perl语言十分钟入门【零基础可入】