以一个简单的登录的例子来演示如何搭建struts1环境

MyEclipse2014环境下搭建struts2框架并实现简单的登录验证 前置条件 1.安装好JDK并配置好环境变量 2.安装好myEclipse2014或其它版本 搭建步骤 List item 阅读详情

本例先讲解struts1的工作流程,然后举一个用户登录的例子做演示。


struts1的工作流程:

struts1是MVC模型的经典应用,以前对MVC的模型理解有错,一直以为C,也就是Control是做业务逻辑的,也就是业务逻辑都是由servlet做的,而JavaBean只起到一个模型的作用,但是到后来,听老师讲课才知道是我理解错了,也是老师之前给举的例子误导了我,到现在学习了struts1,才终于看透了Control的作用,也就是servlet仅仅是起到一个控制流程的作用,具体的后台的逻辑处理,是由Bean来做的。


在struts1中,servlet这个类已经不用我们动手去写了,别人已经给我们写好了,叫做ActionServlet,我们只需要导入ActionServlet所在的包就可以了。而我们所做的具体的控制工作,则相应的转换到一个配置文件——struts-config.xml 中。也就是我们要通过配置struts-config.xml文件,来起到控制的作用,就好像这个文件是servlet的接口。以前做控制的工作我们都是直接写servlet类的,现在我们做控制工作,是在struts-config.xml文件中。这点一定要绕过来,不然就不好理解struts1的工作流程了。


在struts1中,起M(Model)作用的是一个叫做ActionForm的类,也就是这个类充当了JavaBean的角色。


在struts1中,做业务处理的是一个叫做Action的类,其中有一个execute()方法,我们的逻辑处理都是在这个方法中做的,严格上来说这也是一个JavaBean。


另外,jsp页面,仍然起着V(View)的作用。


下面具体说一下struts-config.xml配置文件,因为这个是由以前我们写的MVC模型“升级”到struts1中,变化最大的地方。


它是怎么起控制作用的呢?其实这得从struts1的工作流程说起。


举登录的例子来说:

我们填写好用户名和密码的表单,会提交到ActionServlet中,ActionServlet会根据表单中的提交地址,也就是action所指定的参数,在struts-config.xml中查找对应的Action,从而调用Action做相应的业务处理,处理完后,Action会返回一个ActionForward对象到struts-config.xml中,指定处理结果的去向,这个去向可以是jsp页面,也可以是另一个Action。


也许你会疑惑,表单提交的时候,action不是只能指定一个提交地址吗?怎么会即提交到ActionServlet又指定某个Action呢?其实这里也是struts1的又一个特点。我们以前写的提交地址直接写servlet的url或是某个jsp的页面,但是在struts1中,这个提交地址会有些变化,习惯的,这个提交地址写成action="actionpath.do",点号前面指定的是某个具体的Action的path,也就是url,指明了这个表单想要由哪个Action来处理,点号后面加个do,是为了这个表单能够提交到ActionServlet,因为在web.xml中,ActionServlet的url-pattern写成了“*.do”。其实这里可以这样理解,就是ActionServlet起到一个过滤器的作用,捕捉所有url后缀有.do的页面。



下面就以一个简单的登录的例子,说明来看一下如何搭建struts1,并且理清一下struts1的工作流程:

1、新建一个web工程:struts1


2、在lib目录下导入所需的jar包,其中就包含上面提到的ActionServlet所在的包。(这些包当然要到Apache官网上去下载了,我用的版本是struts-1.3.10)

下载下来,解压缩,在apps目录下,有一个struts-blank-1.3.10.war文件,这是一个空的工程,也就是只搭建起来了struts1的框架,把这个文件用压缩软件打开,把struts-blank-1.3.10.war\WEB-INF\lib下的所有jar包复制到我们的工程的lib目录下。我们的ActionServlet类就在struts-core-1.3.10.jar这个包中。


3、导入包之后,我们来配置web.xml文件,也就是要注册ActionServlet类,添加如下代码:

