Struts2入门经典实例

Struts2入门第一讲——Struts2框架的快速入门 Struts2框架的概述Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中。目前掌握Struts2框架几乎成为Web开发者的必备技能之一。接下来将针对Struts2的特点、安装以及执行流程等内容进行详细的讲解。什么是Struts2先讲Struts2框架之前,我们得知道JavaEE一共有三层架构,如下: 架构名称 阅读详情

写一个Steuts2的经典入门案例,怕忘记啊,有时候突然记不起知识概念了,所以还是记个笔记,网络上找了几个,发现部署出来要报错,最后还是自己写一个比较靠谱。

做了一个登陆程序作为入门例子。登陆会去交互,并返回页面,比较适合以后扩展的项目,容易理解!

例子:登陆的Struts2案例

环境:

     IDE工具:Myeclipse  ,  Tomcat6.0

所需jar包:  

struts2-core-2.1.8.1.jar   

struts2-json-plugin-2.1.8.1.jar

xwork-core-2.1.6.jar

commons-fileupload-1.2.1.jar

freemarker-2.3.15.jar

junit4.4.jar

ognl-2.6.7.jar

步骤:

1. 创建一个web project项目

2.导入Struts2所需jar包

3.配置web.xml

4.配置struts2.xml

5.写action类(LoginUser.java)

6.写jsp页面

7.启动tomcat.运行项目

项目最后截图:


开始:

1.创建一个项目

还是截图,项目名称为:Struts2SpExa


2.导入所需jar包

导入所需jar包到项目的lib文件夹下(或者通过Build Path导入也可)


3.在WEB-INF下面的web.xml中配置:

配置拦截器和起始页面

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
 
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
  <welcome-file-list>
    <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
  </welcome-file-list>
    
</web-app>

4.配置struts.xml

配置strust2要调用的action

<?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 action>
<struts>
<package name="todayMZ" extends="struts-default" namespace="/"> 
<action name="loginUser" class="todayMZ.user.action.UserAction"> 
<result name="success">/WEB-INF/jsp/success.jsp</result> 
<result name="fail">/WEB-INF/jsp/fail.jsp</result>
</action>
</package>
</struts>
5.写action类(LoginUser.java)

这个类主要用于struts2跳转到这个action后。默认执行execute()方法。并根据结果返回字符,然后struts2.xml根据返回的字符跳到相应的页面

package todayMZ.user.action;

public class UserAction {
	 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 {
        // 只要用户名为todayMZ,密码为1234就可成功登陆
        if ("todayMZ".equals(this.getUsername().trim()) && "1234".equals(this.getPassword().trim())) {
            return "success";
        } else {
            return "fail";
        }
    }
	
}

6.写jsp页面
这里有三个jsp页面:login.jsp,   success.jsp,      fail.jsp

login.jsp(用了简单的标签)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登陆页面</title>
  </head>
   
  <body>
    <center>
        <s:form action="loginUser"  method="post" namespace="/" >
                <s:textfield name="username" label="用户名"></s:textfield>
                <s:password name="password" label="密码"></s:password>
                <s:submit value="确定"/>
                <s:reset value="重置"/>
        </s:form>
    </center>
  </body>
</html>
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>成功页面</title>
  </head>
   
  <body>
    <p align="center">登陆成功!!!您的用户名是<s:property value="username"></s:property></p>
  </body>
</html>
fail.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>失败页面</title>
  </head>
   
  <body>
    <p align="center">登陆失败!!!</p>
  </body>
</html>
7.启动tomcat.运行项目

run项目。在地址栏中输入:http://localhost:8080/Struts2SpExa/ 

弹出登录界面:(输入toadyMZ,密码123登录成功)


That's OK !

如果过程中报错: No configuration found for the specified action,

那是因为你在login页面使用标签的时候,form表单提交没有指明namespace=??。

-----------------我是分割线----------------------- 


本文适合初学者入门案例,步骤无先后规定。也用来方便我记起一些东西。

文章中为什么要这么做?为什么这么配置?导入jar的作用?下面有我也会做个笔记,防止自己忘记,也是归纳自己的知识,忘记的朋友们也可以看看。


转载请说明出处:http://blog.youkuaiyun.com/todaymz/article/details/8743712



Struts2项目实例   Java web动态编程技术,经历了Model1和Model2时代。 Model1时代:整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应,用少量的JavaBean来处理数据库连接访问等操作。Model1的局限性非常明显,JSP页面同时担任View和Controller两种角色,将页面表现和逻辑处理混杂在一起,代码重用性极低,增加了扩展和维护难度... 阅读详情

相关推荐

Struts2入门经典实战示例

Struts2作为Java Web开发中经典的MVC框架之一,以其清晰的架构设计和强大的功能扩展性,在企业级应用开发中占据重要地位。本章将深入剖析Struts2的核心设计理念,重点讲解其基于的前端控制器模式,该过滤器拦截所有请求并委派给相应的Action处理,实现请求路径与业务逻辑的解耦。通过拦截器栈(Interceptor Stack),Struts2实现了横切关注点(如日志、权限、参数封装)的模块化管理。

weixin_42605397的博客 304

【java开发系列】—— struts2简单入门示例

前言   最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。1 jsp触发action2 servlet接受action,交给后台class处理3 后台class跳转到其他的jsp,实现数据展现1 jsp出发action2 struts2拦截请求,调用后台action。...

wuxiaopengnihao1的博客 503

Struts2快速基础入门实战指南

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

weixin_34885746的博客 781

struts2简单入门示例

struts2是java web开发的MVC开发框架,struts2不同的版本,开发的包有一些变化,这也导致了网上许多入门教程照做最后都运行不起来,最常报的错误就是404错误,这里有必要自己记录一下。 开发环境 1、STS 3.7.3(Spring Tool Suit),下载。STS其实是一个包装过的Eclipse,由Spring小组开发的,专门用于Spring项目的开发,当然也可以集

GAMELOFT9----纸上得来终觉浅,绝知此事要躬行 1276

Struts2-core-2.1.8.1.jar

java web 开发jar包,Struts2-core-2.1.8.1.jar,有一个jar

struts2简单实例

学生信息查询实例,用struts2配置文件,action的实现以及通过action实现前后台的数据传输

struts2入门简单案例

保留一下代码即可b.然后再src目录下创建struts.xml文件,内容也可以复制struts的压缩包里的struts.xml文件struts.xml保留一下代码c.创建action类(HelloWorld.java)继承ActionSupport,代码为d.创建result.jsp,代码截图a.结果为b.在地址栏输入http://localhost:8080/Strutsdemo1/helloworld.action如图c.得到result.jsp的结果。

2401_84092809的博客 542

【万字长文】学习Armv8架构虚拟化一篇就够了

这里我们将介绍一些基础的Hypervisor和虚拟化的理论知识。如果你已经有一定的基础或是已经熟悉了这些概念,可以跳过这部分内容。我们用Hypervisor这个词来定义一种负责创建,管理以及调度虚拟机(Virtual Machines, VMs)的软件。Stage 2 转换允许Hypervisor控制虚拟机的内存视图。具体来说,其可以控制虚拟机是否可以访问特定的某一块物理内存,以及该内存块出现在虚拟机内存空间的位置。这种能力对于虚拟机的隔离和沙箱功能来说至关重要。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 5312

Struts2示例

struts2配合jquery 的ajax实现数据交互及异步加载1.action中需要返回一个二进制的inputstream流 //判断用户名、密码,生成对应的响应 inputStream = user.equals("crazyit.org") && pass.equals("leegang") ? new ByteArrayInputStream("

极客神殿 721

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow)

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow) 包含所有数据和代码,支持一键运行(jupyter)

qq_40999533的博客 1483

Innovus中_clock_gen skew group的隐藏陷阱:如何避免自动分组导致的时序问题

本文深入剖析了在Innovus工具进行时钟树综合(CTS)时,`_clock_gen` skew group自动分组机制可能引发的隐蔽时序问题。文章通过实际案例,解释了该机制如何错误地将分频寄存器与配置寄存器归为一组,从而破坏时钟域边界并导致post-CTS时序违例,并提供了关闭自动提取、手动精确定义skew group等有效解决方案。

gpu4optimizer的博客 266

解决struts2-core-2.1.2.jar!/struts-default

用struts-2.1.2版本是如果只导入 commons-logging-1.0.4.jar freemarker-2.3.12.jar ognl-2.6.11.jar struts2-core-2.1.2.jar xwork-2.1.1.jar 这五个包(比如struts-2.0.11及更往前的版本,很多教程都是这样的配置的),就会报struts2-core-2.1.2.jar!/...

惜棋的陵云阁 672

esp32c6 开发实战:低功耗蓝牙(BLE)开发

蓝牙栈在此程序流程中已经启动并运行,但是应用程序的功能尚未定义。功能的定义是通过响应事件来实现的,当其他设备尝试读取或写入参数以及建立连接时就会触发事件回调函数处理。BT控制器在控制器端实现主机控制器接口(HCI),链路层(LL)和物理层(PHY)。BT控制器对用户应用程序不可见,并处理BLE堆栈的较低层。蓝牙堆栈(Bluedroid stack)定义了经典蓝牙(BT Classic)和低功耗蓝牙(BLE)的通用定义和API。的判断)等对于启动低功耗蓝牙来说不重要的代码,函数初始化和启用BT控制器。

月入鱼饵的博客 2740

Struts2入门经典实例-登录页面

在http://blog.youkuaiyun.com/todaymz/article/details/8743712基础上做了修改,否则无法运行。 写一个Steuts2的经典入门案例,怕忘记啊,有时候突然记不起知识概念了,所以还是记个笔记,网络上找了几个,发现部署出来要报错,最后还是自己写一个比较靠谱。 做了一个登陆程序作为入门例子。登陆会去交互,并返回页面,比较适合以后扩展的项目,容易理解

SalmonellaVaccine的专栏 1126

基于STM32的多普勒雷达测速

基于多普勒雷达传感器,以STM32单片机为主控芯片,根据不同模块检测距离的不同,使用不同多普勒雷达传感器实现对远近距离车辆行驶速度及方向的测量。 1、基础知识 无线电探测和测距,是用无线电(电磁波)方法发现目标并测定其空间位置的装置。随着雷达技术的发展,现代雷达不仅可以对目标进行定位,还可以测量目标的速度、对目标进行成像甚至测量目标的大小和材料特性。所有利用雷达波来检测物体速度的原理,其理论基础皆源自于“多普勒效应”,...

weixin_52801934的博客 6315

吉比特-笔试

1. 题一:打雷后下雨的概率是80%,而打闪电后下雨的概率是70%,那么即打雷又打闪电后下雨的概率是多少?   答:打雷后下雨和打闪电后下雨都是独立事件,P=1-又打雷又闪电但没下雨的概率= 1 - 0.2 *0.3 = 94%        题二:打雷后下雨的概率是80%,但是没打闪电后下雨的概率是20%,那么打雷了但没打闪电后下雨的概率是多少?答:P=0.8 *0.2 / ( 0.8 *0

naturism的专栏 2495

Struts2 入门经典实例代码

Struts.xml 文件代码 &lt;?xml version="1.0" encoding="UTF-8" ?&gt;   &lt;!DOCTYPE struts PUBLIC       "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"       "http://struts.a...

iteye_7180的博客 137

使用微信小程序开发制作一个简单的在线问答应用

以上就是一个简单的在线问答小程序的开发过程。其中包括前端界面的布局和逻辑,后端接口的设计和实现,以及部署和测试的步骤。通过以上步骤,你可以自己尝试开发一个类似的在线问答应用。

2401_85258012的博客 794

第一个Struts2入门经典实例

搭建好开发环境,现在开始进入第一个Struts入门项目。 我用的是MyEclipse工具,首先新建一个动态Web项目HelloWorld,如图 在MyEclipse中配置Tomcat 从MyEclipse菜单栏window中进入preferences,在搜索框搜索“tomcat",下面出现几个tomcat,将不需要的tomcat禁用掉(Disable),只让一个...

weixin_30779691的博客 89

OceanBase数据库LSM-Tree存储引擎深度解析:合并写入与压缩优化策略

OceanBase数据库采用创新的LSM-Tree架构设计,通过"基线-增量"分离存储实现高性能。内存中的MemTable处理写入,磁盘上的SSTable存储有序数据,利用多级缓存加速读取。写入时先写日志再更新内存,合并操作将增量数据整合为基线数据以优化查询性能。相比传统B+树引擎,OceanBase在写入吞吐、压缩效率和存储成本方面优势显著,特别适合写入密集型场景。合并操作作为核心机制,通过多种触发方式和执行策略平衡性能与资源消耗。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1341

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

struts2入门-第一个例子==》第一个struts2实例——HelloWorld==》Struts2.0搭建和简单实例==>写一个Steuts2的经典入门案例,做了一个登陆程序作为入门例子

struts2入门-第一个例子 1.从apache官网下载struts2(v2.2.1)的压缩文件,解压缩 2.打开myeclipse(v8.6),将struts2解压缩后lib下的ongl,strtus2-core,xwork-core,commons-logging,freemaker,javassist(该包需要另外下载,老版本里不需要)这六个必须包导入 在st

shenghua 1921

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Struts2框架简单入门

Struts2入门

qq_42640067的博客 7744

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

简单Struts2实例(入门级)

   功能:本实例实现的功能是从输入界面输入用户名和密码,若用户名和密码正确转到成功界面,否则转到失败界面。   实现:   第一步:创建一个Web工程   在MyEclipse,通过菜单File->New->Web Project,在Project Name输入工程名称Strut2Travel,点解确定完成创建一个工程。   简注:MyEclipse属于一个IDE继承开发环境,可以快速的创建

hntyzgn2010的专栏 2万+

struts2.x入门实例

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

菜鸟502的博客 1339

Struts2 HelloWorld 入门实例 Eclipse

welcome message (the model)Create a server page to present the message (the view)Create an Action class to control the interaction between the user, the model, and the view (the controller) Create a

firefaith的专栏 750
上一篇: SVN在Windows下的基本操作
下一篇: Struts2概念解析
益达_Sir
博客等级 码龄14年 20粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值