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. tensorflow安装和初使用

    本文的目的是为了复习并帮助刚开始起步使用机器学习的人员 1.安装准备 为了方便就在window上安装,我的是window10 的笔记本,首先准备python 因为tensorflow在仅仅支持wind ...

  2. C#移动及改变控件大小

    //代码比较简单,就不多解析了. #region 移动窗体保存数据 Point mouseOff;//鼠标移动位置变量 bool leftFlag; //标志是否为左键 bool largeFlag; ...

  3. python之列表及其方法---整理集

    列表类,类名是list 通过list类创建对象,使用中括号 列表特性: 使用中括号括起来 中间用逗号分隔每个元素 元素可以是数字.字符串.布尔值.列表 列表中可以嵌套列表 列表中每个元素的下标从0开始 ...

  4. material palette

    https://www.materialpalette.com/

  5. df命令,du命令,磁盘分区

    df 命令 功能:用来检查linux的文件系统的磁盘空间占用情况 1. df -h 2. 以innode节点数量显示磁盘空间占用情况 df -ih 3. 列出文件系统类型 df -Th du 命令 功 ...

  6. mysql设置存储中文变成问号或者乱码

    技术交流群: 816227112 问题: 解决办法: 修改my.ini  如果是my-default.ini 要重命名成my.ini 要注意顺序,有可能服务启动不起来 [mysqld] charact ...

  7. MSSQL死锁进程查看及关闭

    select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran ...

  8. 使用gcc命令编译多个文件

    使用g++命令直接一次性编译多个文件 这里以简单的HelloWorld程序为例,假设我们一共有三个文件:main.cpp,HelloWorld.cpp和HelloWorld.h. 其中HelloWor ...

  9. ionic3问题记录

    1.Ionic3 websocket 启动没问题,编译的时候报错 events.js:136thrower;// Unhandled 'error' event^Error: read ECONNRE ...

  10. Autel MaxiTPMS TS601 Wireless TPMS Sensor Reset Relearn Activate Programming Tool

    Why Choose Autel TPMS TS601? MaxiTPMS TS601 is a TPMS tool with highest performance in the world. It ...