Apache Struts 2的命名空间实战

简介: Apache Struts 2的命名空间实战 Apache Struts 2的命名空间是一个新概念,它通过为每一个模块分配一个命名空间从而实现多模块的处理。另外,它解决了不同模块下的相同Acion名的名字冲突的问题。

Apache Struts 2的命名空间实战

Apache Struts 2的命名空间是一个新概念,它通过为每一个模块分配一个命名空间从而实现多模块的处理。另外,它解决了不同模块下的相同Acion名的名字冲突的问题。
从下面的图我们可以理解URL是怎样匹配Struts 2命名空间的。 

一、命名空间的配置

下面我们通过Struts2的命名空间配置实例来说明它是怎样匹配URL和目录的。要说明一点,包名(即package name=”default”)不影响URL匹配结果,它仅仅是一个有意义的名字。
struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="SayWelcome">
            <result>pages/welcome.jsp</result>
        </action>
    </package>
    <package name="common" namespace="/common" extends="struts-default">
        <action name="SayWelcome">
            <result>pages/welcome.jsp</result>
        </action>
    </package>
    <package name="user" namespace="/user" extends="struts-default">
        <action name="SayWelcome">
            <result>pages/welcome.jsp</result>
        </action>
    </package>
</struts> 

Struts 2的Action命名空间映射到目录的结构图如下: 

二、JSP页面

我放了三个相同文件名的JSP文件,但是它们分别位于不同的模块。

1)Root -> webapp/pages/welcome.jsp
2)Common module -> webapp/common/pages/welcome.jsp
3)User module -> webapp/user/pages/welcome.jsp

三、工作机制

运行项目,我们分别访问不同的URL,即可实现对不同的命名空间进行访问。

例子1
URL : http://localhost:8080/Struts2Example/SayWelcome.action
这将匹配root命名空间。

<package name="default" namespace="/" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package> 

 
显示的是webapp/pages/welcome.jsp的内容。

例子2
URL : http://localhost:8080/Struts2Example/common/SayWelcome.action
这将匹配common命名空间。

<package name="common" namespace="/common" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package> 

 
显示的是webapp/common/pages/welcome.jsp的内容。

例子3
URL : http://localhost:8080/Struts2Example/user/SayWelcome.action
这将匹配user命名空间。

<package name="user" namespace="/user" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package> 

 
显示的是webapp/user/pages/welcome.jsp的内容。

目录
相关文章
|
5月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
84 2
|
2月前
|
安全 Java 网络安全
Apache Struts 2 2.3.14.3 远程代码执行(CVE-2013-2134)
Apache Struts 2 2.3.14.3 远程代码执行(CVE-2013-2134)
Apache Struts 2 2.3.14.3 远程代码执行(CVE-2013-2134)
|
2月前
|
安全 Java 网络安全
Apache Struts Showcase App 2.0.0 到 2.3.13(在 2.3.14.3 之前的 Struts 2 中使用)远程代码执行(CVE-2013-1965)
Apache Struts Showcase App 2.0.0 到 2.3.13(在 2.3.14.3 之前的 Struts 2 中使用)远程代码执行(CVE-2013-1965)
|
2月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
139 0
|
3月前
|
分布式计算 Apache Spark
|
4月前
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
160 4
|
4月前
|
弹性计算 应用服务中间件 Linux
双剑合璧:在同一ECS服务器上共存Apache与Nginx的实战攻略
在ECS服务器上同时部署Apache和Nginx的实战:安装更新系统,Ubuntu用`sudo apt install apache2 nginx`,CentOS用`sudo yum install httpd nginx`。配置Nginx作为反向代理,处理静态内容及转发动态请求到Apache(监听8080端口)。调整Apache的`ports.conf`监听8080。重启服务测试,实现两者高效协同,提升Web服务性能。记得根据流量和需求优化配置。【6月更文挑战第21天】
387 1
|
5月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
45 1
|
5月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
74 0
|
5月前
|
消息中间件 JSON Kafka
实战 | Apache Hudi回调功能简介及使用示例
实战 | Apache Hudi回调功能简介及使用示例
44 0

推荐镜像

更多
下一篇
无影云桌面