Strusts2的原理很简单,首先,地址栏输入http://xxxx/xxxx/webapp/xx.action首先,请求会通过httpservlet发送给tomcat容器,tomcat发现这个请求是webapp的,然后去找服务器上部署的该webapp,再去看这个webapp中的web.xml文件(在web-inf目录下),web.xml中一般会配置有一个filter,是prepareAndExcuteStruts这个类,然后到src目录下找struts.xml文件,在struts.xml中配置有namespace="/",这个就是xx.jsp前面的/  有这个就会在这个配置文件中寻找名为xx的action。找到这个对应的result的jsp文件反馈给客户端。这样就达到了请求和视图分离的目的,想要改变某个请求对应的视图,直接修改配置文件中的内容就好了。

namesapce可以“/”则访问路径是/index

也可以不写,默认不写namespace=""这样表示接受所有的action

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

  <action name="login"  class="xx.xx.xx"  method="add">这里的class也可以不进行配置则此时使用的是默认的action  struts中的actionSupport类

    <result>success.jsp</result>

    <result name="default">default.jsp</result>"

  </action> 

</package>

如这个struts.xml的配置,当访问的时候就要写成http:localhost/8080:3306/xxwebapp/user/login.action

package主要是防止不同包中有相同的模块命名,这样会有冲突,所以使用package来进行区分。因为namespace不是/而是/user,所以在地址栏中需要加上一个/user/login

这个package下的name就是说我们想指定那个请求来执行处理该请求。class是指定的类,这个类可以是任何一个普通的类,只要里面有Public String excute(){ return "default"}这样的方法就ok了。不过一般情况下我们会继承ActionSupport或者是实现Action接口。

Action接口是Struts2导入jar包中包含的,在xwork...中的一个接口。因为ActionSupport中有很多已经封装好的方法,所以我们只用继承ActionSupport就可以了,里面有getText,validate验证等很多实用的方法。最后的method=add是说访问这个login.action会找这个类里面的add方法。并返回对应的执行结果。给到对应的string对应的视图这样就可以使用一个package来定义多个action处理不同的请求了。

Strusts2的更多相关文章

  1. 记录一下Maven整合spring,hibernate,strusts2我程序中出的bug

    action类如下 package com.itheima.movenweb.action; import java.util.List; import org.apache.struts2.Serv ...

  2. Strusts2笔记9--防止表单重复提交和注解开发

    防止表单重复提交: 用户可能由于各种原因,对表单进行重复提交.Struts2中使用令牌机制防止表单自动提交.以下引用自北京动力节点:

  3. Strusts2笔记8--文件的上传和下载

    文件的和上传和下载: (1)文件的上传: Struts是通过拦截器实现文件上传的,而默认拦截器栈中包含了文件上传拦截器,故表单通过Struts2可直接将文件上传,其底层是通过apache的common ...

  4. Strusts2笔记7--国际化

    国际化: 国际化是指,使程序在不做任何修改的情况下,就可以使用在不同的语言环境中.国际化在一般性项目中是不常用的.在编程中简称 i18n. 国际化是通过读取资源文件的形式实现的.资源文件的定义与注册, ...

  5. Strusts2笔记6--拦截器

    拦截器: Struts2的大多数核心功能都是通过拦截器实现的.拦截器之所以称之为“拦截器”,是因为它可以在执行Action之前或之后拦截下用户请求,执行一些操作,以增强Action方法的功能. Str ...

  6. Strusts2笔记5--数据验证

    数据验证: 输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证主要是通过Java代码进行验证. 分为以下四种情况: (1)手工编写代码,对Action ...

  7. Strusts2笔记4--类型转换器

    类型转换器: Struts2默认情况下可以将表单中输入的文本数据转换为相应的基本数据类型.这个功能的实现,主要是由于Struts2内置了类型转换器.这些转换器在struts-default.xml中可 ...

  8. 搭建struts2框架

    struts是一个经典的MVC模式拦截器比过滤器拦截的力度更大 搭建struts2框架1.引入lib包 9个(2.3版本的)common-fileupload;common-io;common-lan ...

  9. sitemesh学习笔记(3)

    前两篇博客浅谈了一下sitemesh3.0和2.4的区别和简单用法,今天我做了一个结合sturts2的sitemesh构架,由于strusts2只能用sitemesh2.x的版本,与3.0目前还不能兼 ...

随机推荐

  1. icons 在线网站

    icons https://www.iconfinder.com/ http://v3.bootcss.com/components/ http://fontawesome.io/icons/ htt ...

  2. ASP.NET结合Redis实现分布式缓存

    最近一个项目ASP.NET+MySQL 有的网页打开初始化的查询需要10秒甚至更久,用户体验极差,而且并发量变大的时候网站容易崩溃 后来想了两种解决方案都不是太满意 1.数据库里建一张缓存表,后台作业 ...

  3. Django继承AbstractUser新建UserInfor Model时出现fields.E304错误

    错误详情: SystemCheckError: System check identified some issues: ERRORS:app01.UserInfo.groups: (fields.E ...

  4. Tensorflow学习笔记2019.01.03

    tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...

  5. linux命令——wc

    wc 统计文件里面有多少单词,多少行,多少字符. wc语法 [root@www ~]# wc [-lwm] 选项与参数: -l :仅列出行: -w :仅列出多少字(英文单字): -m :多少字符: 默 ...

  6. airTest 应用到项目并优化

    之前已经介绍了airTest的原理,该文主要指引大家能够将airTest框架应用到具体的测试项目当中去. 首先要考虑的是: 1. 你是用airTest 去做什么自动化 (android, ios, w ...

  7. 使用tcpcopy复制线上流量进行测试

    使用tcpcopy复制线上流量进行测试 online server 线上服务所在机器 10.136.11.4 部署tcpcopy sudo /usr/local/tcpcopy/sbin/tcpcop ...

  8. java对象之----(PO,VO,DAO,BO,POJO)

    转自http://www.cnblogs.com/bluestorm/archive/2012/09/26/2703234.html 一.PO :(persistant object ),持久对象 可 ...

  9. hbase-运维命令

    hbase 问题 不一致问题 meta表不一致问题 hdfs文件不一致问题 hbase hbck hbase hbck 用于检测和修改hbase底层文件问题.检测像master,region serv ...

  10. weex h5开发区别-实践初级篇

    html标签 weex中没有标签的概念,html中标签对应于weex中的Components weex 无<span> .<p> ,用<text>替代.但是< ...