struts2.x入门实例

Struts2快速基础入门实战指南 本文还有配套的精品资源,点击获取 简介:Struts2是一个基于MVC架构的Java Web应用程序框架,它简化了开发过程并提供了对控制流的更好控制。本文是一个初学者友好型的快速入门指南,将引导读者了解Struts2的核心概念,包括Action类、配置文件、MVC模式、拦截器、ValueStack、OGNL表达式语言以及结果类型。教程将一步步带领读者构建一个简单的Strut... 阅读详情

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

其他的不多说了,直接开始实例编写。
1 创建Web项目
这里写图片描述
这里写图片描述
这是还是要说明一下,web项目的运行这是之前已经配置过相关的Server Runtime Enviroment,具体可以参考上篇博客中所做
这里写图片描述
2 在WebRoot下的WEB-INF下创建项目主配置文件web.xml
3 在WebRoot/WEB-INF下创建classes文件夹,并创建struts2配置文件struts.xml
4 在WebRoot下创建放jsp页面的文件夹page
5 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <!-- 指定struts2的配置文件 -->
    <context-param>
        <param-name>contextConfigLocation </param-name> 
        <param-value>/WEB-INF/classes/struts.xml </param-value> 
    </context-param>
    <!-- 配置过滤器  -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- 指定过滤规则 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <welcome-file-list>
        <welcome-file>/page/login.jsp</welcome-file>
    </welcome-file-list>

</web-app>

6 定义实现LoginAction

package com.peace.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String execute() throws Exception {
        if (getUsername().equals("test") && getPassword().equals("123")) {
            ActionContext.getContext().getSession().put("user", getUsername());
            return SUCCESS;
        }else{
            return ERROR;
        }
    }
}

7 在classes下创建并配置之后需要乃到的全局资源文件local.properties和编码字符集local_zh_CN.properties
local.properties

loginPage=loginPage
errorPage=errorPage
succPage=succPage
failTip=sorry\uFF0Clogin failed
succTip=welcome{0},login success
user=username
pass=password
login=login

local_zh_CN.properties

loginPage=\u767B\u9646\u754C\u9762
errorPage=\u5931\u8D25\u754C\u9762
succPage=\u6210\u529F\u754C\u9762
failTip=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u4E0D\u80FD\u767B\u5F55\uFF01
succTip=\u6B22\u8FCE\uFF0C{0},\u60A8\u5DF2\u7ECF\u767B\u5F55\uFF01
user=\u7528\u6237\u540D
pass=\u5BC6 \u7801
login=\u767B\u9646

8 配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

<!-- START SNIPPET: xworkSample -->
<struts>
    <!-- 指定全局配置资源文件 -->
    <constant name="struts.custom.i18n.resources" value="local"/>
    <!-- 指定全局编码所使用的字符集 -->    
    <constant name="struts.i18n.encoding" value="GBK"/>
    <!-- 所有的Action定义都应该放在package下 -->
    <package name="test" extends="struts-default">
        <action name="loginverify" class="com.peace.action.LoginAction">
            <result name="error">/page/error.jsp</result>
            <result name="success">/page/welcome.jsp</result>
        </action>

    </package>

</struts>
<!-- END SNIPPET: xworkSample -->

9 在page下创建相关的jsp页面
login.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title><s:text name="loginPage"/></title>
</head>
<body>
<s:form action="loginverify">
    <s:textfield name="username" key="user"/>
    <s:textfield name="password" key="pass"/>
    <s:submit key="login"/>
</s:form>
</body>
</html>

welcom.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
    <title><s:text name="succPage"/></title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
    <s:text name="succTip">
        <s:param>${sessionScope.user}</s:param>
    </s:text><br/>
</body>
</html>

error.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
    <title><s:text name="errorPage"/></title>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
    <s:text name="failTip"/>
</body>
</html>

10 运行测试结果
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

总结
struts2请求处理过程
这里写图片描述

怎么删除这个帖子啊啊啊? 怎么删除啊啊啊啊啊啊aaa 立即下载

相关推荐

菜鸟快速入门 struts 1.X (简单的登陆)第一篇

菜鸟快速入门 struts 1.X (简单的登陆)第一篇

【菜鸟学框架】——Struts2快速上手

本文主要讲解如何快速上手利用Struts2完成业务处理,如有不对之处欢迎各位拍砖,小编在此提前谢过各位啦。 1.1下载struts2的开发包     Struts2的官网:https://struts.apache.org/在官网中下载所需要的struts2版本。下载好之后,进行解压即可。 1.2 Struts2包解压后的目录结构 1.3 Struts2开发所需的基本jar

漫漫长途,终有回转;余味苦涩,终有回甘 2486

Struts2教程.chm,Struts2教程.chm

Struts2教程.chm Struts2教程.chm Struts2教程.chm

