一、struts概述

  1、struts2框架应用在javaee三层结构中web层框架

  2、struts2框架在struts1和webwork基础之上发展全新的框架

二、struts2环境搭建

  1、导包

    

  2、创建action

/*
* 创建action有3种方式
* 方式一:创建普通类,不继承任何类,不现实任何接口
* 方式二:继承ActionSupport类(开发一般使用这种方式)
* 方式三:实现Action接口
*/ import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport; //方式一
public class Aaction { /* 1、每次发访问servlet时候,都会执行service方法
* 2、访问action时,默认执行execute方法
*/
public String execute(){
    /*action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置
      - 把方法写成void
      - 让返回值,返回 ”none”*/
return "ok"; }
} /*方式二
public class Baction extends ActionSupport { public String execute(){ return NONE; }
}
*/ /*
* 方式三 * public class Caction implements Action { @Override
public String execute() throws Exception { return SUCCESS;
} } */

  3、配置访问路径

    

第三步 配置action类访问路径

  (1)创建struts2核心配置文件

      - 核心配置文件名称和位置是固定的

      - 位置必须在src下面,名称 struts.xml

  (2)引入dtd约束

  

   (3)配置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标签:类似与包,区别不同的action,必须首先写package
在package里面才能配置action
package属性:
name属性:属性值跟功能本身没有关系,可以任意写
在一个配置文件中,可以写多个package标签,name的属性值不能相同
extends属性:固定值: struts-default
写了这个属性后,在package里面配置的类具有action功能
namespace属性:属性值与action标签里面的name属性值构成访问路
-->
<package name="hello" extends="struts-default" namespace="/">
<!-- action标签配置action的访问路径
name属性:属性值可以任意写,属性值与package标签里面的namespace标签的属性值构成访问路径
在package标签里面可以写多个action标签,但是action的name属性之不能相同
class属性: action类的全路径
method属性:不写表示默认执行execute方法,要执行其他方法时,直接写其他方法的方法名
- 比如在action里面默认执行的方法execute方法,但是在action里面写其他的方法
- 让action里面多个方法执行,使用method进行配置
-->
<action name="hello">
<!-- result标签:根据action的返回值,配置到不同的路径里面
name属性:和方法返回值一样
type属性:配置如何到路径中去(2种方式:转发或者重定向)
默认转换
-->
<result></result>
</action>
</package>
</struts>

   (4)配置过滤器(在web.xml页面配置)代码如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>struts2</display-name> <!--Struts2过滤器-->
<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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

  

Struts2(1)的更多相关文章

  1. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  2. 菜鸟学Struts2——Interceptors

    昨天学习Struts2的Convention plugin,今天利用Convention plugin进行Interceptor学习,虽然是使用Convention plugin进行零配置开发,这只是 ...

  3. 菜鸟学Struts2——零配置(Convention )

    又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...

  4. 菜鸟学Struts2——Results

    在对Struts2的Action学习之后,对Struts2的Result进行学习.主要对Struts2文档Guides中的Results分支进行学习,如下图: 1.Result Types(Resul ...

  5. 菜鸟学Struts2——Actions

    在对Struts2的工作原理学习之后,对Struts2的Action进行学习.主要对Struts2文档Guides中的Action分支进行学习,如下图: 1.Model Driven(模型驱动) St ...

  6. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  7. 13、零配置Struts2开发

    Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 strut ...

  8. 12、Struts2表单重复提交

    什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...

  9. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  10. 9、 Struts2验证(声明式验证、自定义验证器)

    1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...

随机推荐

  1. 剑指offer 面试24题

    面试24题: 题目:反转链表 题:输入一个链表,反转链表并输出反转后链表的头节点. 解题思路:注意反转时出现断裂现象,定义3个指针,分别指向当前遍历到的节点pNode.它的前一个节点pPrev及后一个 ...

  2. python并发编程之多进程1--(互斥锁与进程间的通信)

    一.互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理. 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行 ...

  3. 深度学习2--安装opencv3.1

    1\opencv的安装参考视频 2\ 以下内容来自:http://blog.csdn.net/l18930738887/article/details/54696148 本人因为被坑过,所以建议各位最 ...

  4. iOS copy 和 mutableCopy 学习

    (参考 iOS 52个技巧学习心得笔记 第二章 对象 , 消息, 运行期)的对象部分 关于Copy  有个经典问题”大部分的时候NSString的属性都是copy,那copy与strong的情况下到底 ...

  5. 04_Apache Hadoop 生态系统

    内容提纲: 1)对 Apache Hadoop 生态系统的认识(Hadoop 1.x 和 Hadoop 2.x) 2) Apache Hadoop 1.x 框架架构原理的初步认识 3) Apache ...

  6. 【HackerRank】Median

    题目链接:Median 做了整整一天T_T 尝试了各种方法: 首先看了解答,可以用multiset,但是发现java不支持: 然后想起来用堆,这个基本思想其实很巧妙的,就是维护一个最大堆和最小堆,最大 ...

  7. PMON使用手册

    转:http://www.docin.com/p-1949877603.html

  8. python的计算保留小数

    1.要使得算术运算的结果有小数,则运算的对象至少有一个是float型的. 2.控制小数的位数:字符串格式化 格式:需要进行格式化的字符串%插入对象 需要进行格式化的字符串中带有一个或多个嵌入的转换目标 ...

  9. 20145239杜文超《网络攻防》- MSF基础应用

    20145239杜文超<网络攻防>- MSF基础应用 基础问题回答 1.用自己的话解释什么是exploit,payload,encode? exploit:实现攻击行为的主体,但没有载荷只 ...

  10. linux中获取堆栈空间大小的方法

    #include   <stdio.h> #include   <stdlib.h> #include   <sys/time.h> #include   < ...