<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>0</load-on-startup><!--在开启服务器的时候,加载这个类 -->
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern><!--这里的意思是过滤所有以.do做后缀的请求页面-->
  </servlet-mapping>


4、创建ActionForm类:

package com.suo.ActionForm;

import org.apache.struts.action.ActionForm;

public class User extends ActionForm 
{
	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;
	}
	
}

User继承自ActionForm,其实就是一个JavaBean。


5、创建Action类:

package com.suo.Action;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.suo.ActionForm.User;

public class Treate extends Action
{
	public ActionForward execute(
            ActionMapping mapping,//映射对象,封装了struts-config.xml与Action之间的映射关系
            ActionForm form,//即表单对象,在ActionServlet中,会将用户提交的表单信息,自动封装成ActionForm对象。
            HttpServletRequest request,
            HttpServletResponse response)
            throws Exception {
		
		User user=(User)form;//进行一下强制类型转换
		
		if(user.getUserName().equals("suo") && user.getPassword().equals("123"))
		{
			return mapping.findForward("success");
		}
		else
			return mapping.findForward("error");//返回ActionForward对象,指定用哪个页面或是Action处理结果
    }
}


6、创建struts-config.xml配置文件

<?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="login" type="com.suo.ActionForm.User"></form-bean>
	</form-beans>
	
	<action-mappings>
		<action name="login" path="/treate" type="com.suo.Action.Treate">
			<forward name="error" path="/user/error.jsp"></forward>
			<forward name="success" path="/user/success.jsp"></forward>
		</action>	
	</action-mappings>
	
</struts-config>
有必要说一下配置文件中的对应关系:

<form-beans/>对应的是JavaBean,type指定的具体的类。

<action-mapping/>中的<action>对应的是某一个具体的Action,path指定访问这个Action时的路径,也就是url,type是指定这个Action的类文件。记住<forward>要写在<action>中。

<form-beans/>中某一个<form-bean/>的name要和其相对应的<action>的name一致。


至此,struts1环境就搭建好了!




Struts1.2登录实例 利用Struts1的框架实现简单的登录,在实例中了解Struts1的流程以及相应的配置。 立即下载

相关推荐

struts1的工作流程

struts1的执行流程

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

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

李阿昀的博客 2万+

一个非常基本的struts例子 struts环境搭配(固定账号用户登入)(附运行结果和配置过程)

如题:一个非常基本的struts例子 struts环境搭配(固定账号用户登入)(附运行结果和配置过程) 学struts的时候,第一步就是配置,记得当时搜资料的时候,找到的乱七八糟的,现在就把我当初的作业拿过来和大家一起分享下吧。 我用的是eclipse jdk1.6 tomecat6

重温经典struts1之搭建环境

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

dy051107的博客 1557

利用Struts2框架实现的登录留言评论效果(idea平台)

利用Struts2框架实现的登陆留言评论的效果,有修改,删除留言等功能,前端为Bootstrap框架,并设置权限只能自己删除留言

struts1.x入门教程

struts1.x入门教程

Struts1.x环境搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.youkuaiyun.com/qq_42680327 1、下载struts1.3 Jar 包,放到lib目录下,导入到项目中 下载地址:https://struts.apache.org/download.cgi#struts2520 Struts1.x环境搭建 复制Jar 包 修改web.xml文件 添加struts-c...

qq_42680327的博客 468

DM9000有线网卡驱动编写

DM9000有线网卡驱动编写 1.DM9000简介   DM9000 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。 自 带一个 10/100M PHY 和 4K 双字的 SRAM ,DM9000A 为适应各种处理器提供了 8 位、16 位数据接口访问 内部存储器,DM9000 拥有自动协商功能,DM9000 特性如下:   1.集成自适应 10/100M 收发器。   2.内置 16k 字节的 SRAM。   3.支持硬件帧校验。   4.兼容 3.3V 和 5.0V