菜鸟学习Struts——配置Struts环境

刚开始学习Struts,它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。 要用到Struts就要学会配置Struts下面我就为大家介绍如何配置Struts环境。 1、在MyEclipse中新建一个项目 2、将Struts中lib文件夹下的*.jar包拷贝到项目中去 3、Stru...

weixin_30650859的博客 188

Struts2入门教程(全新完整版)

一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何使用alt+/提示 4 6.实例 4 7.开启struts2自带的开发模式常量 6 8.vo传参模式 7 9.ModerDriven传参模式(不建议采用) 7 10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7.Action中的method属性 12 8.使用ForwardAction实现页面屏蔽。 13 8.使用default-Action配置统一访问 14 小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 com.opensymphony.xwork2.ActionChainResult 16 dispatcher 16 用来转向页面,通常处理JSP 16 org.apache.struts2.dispatcher.ServletDispatcherResult 16 redirect 16 重定向到一个URL 16 org.apache.struts2.dispatcher.ServletRedirectResult 16 redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件内容,如文件源码 16 org.apache.struts2.dispatcher.PlainTextResult 16 freemarker 16 处理FreeMarker模板 16 org.apache.struts2.views.freemarker.FreemarkerResult 16 httpheader 16 控制特殊http行为的结果类型 16 org.apache.struts2.dispatcher.HttpHeaderResult 16 stream 16 向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据。 16 org.apache.struts2.dispatcher.StreamResult 16 velocity 16 处理Velocity模板 16 org.apache.struts2.dispatcher.VelocityResult 16 xslt 16 处理XML/XLST模板 16 org.apache.struts2.views.xslt.XSLTResult 16 全局result: 17 动态Result:了解 18 12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与ValueStack(VS) 22 1.值栈入门 22 2.OGNL入门 24 3.普通方法访问 24 4.静态方法访问 24 5.默认类Math的访问 24 6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的区别 27 12.总结OGNL[重点] 27 五、拦截器 28 1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 32 4.使用默认的execAndWait拦截器 33 5.

微软登录OAuth 2.0授权流程

OAuth 2.0是一个关于授权的开放网络标准,它允许第三方应用获取用户数据,是目前最流行的授权机制。微软身份平台支持OAuth 2.0授权码流程,使得客户端应用程序能够获得对受保护资源(如网络API)的授权访问。这一流程在保障用户数据安全的前提下,实现了应用的便捷登录与数据共享。当用户在一个支持OAuth 2.0的应用上,希望使用微软账号进行登录时,OAuth 2.0授权流程即被触发。

qq_36569837的博客 4086

常用框架学习(一)——Struts2

1.1  Struts2概述1.1.1  什么是Struts2Struts2是由Apache社区的Struts1和Opensysmphony的Webwork整合而来,Struts负责对http请求的处理,Webwork负责业务逻辑处理。1.1.2 运行环境搭建1.导入13个jar包(在Struts2自带的demo中可以找到最少所需包)2.需要在web.xml文件中配置StrutsPrepareAn...

不忘初心的博客 3万+

Android13配置selinux让system应用可读sys,proc,SN号

Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错.其修改方法会比Android11复杂一些.。

zmlovelx(帅得不敢出门 程序员群31843264) 2654

Struts2快速入门,超简单详细的快速入门教程

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题。在Tomcat的structs2-blank当中的WEB-INF当中的classes当中找到struts.xml文件。在自己的Tomcat当中可以看到该项目运行后解压的jar将这些jar引入到自己的项目当中。(img-8WUBlzSU-1713343116189)]配置Action===================配置Struts2的包===============

2401_83916283的博客 814

【日志】Prometheus/Loki+Alertmanager+Grafana监控告警

参考文章:匹配写法:https://blog.ossq.cn/2674.html。

CN_Eden 1320

基于Multisim的三相桥式全控整流电路建模、仿真与综合分析

本文基于Multisim 14.2平台,系统研究了三相桥式全控整流电路的建模与仿真方法。首先阐述了电路拓扑结构和工作原理,建立了数学模型。重点介绍了在Multisim中搭建主电路、设计六脉冲触发系统(含两种实现方案)的关键步骤,以及参数设置技巧。通过仿真分析了不同负载(阻性、阻感性)和触发角(0°-90°)下的输出特性,包括电压波形、电流谐波等性能指标。研究为电力电子教学提供了直观的仿真范例,并探讨了模型改进方向与实际工程应用价值。

huanghm88的专栏 353

开发Struts程序的两篇文章

Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序: http://www.blogjava.net/nokiaguy/archive/2009/01/13/251101.html Struts2教程1:第一个Struts2程序: http://www.blogjava.net/nokiaguy/archive/2008/04/15/193229.html 转载...

weixin_30556959的博客 54

