MVC模式-----struts2框架


第一个struts2程序

struts2框架是通过一个过滤器将struts2集成到Web应用程序中的,这个过滤器的对象是StrutsprepareAndExecuteFilter。struts2框架通过过滤器对象,获取web应用中的Http请求,并将http请求转发到的指定Action进行处理,Action根据处理结果返回给用户相应的页面。

创建一个简单的struts项目,需要创建于用户进行交互并获取输入信息的jsp页面:呈现最终信息的页面;创建一个用于业务逻辑处理的类;创建用于连接动作、视图及控制器的配置文件。

一、创建JSP页面

在web项目这,创建一个输入信息的index.jsp页面,通过form表单的action属性值调用struts框架中的Action对象,提交后,呈现success.jsp页面。

(补充form知识点:表单中的action属性规定在提交表单数据时,向何处发送数据)

http://localhost:8080/struts/index.jsp页面:

使用form表单提交用户的输入信息,输入的用户信息的name属性值与Action对象中的属性必须一一对应,从而方便控制器Action通过getXxx()方法获取用户的输入信息。

二、创建Action

在struts2框架中,提交的表单数据会自动注入到实现Action接口类对象相应的属性中,与Spring框架中的IOC注入原理相同。在实现Action接口的类中,一般通过setter方法为对象的属性进行注入。

Action对象的作用是处理用户的请求,创建继承ActionSupport的类,用于处理用户提交的表单信息。

目录:struts\src\action\MessageAction.java:

案例解析:本案例中,创建继承ActionSupport的类,用于处理用户的输入信息。该类中定义String型的私有成员变量message,并定义其setter和getter方法,通过getMessage()方法获得用户输入的信息。声明Map型的变量session,通过ActionContext类提供的getContext()方法获取ActionContext类的对象,再通过该对象调用getSession()方法获取Map型的变量session,将用户输入的信息message保存到session中。

在该类中重写execute()方法,通过if语句判断用户输入的信息是否是空字符串或null,若是则str为“输入信息不能为空!”,否则执行else语句,str是“信息不为空!”。通过if语句判断str的值,若值是“信息不为空!”,则返回字符串success,否则返回failed。

三、struts.xml文件

在struts.xml配置文件中,配置用户请求URL和控制器Action之间的映射信息,并转发用户的请求。

struts\src\struts.xml配置文件代码:

案例解析:本案例中,<action>节点没有指定method属性的值,则默认执行execute()方法。根据Action类中execute()方法的返回值,执行相应的<result>节点。若注册成功,则success.jsp页面返回注册信息;否则返回到注册页面。<package>节点的name属性指定包的名称,在struts2的配置文件中不能重复,它并不是真正的包名,只是为了管理Action。namespace和<action>节点的name属性,决定Action的访问路径(以“/“开始)。<action>节点的class属性指定类的路径,包含包名和类名。method指定类中的方法。<result>节点的name属性默认值为success。

四、web.xml文件

配置文件web.xml是一种J2EE配置文件,决定servlet容器的http元素需求如何进行处理。严格地说,它是配置struts2框架的文件。

在struts1.x中,struts框架是通过servlet启动的,而在struts2.x中,struts框架是通过Filter过滤器启动的。

web.xml配置文件代码:

案例分析:该web.xml文件是struts2框架请求的接入点,接入点是一个过滤器,因此在web.xml中定义一个StrutsPrepareAndExecuteFilter类的接入点。

在StrutsPrepareAndExecuteFilter类的init()方法中,读取类路径下默认的配置文件struts.xml,然后完成初始化操作。

过滤器<filter>节点中定义过滤器名称<filter-name>是struts2,并通过<filter-class>指定struts2类的全限定名,即包名和类名。在<filter-mapping>节点中<filter-name>指定名称与之前定义的相同,并通过<url-pattern>节点指定过滤器要过滤的文件的后缀名是*.action。

五、显示信息

在struts.xml配置文件中,配置了Action对象处理完成后,显示用户输入信息的页面success.jsp

地址:http://localhost:8080/struts/success.jsp

案例分析:通过session对象的getAttribute()方法,获取存储的用户输入信息message,并在页面显示。

