Struts1入门

struts1教程,struts1入门 struts1教程 struts1入门 struts1学习 struts1知识 立即下载

原文出自搬砖工,需要转载请注明出处。


JavaEE学习就从最通用的MVC框架Struts开始学习,然后到Hibernate,最后是Spring。
对于Struts来说,Struts1和Struts2区别较大。有部分人认为只需要了解最新的就可以了,但是把最原始的东西多看一下,对我们程序员来说可能收获更多。毕竟编程,思路是最重要的。
Struts1入门
一、什么是Struts?

Struts是开源框架(MVC)。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

二、Struts的常用组件
1.ActionServlet
2.Action
3.ActionForm
4.ActionMapping
5.ActionForward

三、Struts的优点
1.基于配置文件的松耦合,Struts中的通常类都被写在配置文件里面了。如:Action、ActionForm、ActionForward等。如果需要修改一些常用配置的话,只需要修改配置文件就可以了。
2.Formbean(ActionForm)解决了验证信息的重新显示需要管理员设置的问题。
3.对数据等信息有集中的验证。
4.支持国际化以及异常信息处理。

四、五大组件介绍
1.ActionServlet
Struts中的最大控制器,是Struts框架的入口,并且封装了Servlet,被配置在web.xml当中
2.Action
小控制器,处理具体的业务逻辑
3.ActionForm
和页面表单对应的一个特殊javabean,负责在页面和控制器之间传递数据。同时还提供了集中验证方法
4.ActionMapping
用来从Struts的配置文件中读取信息
5.ActionForward
页面之间的跳转

五、Struts工程创建步骤
1.创建一个Web工程
2.添加Struts的jar包
3.创建一个Struts配置文件struts-config.xml
4.在web.xml添加Struts配置

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

5.创建一个LoginForm,用作Formbean,需要继承ActionForm

package com.demo.form;
import org.apache.struts.action.ActionForm;
 
public class LoginForm extends ActionForm{
    private static final long serialVersionUID = 1L;
    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;
    }
     
 
}

6.创建一个Action类,用来处理业务逻辑,注意它需要继承Action

package com.demo.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.demo.form.LoginForm;
public class DemoAction extends Action{
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
                    throws Exception {
        //String username = request.getParameter("username");
        //String password = request.getParameter("password");
        LoginForm loginform = (LoginForm)form;
        String username = loginform.getUsername();
        String password = loginform.getPassword();
        if(username!=null&&username.equals("lwh")){
            return mapping.findForward("success");
            //request.getRequestDispatcher("/Success.jsp").forward(request, response);
        }else{
            return mapping.findForward("failure");
            //request.getRequestDispatcher("/Failure.jsp").forward(request, response);
        }
        //return null;
    }
}

7.在struts-config.xml中配置Action、ActionForm和ActionForward,注意看他们配置中的其他参数名称以及参数值

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
    <form-beans>
        <form-bean name="loginform" type="com.demo.form.LoginForm"></form-bean>
    </form-beans>
    <action-mappings>
        <action path="/login" type="com.demo.action.DemoAction" name="loginform">
            <forward name="success" path="/Success.jsp"></forward>
            <forward name="failure" path="/Failure.jsp"></forward>
        </action>
    </action-mappings>
</struts-config>

8.其他代码
登陆页面:

<%@ 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%>">
  </head>
   
  <body>
    <form name="loginform" id="form1" action="<%=path %>/login.do" method="post">
        <table border="0">
            <tr>
                <td>name:</td>
                <td><input type="text" name="username" id="username" /></td>
            </tr>
            <tr>
                <td>password:</td>
                <td><input type="password" name="password" id="password" /></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="submit"/></td>
            </tr>
        </table>
    </form>
  </body>
</html>

成功页面:

<%@ 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%>">
  </head>
   
  <body>
    Success!
  </body>
</html>
9.运行结果

六、Struts官网链接
Struts下载地址
Struts官网

tips:struts的jar包可以参考Struts给的示例的lib里面jar包来导入