最新Python爬虫实战(入门爬虫篇)——案例15:微博热搜数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过 Python 爬虫技术,成功实现了对微博热搜 API 接口数据的批量爬取与 Excel 保存。代码采用模块化设计,包含接口请求、JSON 解析、数据提取、Excel 持久化等完整流程;通过模拟真实浏览器的请求头和 cookies,有效规避基础反爬策略,保证请求的稳定性。整个爬虫逻辑遵循“API请求 → JSON解析 → 数据提取 → 保存到Excel”的标准流程,与异步加载类网站的爬取范式高度一致。AJAX 接口抓包与分析。

努力让自己发光,对的人才能迎着光而来 7万+

Struts2 入门示例

什么是Struts2?  Struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。  过去,我们用jsp和servlet搭配,实现展现时,大体的过程是:   1 jsp触发action      2 servlet接受action,交给后台class处理      3 后台class跳转到其他的jsp,实现

xlxxcc的专栏 6799

基于STM32F103设计的智能门锁(支持多种开锁解锁方式)

这个智能锁模型是基于STM32平台开发的,支持多种开锁方式。其中,一种是使用RC522射频卡读卡器读取IC卡卡号和内部数据,并验证身份后开锁;另一种是通过连接蓝牙地址来确认业主身份,实现了蓝牙自动开锁功能;最后一种是通过ESP8266连接腾讯云物联网平台,并且用户可以通过微信小程序“腾讯连连”进行远程开锁和关锁。这样,用户就可以选择最方便的方式来进行开锁操作了。

3万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Struts1.x使用入门

Struts1框架是apache公司的开源子项目,是基于mvc逻辑分层的web层框架实现。是出现最早的web层框架,应用最广发。Struts1框架重点关注的是控制层,对于视图层只是提供了大量的标签;对于model层的影响微乎其微。 本文也是本人初学struts情况下写的,如有不足之外还希望能给我一点指点。好了,下面就直接说使用实例吧。 1 Java的基本运行环境,就不多说了,我这里用的IDE是E

菜鸟502的博客 3806

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring AOP与struts1.x,struts2.x的结合

spring AOP用于做权限拦截是一个很好的选择.spring AOP其拦截的原理就是生成目标类的代理类对目标类应用通知(advice) 通知类型有: 前置通知 后置通知 最终通知 例外通知 环绕通知 由各种通知的特点可知,只有环绕通知才适用于对目标类方法实施拦截。 spring AOP生成代理类是通过JDK提供的Proxy这个动态代理类或CGLib生成动态代理,缺省情况

云原生之家 2378

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[struts2.x] 探索struts值栈如何赋值给action成员变量

接着上篇博客论述: 测试到这里,我要的结果已经有了,但是我还有个疑问,就是我并没有指定map的实现类,struts2.x是用什么策略去实例化这个map的?为了探索这个问题,我做了如下测试,这个测试的内容比上述还有意义得多O(∩_∩)O~。 首先,还是不指定map的实现类,修改getter方法,如下   public Map&lt;String,Object&gt; getMap() { ...

走过路过 1791

Struts2 基础入门

什么是Struts2 Struts2 是 Apache 软件组织推出的一个基于 MVC 模式的轻量级 Web 框架,自问世以来,就受到了广大 Web 开发者的欢迎。目前,Struts2 在 Java Web 开发领域中已占据了十分重要的地位。 目前为止,Struts 框架拥有两个主要版本:Struts1.x 和 Struts2.x。Struts1 是最早的基于 MVC 模式的轻量级 Web 框架,它能够合理划分代码结构,并包含验证框架、国际化框架等多种实用工具框架。 随着技术的不断进步,Struts1 的局

李鲤驴的博客 1743

Struts2.x实例应用

Struts2多业务处理 所谓的多业务处理指的是一个Action可以同时处理多种请求,对于多业务处理有两种方式. 定义一个News的vo类 public class News implements Serializable { private Integer nid; private String title; //getter和setter方法 } 定义一个Ne...

青椒盖饭的博客 255

08 00Struts 2.x基础

文章目录1 1

weixin_43762330的博客 430

Struts2框架的入门学习

Struts2 入门 struts 的的简介 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,

RJCCDL的博客 1156

Struts2开发实例

Struts2开发实例 说明: 本开发实例是书籍《Java EE架构设计与开发实践》中实例5-1中的一个小demo。由于书本内容较老,所以这个demo并不适合实用,仅做学习使用。 使用IDE工具为IDEA,jdk 1.8, tomcat 8x 1. 下载Struts2基本类库 可以直接去Struts官网下载2.3版本的jar包。 或者直接点开以下连接下载整个lib包:Struts2基...

[空白] 586
上一篇: Struts1.x使用入门
下一篇: Hibernate实例
菜鸟502
博客等级 码龄16年 49粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值