六、运行并浏览器查看

MVC模式-----struts2框架(2)的更多相关文章

  1. MVC模式-----struts2框架

    MVC模式-----struts2框架 一.struts MVC模式 1.概述 MVC是模型(model)---视图model(view)---控制器(control)的缩写,是一种用于将逻辑.数据和 ...

  2. iOS通用的MVC模式项目框架MobileProject

    最近项目比较不赶的情况下,决定把一些通用.常用的内容集成在一个项目框架中,意在新项目中可以快速搭建:其实经过几个项目后,总是有一些重复的创建工作,可以使用本项目的内容直接进行开发:采用的是MVC的分层 ...

  3. MVC模式tp框架四中路由形式

    ①基本get形式 http://网址/index.php?m=分组&c=控制器&a=操作方法 该方法是最底层的get形式,传统的传递参数方式,不安全. ②pathinfo路径形式[默认 ...

  4. Struts2框架基础

    Struts2框架基础 1.Java的框架 1.1.框架简介 在大型项目开发过程中,经常会使用到一些框架,这样做好的好处是能够提高工作效率,在java中最常用的的框架就是SSH,这其实是三个框架的简称 ...

  5. 实现struts2框架

    Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages .Servlet.标签库以及面向对象的技术水准.最初的 ...

  6. 从零打造在线网盘系统之Struts2框架配置全解析

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  7. 什么是MVC模式?   

    MVC (Model View Controller) 是一个设计模式,使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务.M是指数据模型,V是指用户界面,C则是控制器. ...

  8. struts2的MVC模式

    MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率. 在MVC模式中,应用程序被划分成了模型(Model).视 ...

  9. 第九十七天请假 PHP TP框架 MVC模式

    MVC : M->Model 模型(数据层)     V->View 视图(视图层)  C->Controller 控制器(逻辑层)            M : 操作数据(连接数据 ...

随机推荐

  1. Canal学习笔记(服务端)

    canal服务端 canal服务端有两种运行模式,一种单机模式,一种HA运行模式(zk保证) 单机模式:同步的binlog节点信息保存在本地(/conf/{自定义分区文件夹}/),meta.dat H ...

  2. javascript之location详解

    window.location.hash 使用说明 今天给大家详细汇总了关于window.location.hash的知识点,属性以及用法等等,非常的实用,并附上了例子,有需要的小伙伴可以参考下. l ...

  3. Javascript高级编程学习笔记(35)—— DOM(1)节点

    DOM JS由三部分组成 1.BOM 2.DOM 3.ECMAScript ES和BOM在前面的文章已经介绍过了 今天开始JS组成的最后一部分DOM(文档对象模型) 我们知道,JS中的这三个部分实际上 ...

  4. 从零开始单排学设计模式「简单工厂设计模式」黑铁 III

    阅读本文大概需要 2 分钟. 本篇是设计模式系列的第二篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统.所以现在打算重写,加上距离现在也有一段时间了,也算 ...

  5. Java核心技术卷一基础技术-第13章-集合-读书笔记

    第13章 集合 本章内容: * 集合接口 * 具体的集合 * 集合框架 * 算法 * 遗留的集合 13.1 集合接口 Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制. 13. ...

  6. 吴恩达机器学习笔记46-K-均值算法(K-Means Algorithm)

    K-均值是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚类成不同的组. K-均值是一个迭代算法,假设我们想要将数据聚类成n 个组,其方法为: 首先选择

  7. Dockerfile常用指令

    FROM 构建的新镜像基于那个镜像 , FROM ubuntu:14 MAINTAINER 镜像维护者姓名或邮箱地址 RUN CMD EXPOSE  声明容器运行服务的端口 ENV ADD  拷贝文件 ...

  8. H5 notification浏览器桌面通知

    Notification是HTML5新增的API,用于向用户配置和显示桌面通知.上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的.实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分 ...

  9. IndexedDB 简单封装

    IndexedDB 浏览器数据库,是一个非关系型数据库,数据形式使用的是json,IndexedDB适合存储大量数据,它的API是异步调用的,当然他的api 也相对复杂. 当然浏览器数据存储 还有Lo ...

  10. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...