weixin_44453694的博客 4672

struts1执行流程及环境搭建

struts是应用在web层的一个MVC框架。主要包含actionServlet、Action、ActionForm、ActionForward、ActionMapping这几个组件和struts-config.xml配置文件。其运行流程如下图: 黄色的标志的是需要用户自己实现的类。 actionServlet:是struts1的核心控制器。其主要功能是截取url,读取struts-co

limuzi13的专栏 757

从零构建腾讯滑块验证码破解引擎:逆向工程与实战对抗

本文深入解析腾讯滑块验证码(原天御验证码)的防护机制,包括环境感知层、行为分析层和验证决策层的核心技术。通过JSVMP虚拟机保护、轨迹验证算法和动态加密体系,腾讯验证码实现了高效的人机识别。文章还提供了安全研究实践指南,涵盖环境模拟和验证码识别方案,并探讨了防御对抗的演进趋势与合规研究建议。

rl6adventurer的博客 830

别再折腾CUDA了!Win11上VSCode一键配置PyTorch GPU环境(附Anaconda虚拟环境避坑指南)

本文提供Win11系统下使用VSCode和Anaconda一键配置PyTorch GPU环境的详细指南,解决CUDA版本冲突等常见问题。通过conda的原子化依赖解决方案,安装时间从2小时缩短至15分钟,适合深度学习初学者快速搭建开发环境。

weixin_33101399的博客 247

struts1的一个登录的简单例子

struts

马哥私房菜 707

如何免费访问和使用Gemini API?

Gemini Ultra具有最先进的性能,在几个指标上超过了GPT-4的性能。它是第一个在大规模多任务语言理解基准测试中超越人类专家的模型,该基准测试57个不同学科的世界知识和解决问题的能力。Gemini是谷歌迄今为止开发的最先进、最庞大的AI模型。它为多模态而建,理解并处理不同类型的数据,比如文本、代码、音频、图像和视频。下面我们将加载Masood Aslami的图像,并用它来测试Gemini Pro Vision的多模态性。有了Gemini可以为查询提供图像、音频和文本,获得几乎完美的答案。

java_cjkl的博客 1万+

struts1 一个很简单的登录演示

要加载的jar有: log4j-1.2.16.jar                                 commons-logging-1.1.1.jar                                                    commons-beanutils-1.8.0.jar

christine_Ruan的专栏 2907

【读书笔记】Verilog的亚稳态现象和跨时钟域处理方法

文章目录 一、亚稳态 (1)跨时钟域的亚稳态现象 (2)亚稳态的多径传输 二、跨时钟域处理 2.1 单bit信号跨时钟域处理 (1)单径两级触发器同步器 (2)相位控制 (3)多径与多级寄存器同步链 (4)组合逻辑信号的同步化 (5)快时钟域信号的同步化 2.2 多bit信号的跨时钟域处理 (1)异步FIFO (2)双口RAM.........

毕淑敏曾说过:“我不相信命运,我只相信自己的手;我不相信手掌上的纹路,但我相信手指加上手掌的力量”。在这个快节奏的社会,只有自己能力不足才会被卷,踏踏实实沉下心来学一些技术,及时记录,方便以后复盘。 2万+

从零开始:用AutoLisp为AutoCAD定制专属工具栏(2023最新版)

本文详细介绍了如何利用AutoLisp语言为AutoCAD定制专属工具栏,以提升绘图效率。内容涵盖从环境配置、AutoLisp基础语法到实战开发的全过程,指导用户编写自动化脚本、封装功能函数,并最终通过CUI编辑器创建和部署个性化工具栏按钮,是2023年CAD用户实现工作流自动化与个性化的实用指南。

4k5l6j7h8的博客 299

Struts2开发环境搭建,及一个简单登录功能实例

第一步 下载Struts2 第二步 新建Web Project并导入jar包 第三步 配置web.xml struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 第四步 配置struts.xml 在项目的src目录下找到st

