struts2入门例子

Struts2框架原理及官方示例深度解析 本文还有配套的精品资源,点击获取 简介:Struts2是一个功能强大的Java Web应用程序框架,它遵循MVC架构设计,提供了丰富的特性,包括动作调度、国际化、异常处理和插件扩展。本文将通过官方实例深入分析Struts2的核心概念和配置细节,包括 struts.xml 配置文件、Action类、JSP页面、结果类型和拦截器等组件的实现。掌握这些知识对于开发高... 阅读详情
 

首先先说下,最近感觉baidu空间老是抽风,用得很不爽!

struts入门案例,我也跟风,写个登录的吧,嘿嘿..

步骤1. 新建一个web project,就取名为struts2吧,

步骤2, 导入struts2需要的包. 导入到WebContent下的web-inf下的lib

步骤3, 在src下面新建一个包,包名为:com.test.action

步骤4,在src下面新建一个File,取名为strut2.xml,这个也就是struts2里面的一个重要配置文件,文件内容如下:

<?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="struts2" extends="struts-default">
   <action name="login" class="com.test.action.LoginAction">
   <result name="input">login.jsp</result>
   <result>/result.jsp</result>
   <result name="failer">/login.jsp</result>
   </action>
   </package>

</struts>

步骤5, 在步骤3建好的包下面新建一个class文件,LoginAction.java

代码如下:

package com.test.action;

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("hello".equals(this.getUsername().trim())&&"word".equals(this.getPassword().trim()))
        {
            return "success";
        }
        else
        {
            this.addFieldError("username", "username or password error!!!!");
            return "failer";
        }
    }
  
    public void validate() {    //验证
      
        if(null==this.getUsername()|| "".equals(this.getUsername().trim()))
        {
            this.addFieldError("username", "username request");
        }
        if(null==this.getPassword()||"".equals(this.getPassword().trim()))
        {
            this.addFieldError("password", "password request");
        }
    }
  

}

步骤6,Webcontent下的web-inf下面的web.xml进行配置,web.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
<filter>
<filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

步骤7,在WebContent下面新建两个jsp文件,分别命名为login.jsp 和 result.jsp

其中login.jsp的代码为:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit name="submit"></s:submit>
</s:form>
</body>
</html>

result.jsp的代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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>
    <base href="<%=basePath%>">
    <title>My JSP 'result.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">  
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
   </head>
   <body>
    username:${requestScope.username}<br>
    password:${requestScope.password}
</body>
</html>

完成以上几个步骤,整个项目的目录如下:


步骤8,部署发布

步骤9,打开ie,输入: http://localhost:8080/struts2/login.jsp OK,输入hello和 word,然后提交,即可看到效果啦~~~

 

 

 

目前布置成功,但是输入: http://localhost:8080/struts2/login.jsp时显示的是空白页!

如果在配置过程中出现:错误可以大胆的更换一下struts2的jar包,我忘记什么错误了,大概是:missmappingexception

 

Struts2入门实战项目:HelloWorld案例详解 提到Struts2,很多人第一反应是struts.xml或者Action类,但真正掌控全局的,其实是那个默默无闻的前端控制器——。这个名字有点长,但它做的事情非常关键:拦截所有进入应用的HTTP请求,并启动整个MVC流程。你可能会问:“这不就是一个Filter吗?Servlet里也能写啊。没错,但它不是普通的Filter,它是整个Struts2宇宙的“大爆炸起点”。💥这个Filter会在容器启动时加载(内置配置),然后读取你的struts.xml。 阅读详情

相关推荐

Struts2框架实践:入门到精通的小例子

本文还有配套的精品资源,点击获取 简介:Struts2是一个基于MVC模式的Java Web应用框架,本实例将深入探讨其核心特性如拦截器、国际化支持、重复登录防范、Token机制,以及与myEclipse集成、Action/Result、配置文件(struts.xml)和JSP视图技术的使用。通过实践这些关键知识点,开发者将提升在构建和维护Java Web应用方面的能力。 ...

weixin_32287387的博客 1404