TOGAF9.2/10 认证基础知识点概览表 (考点解析:业务场景是一种重要的技术,可以在企业架构的各个阶段使用,主要是架构愿景和业务架构,但如果需要,也可以在其他架构域中使用,以直接从业务的高级需求中派生架构的特征。“哪里”可以看作是对相关企业的界定、“为什么”可以被视为组织环境中的关键驱动因素和要素、“谁”是指确定发起人利益相关者和受业务指令影响的其他主要利益相关者,以创建企业架构,并确定他们来自企业的需求和优先级、他们与企业的关系以及彼此之间所需的工作行为。它是业务驱动和业务主导的,它结 合了所有业务线的必要努力,以实现所需的能力。 阅读详情

相关推荐

ARM CoreSight架构

CoreSight架构是现代复杂SoC的“飞行数据记录仪”(黑匣子)和“精密诊断仪”的结合体。它彻底改变了嵌入式系统的调试方式,从传统的“盲人摸象”变成了拥有“上帝视角”,是ARM生态系统能够支撑起从微控制器到高性能服务器芯片如此广泛产品线的重要基石技术之一。

guigenyi的专栏 1421

Struts1介绍

struts:[strʌts]支柱; 撑杆; 支杆; 支撑; 趾高气扬的步态; 高视阔步的样子; 引入struts Model1结构如图1所示: Model1是一个以JSP文件为中心的模式,在这种模式中JSP页面不仅负责表现逻辑,也负责控制逻辑。专业书籍上称之为逻辑耦合在页面中,这种处理方式,对一些规模很小的项目如:一个简单的留言簿,也没什么太大的坏处,实际上,人们开始接触一些对自己来说是新的东西的时候,比如,用JSP访问数据库时,往往喜欢别人能提供一个包含这一切的单个JSP页面,因为这样在..

顺其自然~专栏 2944

Ansys Lumerical 启动时出现 Error: Could not connect to Ansys license server specified at 1055@ 的另一种解决办法

昨天在关闭了中之后 就能正常打开 FDTD 了,结果今天想开启出现了同样的报错:我猜测昨天能启动的原因在于关闭之后要重启电脑,并且在重启之后我第一时间打开 lumerical 测试因此端口没有被占用,今天是在电脑启动之后一段时间才打开所以又遇到了端口占用的问题。

qq_51404184的博客 9549

Struts 1基础入门

学习内容Ø 框架的概念Ø Struts 1体系结构Ø Struts 1运行流程能力目标Ø 了解MVC模式的优缺点Ø 理解框架的概念Ø 会使用MyEclipse进行Struts 1开发 本章简介在上一阶段的学习中,我们通过使用MVC模式进行了多个项目的开发。在MVC模式中,JavaBean实现业务逻辑,Servlet实现流程控制,JSP负责数据显示,这样的设计使程序的层次更加清晰,项目分工更加明确,

张晨光老师的播客 2174

揭秘cocos-mcp:如何用AI助手提升CocosCreator游戏开发效率

本文深入介绍了cocos-mcp工具,它作为连接AI助手与CocosCreator编辑器的桥梁,遵循MCP协议,能显著提升游戏开发效率。通过自然语言指令,开发者可让AI直接查询场景结构、批量修改属性或生成上下文代码,将重复操作变为智能调度,实现从“手动操作者”到“指令指挥官”的工作流变革。

weixin_29001683的博客 1048

代码实现 —— 基于 STM32 的可见光通信系统课程设计

基于STM32F103ZET6,源码如需移植,需要修改定时器捕获通道引脚,及定时器,如果你也有这个课设任务,希望对你有所帮助。

不善挽留 1万+

入门Struts1第一讲——Struts1入门就这么简单

现在终于进入框架的学习中了,前面还有好几个框架等待着我们呢。我们先来学习Struts1框架,然后再过渡到Struts2框架的学习中。下面我们开始学习Struts1框架。Struts简介Struts是apache开发的一个web层的框架,它主要用于简化web层的开发,Struts针对web层的一些常用操作,例如: 表单数据的封装、校验和数据的回显 国际化开发 文件上传 异常处理 等等…Struts都提

李阿昀的博客 2万+

自动驾驶IDM与MOBIL模型

IDM模型,自动驾驶

不想学好数学的汽车工程师不是一个好的程序员 1万+

重温经典struts1之搭建环境

搭建struts1框架并实现简单的login功能

dy051107的博客 1557

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

funfan的博客 2966

SAP BTP Trial 生命周期全解析:90 天试用、30 天活跃规则、Kyma 有效期与向 Free Tier 的顺滑迁移

摘要: SAP BTP免费试用账号(trial)提供90天有效期,需每30天登录一次保持活跃状态。Kyma运行时有效期仅14天,需特别注意重建。到期后数据不可恢复,建议将关键配置脚本化并保存。若需长期使用,可迁移至无时间限制的免费层(free tier)。文章详细拆解了试用生命周期规则,包括续期、删除机制,并针对CAP开发、集成套件和Kyma等场景提供实操建议,帮助用户规避常见误区,高效利用试用资源。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 367

Struts1框架轻易入门,经典示例

Struts1框架轻易入门,经典示例 一枚菜鸟的学习笔记,请多指教。Struts工作原理及流程 登录验证示例 Struts1 工作原理及流程 这是本人整理的一点材料,原理图为纯手工绘制,不喜勿喷,不足之处还望大家多多指点。 1、读取配置 Struts框架总控制器(ActionServlet)就是一个Servlet,需要在web.xml中进行配置,在服

程序猿的故事 1万+

【QCA6174】QCA6174 DFS认证的时候会有概率信道不会跳转的情况,通常跳转成功概率只有25%问题分析及解决方案

Master设备需要测试的项目。

wgl307293845的博客 752

Struts1的快速入门

struts 1.3.X 前言: 在目前来看基于struts 的项目基本上,已经被淘汰并消失到了历史的长河中,各种培训也在宣扬spring全家桶。 但是总是有那么一个时候,进入了一个不大不小的公司,给你一个十年前的老项目,这个时候,不要痛苦,学习老技术也是理解开发过程的一种途径。 正巧题主现在就遇上了这种问题,一个金融类的10多年的项目,正好学习了解下古老的Struts1. struts 1.3.X 下载 下载struts的JAR包路径 注:在下载页面的下方会有struts1.3.X的版本的jar包 基础入

qq_41701107的博客 727

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Struts1.x使用入门

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

菜鸟502的博客 3806

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Struts1入门系列一(Struts原理详解)

一、Struts简介  1、软件的三层结构      表现层:主要是JSP和HTML页面,用于接收用户的请求,以及返回操作数据,是应用程序访问的入口。      业务逻辑层:主要是对数据库的操作,对数据业务逻辑进行处理。如果说数据层是积木,那么逻辑层的工作就是对这些积木的搭建。      数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文

yyyyyyyyyyyy 652

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

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

Struts2——(1)Struts2入门

1、Struts2历史,与Struts1的关系      两者的内部基于的原理完全不同,Struts2是基于WebWork发展而来的框架。      两者都是基于MVC实现的框架。      Struts1是Apach推出的。      WebWork是opensyfry推出的。      Strut2是以WebWork为核心,引入Struts1的特性(Struts2由A

水寒 3040

Struts1.3——Struts入门

本文介绍了struts的入门知识,通过手工配置实现一个struts项目介绍了struts的工作原理和流程

Gavin 1万+

struts1入门

1. 在myEcliple中添加struts1.2支持: 项目上右键 - myEclipse - add struts Capabilities - 选择struts1.2 - ... 注:myEcliple会帮我们做几件事:1.导入struts1.2所需的包;2.在web.xml添加一个filter(org.apache.struts.action.ActionServlet);3.WEB-INF下添加几个tld文件(struts标签)和struts-config.xml、validator-rule

apartonely的专栏 352

Struts1 配置入门

Struts1框架有五个常用对象:Actionservlet、Actionmapping、Actionform、action、actionforward                a) Actionservlet是核心控制,URL 地址映射、ActionForm的匹配、 Action 的执行都需要这个类来进行导航                b) Actionmapping:它们

dongzhouT的专栏 927
上一篇: mysql做简单用户登陆的几种方式
下一篇: java数据库连接池
海之沐
博客等级 码龄12年 1536粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值