qq_32917423的博客 416

三维重建(十八)——colmap的使用(粗浅)

三维重建(十八)——colmap的使用(粗浅)

河海大学研究生在读的学习笔记 1376

Struts1环境搭建(手动)+登录小例子

struts1包下载地址:http://www.apache.org 第一步:建一个web工程struts1,然后解压下载到的struts压缩包-->,解压后的目录为 apps文件夹下都是一些struts1的例子,把struts-blank-1.3.10应用解压,然后把其lib目录下的jar文件拷贝到自己工程lib目录下,这些jar文件是: 第二步

断翼天使 6227

YOLOv13改进策略【Head】| (独家改进)结合 ICME-2024 中的PPA注意力模块,自研带有注意力机制的小目标检测头

本文记录的是利用PPA (并行补丁感知注意模块)改进YOLOv13的检测头。通过改进传统卷积,形成带有注意力机制的小目标检测头,使模型能够更好地关注小目标的重要信息。HCF-Net: Hierarchical Context Fusion Network for Infrared Small Object Detection采用多分支特征提取策略,通过不同分支提取不同尺度和层次的特征。利用局部、全局和串行卷积分支,对输入特征张量进行处理。通过控制 patch size参数实现局部和全局分支的区分,计算非重叠

Limiiiing的博客 480

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Struts 1.x项目——简单的登录界面

前言:这是一个最简单的Struts 1.x的项目。设计思路是在表单中输入用户名和密码,验证用户名和密码是否有内容(服务器端验证),如果输入正确显示欢迎信息,否则显示错误信息。 使用软件:MyEclipse2017, Tomcat 8.5 MyEclipse默认支持Struts 1.x和Struts 2.x的开发。 一、建立一个新的项目 1.选择新建Web Project,输入项目名称Struts_Login 2.在Struts 1.x还没有Annotation配置支持,所以此处使用Struts 1.x.

Yua_H的博客 1022

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

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

Struts1的一个例子

在公司接触了半年的前台界面的调整,近期在回顾框架知识,写成功了一个Struts1的入门实例,作为保存: 1.首先要建立一个WEB项目,导入Struts1的架包和配置文件(struts-config.xml) 2.在web.xml文件中配置Struts1的核心控制器ActionServlet(因为我扩展了ActionServlet,所以此处指定的是扩展后的类) acti

一直在追逐,一直在妥协 880

数学建模模型总结

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

struts1.x环境配置及登陆例子

自己动手做一个例子,印象会比较深刻。先到struts官网下载包。形如:struts-1.3.10-all.zip。其中,all.zip表示该包中包含,例子,源文件,jar包等所有相关的东西。下载地址http://struts.apache.org/ 在该页面左侧点击:Prior Releases 链接,这里的Releases 指的是发布,发放的意思,以后在下载其他官方文件时,也要注意这个单词,

X_Jian的专栏 1890

介绍Struts 1.1 框架基本原理,以及介绍Struts 1.1 安装和一个简单的例子。

  本文主要是介绍Struts 1.1 框架基本原理,以及介绍Struts 1.1 安装和一个简单的例子。 1. Struts的起源       Struts 是作为Apache Jakarta项目的组成部分。该项目的目标是为建立Java web 应用程序而提供的一个开源框架,目前大家一般使用的版本为1.1,但也出现了1.2。通过使用struts 框架可以改进和提高Java Server Page

吴楚狂生 2084

Spring简单整合Struts2实现登录例子

1、先完成Struts2简单登录例子的实现,当前的目录结构如下 2、右击项目添加spring开发能力 3、导入struts2的spring支持包struts2-spring-plus-2.0.11.jar(注意应该与struts核心包版本一致),建立path 4、修改web.xml,添加监听器,param-value中定义applicationContext配置路径 &lt;?x...

zero_130的博客 4894
上一篇: find——文件查找命令
下一篇: oracle简单操作
hackerain
博客等级 码龄16年 753粉丝 220原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值