Struts2一之典型用例

写一个简单的登录跳转的场景来记录下struts2的用法。 前端使用的是DMI请求方式,后台action使用继承ActionSupport的方式创建action 一.构建struts2环境 1.导入struts2的jar包 2.配置struts2的核心配置文件: &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE stru...

w450093854的专栏 299

struts2+hibernate原理写的CRUD

带有分页,分页跳转,部门员工表的CRUD,hibernate注解方式操作实体,struts2动态方法调用

java struts2 例子_Struts2学习进阶(实例篇一)——struts2-blank-2.0.8实例学习

说明:本文经过笔者对struts2.0.8自带的实例struts2-blank-2.0.8学习而写,对该例子进行了部分修改,希望对广大象要学习struts2的朋友有所帮助。一.实例说明本例是Struts2的简单实例,通过本工程的学习,我们将会对struts2的表单以及表单验证有一个初步的认识、了解struts2的配置以及初探Struts2的本地化输出。二.编码准备1.包的引入在MyEclipse或...

weixin_29435115的博客 275

struts2完整例子

struts2完整例子struts2完整例子struts2完整例子struts2完整例子struts2完整例子struts2完整例子

struts2实例项目

struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例

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

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

wuxiaopengnihao1的博客 503

struts2 项目实例

struts2.0 小例子 希望对刚学struts2的同胞能有所帮助

struts2入门-简单例子

首先去struts的官网https://struts.apache.org/download.cgi#struts2516,下载一个2.5及以上版本的struts2,选择下载Full Distribution,里面包含很多学习文档。 建立一个java web项目,就和普通的java web项目一样的建立方法。在WEB-IINF中的lib文件夹中放入必要的jar包,都在刚下载的struts2文件中...

weixin_40544356的博客 1364

Zigbee智能开关和单火取电技术

ZigBee智能开关(单火线)是在ZigBee协议基础上开发由单火线供电的开关,它可以控制各种类型负载的开关,如LED灯,白炽灯,荧光灯和钨丝灯等。配合相应的主机用户可以使用手机远程控制它,进而达到控制灯光开关的目的。它具有自组网功能,使用简单方便,给你的居家生活带来无线享受。可应用于家庭,办公,医院和酒店等场合。

danhuoxian的博客 1万+

TSMaster二次开发实战:如何用Python搞定CAN/CANFD事件回调(附完整代码)

本文详细介绍了如何利用Python进行TSMaster二次开发,实现CAN/CANFD事件回调功能。通过实战代码演示,讲解了预发送与后处理回调的核心区别、注册流程、资源管理及性能优化技巧,帮助工程师高效构建自动化测试与数据监控应用。

star的博客 668

struts2 与struts1比较和入门小例子

1.struts中加入spring的好处:spring依赖注入;事务2.struts2比Struts1多个拦截器action写法,属性用来封装(就不用request来取值了);传值(ValueStack);struts2标签比较简洁;validate;3.struts2的入门例子,还是HelloWorld4.struts2入门知识struts.apache.org/download

628

【向量数据库】Milvus向量数据库 ① 从入门到实战

Milvus是专为海量高维向量设计的开源数据库,支持AI搜索、图像识别、推荐系统等场景。相比传统关系型数据库(如PostgreSQL),它更高效处理语义检索、非结构化数据存储,可毫秒级响应亿级向量查询。单机场景下,推荐配置8GB内存/32GB硬盘,支持FAISS/HNSW等索引算法,支持GPU加速。本文涵盖优快云专属部署教程(CentOS脚本/配置调优),提供避坑指南与扩展资源,并对比分析与传统数据库差异。适合算法工程师、AI开发人员快速上手,附官方下载与性能测试技巧,手把手教你搭建高效向量检索系统!

xiezhiyi007的专栏 1585

eclipse搭建Struts2入门小例子

