Struts2学习笔记

Struts2简介

Struts 2是Struts的下一代产品,是在WebWork的技术基础上开发了全新MVC框架。虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2与Struts1相比,确实有很多革命性的改进。

Struts2的优点:

  1. 结构清晰,开发流程一目了然,使开发者只关注业务逻辑实现即可。
  2. 提供丰富的标签,大大提高开发效率。
  3. 提供页面导航,通过配置文件把握整个系统各部分之间的联系,便于后期维护和扩展(扩展性高)。
  4. 不在依赖Servlet API,便于测试。
  5. Struts2提供丰富的拦截器实现。
  6. 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理,减少try-catch的工作量。

Struts2开发环境-配置

  1. 可以在下列网址下载Struts2:http://struts.apache.org/download.cgi(谷歌浏览器翻译后样子)
  2. 在项目中导入必需的jar包
  • commons-fileupload-1.2.2.jar :Struts文件的上传和下载。
  • commons-io-2.0.1.jar :文件读取。
  • commons-lang3-3.1.jar :为java.lang包提供扩展。
  • freemarker-2.3.19.jar :FreeMarker是一个模板引擎,是一个基于模板生成文本输出的通用工具。
  • ognl-3.0.5.jar :支持OGNL表达式。
  • Struts 2-core-2.3.4.1.jar :Struts2核心包。
  • xwork-core-2.3.4.1.jar :xwork核心包。
  • javassist-3.11.0.GA.jar :分析,编辑和创建Java字节码的类库。

3.修改Web.xml配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6     <display-name>Struts2_hellostruts2</display-name>
 7         <welcome-file-list>
 8             <welcome-file>index.jsp</welcome-file>
 9         </welcome-file-list>
10
11     <filter>
12         <filter-name>struts2</filter-name>
13         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
14     </filter>
15
16     <filter-mapping>
17         <filter-name>struts2</filter-name>
18         <url-pattern>/*</url-pattern>
19     </filter-mapping>
20 </web-app>
21         

  4.添加struts.xml配置文件

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 <struts>
 6     <package name="default"  namespace="/"  extends="struts-default">
 7                <action name="hello" class="hellostruts2.helloAction"  method="execute">
 8                        <result  name="success">/helloStruts2.jsp</result>
 9            </action>
10     </package>
11 </struts>
12

  5.添加并实现Action类

 1 package hellostruts2
 2
 3 import com.opensymphony.xwork2.ActionSupport;
 4
 5 public class helloAction extends ActionSupport{
 6 private String emg;
 7
 8 public String getEmg() {
 9 return emg;
10 }
11
12 public void setEmg(String emg) {
13 this.emg = emg;
14 }
15 @Override
16 public String execute()throws Exception{
17 emg="hello Struts2";
18 return "success";
19
20 }
21 }

配置好struts.xml文件后,Struts2即可完成整个请求过程,当用户发送一个请求后,Web服务器将这个请求的URL(地址)对应到一个Action类(helloAction),并调用相应的方法[execute()]进行处理,该方法的(success)返回值,Struts2根据这个返回值对应到相应的<result>,并使用<result>中的配置(/helloStruts2.jsp)来响应客户请求。

时间: 2024-12-28 18:52:19

Struts2学习笔记的相关文章

Struts2学习笔记(三)——Action详解

Action是用于处理请求操作的,它是由StrutsPrepareAndExceuteFilter分发过来的. 1.Action的创建方式 1) POJO类(PlainOldJavaObjects简单的Java对象),不需要继承任何父类,实现任何接口 1 public class TestAction { 2 public String execute() { 3 return "success"; 4 } 5 } 这种方式是Struts2框架通过反射来实现的,步骤: struts2框

Struts2学习笔记三 访问servlet

结果跳转方式 转发 <!-- 转发 --> <action name="Demo1Action" class="cn.itheima.a_result.Demo1Action" method="execute" > <result name="success" type="dispatcher" >/hello.jsp</result> </action

struts2学习笔记(三)—— 在用户注册程序中使用验证框架

实现目标: 1.使用验证框架对用户注册信息进行验证 2.验证用户名.密码.邮箱不能为空 3.验证用户名.密码长度 4.验证邮件地址格式 具体实现 一.Struts2应用的基础配置 这里不做详细阐述,具体为web.xml.相关jar包的配置 二.将页面显示的文本内容放到资源文件中 1.查看用户注册程序中的所有页面,找到所有可以显示的文本内容,将它们分离出来放到资源文件中. 2.与相关的Action类同名,以.preperties为扩展名,与Action类位于同一个包中,只能由该Action访问 R

Struts2学习笔记(OGNL表达式)

Struts2学习笔记(OGNL表达式) Struts 2支持以下几种表达式语言: OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言: JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言: Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python.Ruby和Smarttalk等)的一些起特性: Velocity,严格来说不是表达式语言,它是一种基于Ja

Struts2 学习笔记(概述)

Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并实现应用的功能.通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 封装应用状态:某些应用数据封装起来,使得视图只能通过接口获取对应的数据 响应状态查询:对应用的状态改变进行处理 暴露应用功能:暴露接口 通

struts2 学习笔记

Struts2 学习笔记 在使用J2EE编写网站的时候,我们经常会使用Struts2框架.Struts2的好处就是许多东西已经被封装好了,我们只需要包含给定的jar文件,就能够调用相应的方法和标签.下面我将简要介绍一下Struts2的使用和特点: 一.搭建Struts2的环境:(主要分为三个部分:包含lib文件.web.xml改写.新建一个Struts.xml) 1.打开myeclise软件,新建一个Dynamic web project,在WebContent/WEB-INF文件夹下的lib文

Struts2学习笔记(2)值传递

1.action接收jsp传过来的值: a.定义一个User类   有name  pwd属性,  添加相应的get,set方法   b.<!-- 方式1 普通java类 -->  在UserAction中    添加: private User user;  并添加相应的get,set方法 <!-- 方式2 实现ModelDriven<T>接口-->   在UserAction中   @Override   public User getModel() {    ret

Struts2学习笔记(九):Strut2通用标签详解

本节主要介绍Strus2中的通用标签,主要有<s:url>, <s:set>, <s:push>, <s:if>, <s:elseif>, <s:else>, <s:iterator>, <s:sort>, <s:date>, <s:a>等几个标签的具体用法,仍然采用代码加注释的形式进行说明,希望能对大家有帮助. 刚入门的朋友阅读本文前,请阅读: Struts2学习笔记(六):值栈(va

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle&lt;T&gt;

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle<T> 今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现和源码 下一篇用它们做一个多语言的demo 这两个是事件的订阅和广播,很强大,但用的时候要小心发生不必要的冲突. 先看一下它的实现思想 在Caliburn.Micro里EventAggregator要以单例的形式出现这样可以

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd