`
yahaitt
  • 浏览: 760865 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2启程1

阅读更多

struts2启程之基本配置、核心概念及原理

1、struts2执行需要的几个文件:

web.xml、struts.xml、jsp页面以及Action类

a.web.xml中添加struts2过滤器,

需要注意的是:

A、struts2现在是作为过滤器使用,需要的过滤器类是org.apache.struts2.dispatcher.FilterDispatcher

B、如果将url-pattern设置成 /* 后,表示所有的url都会使用这个过滤器

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"    
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.   <filter>  
  8.     <filter-name>wjl_strutsfilter-name>  
  9.     <filter-class>org.apache.struts2.dispatcher.FilterDispatcherfilter-class>  
  10.   filter>  
  11.   <filter-mapping>  
  12.     <filter-name>wjl_strutsfilter-name>  
  13.     <url-pattern>/*url-pattern>  
  14.   filter-mapping>  
  15. web-app>  

b.struts.xml文件必须位于classes根目录下

需要注意的是:

A、struts.xml文件中的头部dtd声明部分可以直接拷贝下载下来的struts2提供的apps中所用的struts.xml文件的头部dtd声明部分

B、action的name属性值为jsp页面中form表单的action值,如这里jsp的form应该是action="login.action"

C、result的name属性值为Action类execute方法返回的字符串值,result之间的值是指执行晚execute后dispatche到哪个jsp页面

 

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8" ?>  
  2. <!---->
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.        
  7.     <package name="wjl_struts" extends="struts-default">  
  8.         <action name="login" class="com.test.action.LoginAction">  
  9.             <result name="success">/result.jspresult>  
  10.         action>  
  11.     package>  
  12.        
  13. struts>  

 

2、struts执行流程

通过jsp页面中的form的action,将表单提交到通过struts.xml文件配置的Action类中,在这个类中,通过set属性名的方式使得对应的属性获得从Jsp页面中传递过来的对应的表单元素的值,并通过执行该类的execute方法返回一个字符串,并在struts.xml文件对应的result列表中去寻找与此字符串对应的那个result值,如果找到了,那么将dispatche到该值所对应的jsp页面中,该页面通过jstl标签${ requestScope.username }的方式来获得Action类中的属性值,并显示。

3、示例代码:

web.xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"    
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.   <filter>  
  8.     <filter-name>wjl_strutsfilter-name>  
  9.     <filter-class>org.apache.struts2.dispatcher.FilterDispatcherfilter-class>  
  10.   filter>  
  11.   <filter-mapping>  
  12.     <filter-name>wjl_strutsfilter-name>  
  13.     <url-pattern>/*url-pattern>  
  14.   filter-mapping>  
  15. web-app>  

 

struts.xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8" ?>  
  2. <!---->
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.        
  7.     <package name="wjl_struts" extends="struts-default">  
  8.         <action name="login" class="com.test.action.LoginAction">  
  9.             <result name="success">/result.jspresult>  
  10.         action>  
  11.     package>  
  12.        
  13. struts>  

 

login.jsp代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  
  2. <%   
  3. String path = request.getContextPath();   
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   
  5. %>  
  6.   
  7. <!---->>  
  8. <html>  
  9.   <head>  
  10.     <base href="<!---->">  
  11.        
  12.     <title>My JSP 'login.jsp' starting pagetitle>  
  13.        
  14.     <meta http-equiv="pragma" content="no-cache">  
  15.     <meta http-equiv="cache-control" content="no-cache">  
  16.     <meta http-equiv="expires" content="0">       
  17.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  18.     <meta http-equiv="description" content="This is my page">  
  19.     <!---->  
  20.   
  21.   head>  
  22.      
  23.   <body>  
  24.        
  25.     <form action="login.action" method="post">  
  26.        
  27.     username:<input type="text" name="username"><br/>  
  28.     password:<input type="password" name="password"><br/>  
  29.        
  30.     <input type="submit" value="submit">  
  31.        
  32.     form>  
  33.        
  34.   body>  
  35. html>  

 

result.jsp 代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  
  2. <%   
  3. String path = request.getContextPath();   
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   
  5. %>  
  6.   
  7. <!---->>  
  8. <html>  
  9.   <head>  
  10.     <base href="<!---->">  
  11.        
  12.     <title>My JSP 'result.jsp' starting pagetitle>  
  13.        
  14.     <meta http-equiv="pragma" content="no-cache">  
  15.     <meta http-equiv="cache-control" content="no-cache">  
  16.     <meta http-equiv="expires" content="0">       
  17.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  18.     <meta http-equiv="description" content="This is my page">  
  19.     <!---->  
  20.   
  21.   head>  
  22.      
  23.   <body>  
  24.      
  25.     username:${ requestScope.username }<br/>  
  26.     password:${ requestScope.password }   
  27.      
  28.   body>  
  29. html>  

 

com.test.action.LoginAction 代码
  1. package com.test.action;   
  2.   
  3. public class LoginAction {   
  4.   
  5.     private String username;   
  6.     private String password;   
  7.     public String getUsername() {   
  8.         return username;   
  9.     }   
  10.     public void setUsername(String username) {   
  11.         this.username = username;   
  12.     }   
  13.     public String getPassword() {   
  14.         return password;   
  15.     }   
  16.     public void setPassword(String password) {   
  17.         this.password = password;   
  18.     }   
  19.        
  20.     public String execute() throws Exception   
  21.     {   
  22.         return "success";   
  23.     }   
  24. }   
分享到:
评论

相关推荐

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    Struts2漏洞检查工具Struts2.2019.V2.3

    1. OGNL(Object-Graph Navigation Language)表达式注入:这是Struts2最著名的漏洞类型,由于框架在处理用户输入时没有进行充分的过滤和验证,攻击者可以通过构造恶意的OGNL表达式来执行任意代码,从而导致远程代码...

    Struts2与Struts1区别

    Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...

    struts2jar包

    1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action、Result、Interceptor等。它定义了请求处理的流程,提供了ActionContext、ValueStack等关键对象。 2. **xwork-core.jar**:XWork是...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts2项目开发

    1. 灵活性:Struts2 框架提供了一个灵活的架构,可以根据项目的需求进行定制。 2. 可扩展性:Struts2 框架提供了一个可扩展的架构,可以轻松地添加新的功能。 3. 高效性:Struts2 框架提供了一个高效的架构,可以...

    留言板留言板struts2留言板struts2

    1. **Struts2框架概述**:Struts2是Apache软件基金会下的开源项目,它继承了Struts1的优点,并融合了WebWork框架的许多特性。Struts2的主要目标是简化Java Web应用的开发,提供一套强大的MVC模式实现,支持多种视图...

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    1. 新建 com/website/struts2/MyDefaultActionMapper.java,代码如下。 2. 复制 MyDefaultActionMapper.class 到 /com/website/struts2/目录。 3. 用 struts.xml 添加如下代码。 4. 重启服务器。 需要注意的是,这...

    Struts2视频教程

    - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,支持拦截器、类型转换、文件上传等特性。Struts2使用过滤...

    Struts2接口文档

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...

    Struts1和Struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...

    struts2jar.zip

    1. **Struts2核心库**:struts2-core.jar,包含了框架的核心功能,如Action、Result、Interceptor等。 2. **插件包**:根据项目需求,可能需要其他的插件,如struts2-convention-plugin.jar(用于自动配置)、...

    Struts2教学视频

    1. 引入Struts2的核心库依赖到项目中,这通常是在Maven或Gradle的pom.xml或build.gradle文件中添加对应的依赖。 2. 配置web.xml文件,将Struts2的Filter映射到Web应用的请求上。 3. 创建Struts2的配置文件struts.xml...

    Struts2VulsTools-Struts2系列漏洞检查工具

    该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...

    struts1和struts2的jar包

    Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。 **Struts1** Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的...

    struts2所有jar包程序文件

    1. `struts2-core.jar`:这是Struts2框架的核心库,包含了Action、Result、Interceptor等核心组件的实现。 2. `xwork-core.jar`:XWork是Struts2的基础,提供了许多底层的功能,如类型转换、对象图导航、事件处理等...

    struts2-showcase.rar

    它是由Apache软件基金会维护,是Struts1的后续版本,提供更强大、更灵活的架构。 1. **Action和结果映射**:在Struts2中,Action类负责处理HTTP请求,执行业务逻辑,并通过Result来决定视图如何展示。配置文件...

    struts2的各种jar包

    5. **标签库**:`struts2-tiles-plugin.jar`、`struts2-struts1-plugin.jar`等库提供了各种标签,如Tiles标签用于页面布局,Struts1标签库则允许与Struts1框架集成。 6. **依赖库**:Struts2还依赖其他开源库,如...

Global site tag (gtag.js) - Google Analytics