利用eclipse创建一个web工程 导入用到的jar包 开发包下载 打开下载的Struts2开发包 struts-2.3.37->lib下的可以发现有106个jar包但是在实际开发中用不到这么多的jar包 要进行struts2的基本的开发,可以参考struts-2.3.24中的apps下的一些示例代码,其中 struts2-blank.war 是一个 struts2的空的工程。我们只需要将...

weixin_45799367的博客 424

MIC(Maximal Information Coefficient)最大互信息系数

MIC(Maximal Information Coefficient)最大互信息系数是一种用于衡量两个变量之间相关性的统计量。它扩展了传统的互信息(MI)和条件互信息(CMI)的概念,具有更广泛的应用范围。MIC能够捕获包括功能性和非功能性的广泛的关联,具有普遍性和公平性。普遍性意味着在足够的样本量下,MIC能够捕捉到广泛的相关关系,而不仅仅局限于特定的功能类型;公平性则意味着MIC对不同类型的包含同等噪声的关系给出了相似的分数。需要注意的是,虽然MIC具有很多优点,但它也有一些局限性。

qlkaicx的博客 4604

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

Struts2入门级例子

1.     入门级例子<br /> <br />根据上述了解,要开发第一个Struts2程序,我们需要完成下面的事项:<br /> <br />l           在web.xml中增加Filter(过滤器)配置<br />l           编写Action<br />l           编写Struts2的配置文件<br />l           编写JSP<br /> 引入依赖包<br />我们的第一个Struts2应用程序,将基于最新的struts2版本:struts2.2.1版本。

李腾飞的专栏 2474

从零开始搭建水质监测系统:STM32+Lora+4G的物联网应用详解

本文详细介绍了如何从零开始搭建一个基于STM32、LoRa和4G技术的工业级水质监测物联网系统。文章深入剖析了系统架构设计、核心硬件选型(如STM32F103系列MCU)、关键电路接口、嵌入式软件驱动开发、多任务调度以及云端数据集成与可视化的完整实战流程,为智慧农业、环境监测等领域的物联网应用提供了宝贵的“避坑指南”和解决方案。

m0n1o2p的博客 583

struts2简单入门例子

1、建立javaWeb工程hello 2、在WebRoot&gt;WEB-INF&gt;lib下导入struts2的九个基本jar包,建立path 3、在WebRoot&gt;WEB-INF下新建web.xml文件 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE web-app PUBLIC "-//Sun Microsy...

zero_130的博客 213

Scratch离线版部署指南:解决资源缺失与页面显示异常问题

本文提供了一份详尽的Scratch离线版部署指南,旨在解决网络依赖导致的资源缺失与页面显示异常问题。通过从基础文件获取、自动化资源抓取到生产环境部署的完整流程,帮助教育工作者和开发者在无网络环境下搭建功能完整的本地Scratch编辑器,确保编程教学的顺利进行。

wine的专栏 1260

【即插即用模块】Transformer篇 | ICCV 2025 | MALA :注意力分布神似Softmax,告别线性注意力性能短板!

MALA(Magnitude-Aware Linear Attention)是一种改进的线性注意力机制,通过引入缩放因子和偏移项,解决了传统线性注意力忽视查询幅度的问题,使其分布更接近Softmax Attention。该模块具有线性复杂度(O(n)),结合RoPE和LEPE编码实现全局-局部位置信息混合,通过z值调制平衡信息权重。实验表明MALA在轻量级视觉任务中能有效平衡效率与精度,注意力可视化显示其分布与Softmax Attention高度相似。代码提供完整的RoPE位置编码和线性注意力

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1106

Struts2 入门例子 Struts2.1 权威指南

前几天去图书馆看了本书 Struts2.1 权威指南。然后回来就把第2章的入门例子。自己简单的写了下。觉的光看书。没写代码东西还不是自己的。 于是就自己写了一遍。 http://book.51cto.com/art/200905/125847.htm 上面是第二章的书。我的代码是可以运行的。希望可以多交流。我将接下去把下面的继续看完。...

zjutsoft 164

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 想成为嵌入式程序员应知道的16个基本问题
下一篇: 认真的思考一下
吾日三省-
博客等级 码龄17年 41粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值