struts2学习之入门



       前段时间学过一下struts1,其实也就是配置web工程成功而已,但是过了一个多月后,当再想继续学习的时候,感觉和从头开始没有什么两样了,为什么?因为我没有总结,没有形成自己的一套体系。胡-哥说过,技术博客为什么要发表? 不发表就没有留存, 没有留存就没有记忆,没有记忆就没有历史,没有历史就没有存在,没有存在就没有意义!所以我决定了在以后的学习中都要把学到的东西记录下来,让这些见证自己的成长。
      话说多了,前两天接触了struts2, struts2给我第一的感觉就是比struts操作简单,省去了很多步骤,更灵活(其实struts1我只是学过几天而已,感觉特别繁琐)。

     今天就记录第一个怎么配置第一个struts工程。
           1、 下载struts类库http://www.apache.org/ 我用的是2.1.6版本,myeclipse8.6
           2、 创建web工程,将一些必要的类库拷贝到WebRoot目录的lib下。下载到的类库很多,其中必需的有7个:
                (1)commons-fileupload-1.2.1.jar
                (2)commons-io-1.3.2.jar
                (3)commons-logging-1.0.4.jar
                (4)freemarker-2.3.13.jar
                (5)ognl-2.6.11.jar
                (6)struts2-core-2.1.6.jar
                (7)xwork-2.1.2.jar
          3、编写配置文件struts.xml文件,此文件要放在src目录下

              

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="struts2" extends="struts-default">
		<action name="login" class="com.champion.action.LoginAction">
			<result name="sucess">/index.jsp</result>
		</action>
	</package>
</struts> 

           说明:struts2和strus1在配置文件就有很大的不同,它的配置信息比struts1简单多了,它一<struts>开头,里 面有<bean>,<struts>,<include>,<package>四个子标签,现在我只到到过<package>这个标签,所以就分析一下 这个标签的有什么用,<package>的name属性可以随便取,extents表示继承stuts-default.xml这个配置文件(这或许就是struts2配置信息比较简单吧,个人的猜想而已).<package>标签下也有很多个子标签,经常用到的是<action>,这个标签看它的名字就可以知道是什么意思了,在这里,我定义了一个name="login"的动作,它对应的类为

class="com.champion.action.LoginAction",<action>标签下有个<result>标签,它的作用就是在动作类处理后需要处理的结果。关于这个配置的文件就说这么多,以后再慢慢深入…

          4、有了这配置文件还是不行的,必须得让tomcat知道有个文件,它才会把struts2的类库加载到内存来,所以还得在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">
	<welcome-file-list>
		<welcome-file>login.jsp</welcome-file>
	</welcome-file-list>
	<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>
</web-app>

 

          说明:这个文件的配置和struts1也有明显的不同,struts1采用的是动作控制的servlet来配置,而这个是通过过滤器来控制的,只要配置的有<filter>和<filter-mapping>这两个标签,其中的<filter-class>是固定的,<filter-name>要一致,否则将无法找到对应的过滤器,<url-pattern>/*<url-pattern>表示所以的请求都交给这个过滤器过滤。

          5、编写LoginAction.java代码

     

package com.champion.action;

public class LoginAction {
	private String username;
	private String userpwd;

	public String getUsername() {
		return username;
	}

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

	public String getUserpwd() {
		return userpwd;
	}

	public void setUserpwd(String userpwd) {
		this.userpwd = userpwd;
	}

	public String execute() throws Exception {
		return "sucess";
	}

}

             说明:这个动作类里面有两个属性username和userpwd以及他们的set和get方法,这两个属性名称要和页面的输入框name属性值相同,还有一个方法execute(),这个方法是struts2内置的,它返回一个字符串类型,当在页面请求login.acion时,它就会自动将页面的值赋给这两个属性。

           6、编写login.jsp页面

   

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
	<head>
		<title>用户登录</title>
	</head>
	<body>
		<form action="login.action" method="post">
			用户名:
			<input type="text" name="username" />
			<br>
			密 码:
			<input type="password" name="userpwd" />
			<br>
			<input type="submit" value="提交" />
			<input type="reset" value="重置" />
		</form>
	</body>
</html>

          说明:可以看到两个输入框的name属性值和LoginAction类中的属性值一致,表单的action="login.action",当

表单提交时,后台就会调用LoginAction这个类。

        7、编写index.jsp页面,表示登录成功后需要显示的页面

   

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<html>
  <head>
    <title>个人信息中心</title>
  </head>
  <body>
    用户名:${requestScope.username }
    密     码:${requestScope.userpwd }

  </body>
</html>

           说明:这个页面用来EL表达式来显示用户的信息,其他的不多说了。

       8、启动工程,看结果,有图有真相。

            在login.jsp页面输入如下:             
         

            
             提交后在index.jsp页面输出如下:               
           

            9、整个流程是怎么样的

 



 
 
          说明:在index页面中的代码,用户名:${requestScope.username }

                                                    密   码:${requestScope.userpwd }
 

                    struts会自动调用LoginAction中的属性的get方法,最终显示在页面上。

 

          

          10、小结一下

 

            struts2刚接触几天,只是明白了这个整个流程,虽然自己很明白这个流程,但是很难用言语来准确的描述,就像上边的流程图一样,画了半个小时,最终的结果也不清不楚的,自己看这都晕,以后还是得多补充一下辅助工具使用方面的知识才行了,要做程序员就必须得用工具来表达自己的思想,要不技术再厉害,也可能无处施展(声明一下,我的技术不厉害)。

 

       

 

 

 

 

 

 

win10安装openvpn客户端 进入C:\Program Files\TAP-Windows\bin目录,然后右键用管理员权限执行addtap.bat文件,此文件执行会创建一个网卡。链接:https://pan.baidu.com/s/1KAifTiP7qp1i5ZkfdnfwkA。4.2 进入安装目录的config下新建一个文件夹,将证书文件全部挪进去(不移动.ovpn文件)3.4 将拿到的ssl认证文件放入安装目录的config目录下。然后修改ovpn文件 “./”代表当前路径,第二个链接重复。3.1 一直下一步到这里打上勾。 阅读详情

相关推荐

高分思路!挑战7天完成一篇网状meta DAY1-7

PASSION!继续析挑战,7天完成一篇网状meta分!

MR_SCI_help的博客 787

Struts2 入门学习总结一

一、Struts2简介 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,这个框架充分发挥了Struts1和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易。 struts2还有以下...

vel970912的博客 1万+

4.无限共轭距柯克物镜设计——zemax学习笔记

无限共轭cooker物镜

fly_daerm的博客 1601

Struts2框架学习总结(从入门到精通)

Struts2入门 struts2概述 struts2入门案例 struts2底层执行过程 struts2相关配置 struts2的action创建 struts2的action方法访问 Struts2数据操作 Struts2值栈 Struts2拦截器

For_ZZHacker的博客 1万+

Python pydub实现语音停顿切分

将pcm文件批量处理成wav文件 import wave import os filepath = "data/" # 添加路径 filename = os.listdir(filepath) # 得到文件夹下的所有文件名称 #f = wave.open(filepath + filename[1], 'rb') #print(filename) for i in range(len(fi...

wangqianqianya的博客 1万+

5分钟搞懂MSDNet:用Transformer实现小样本语义分割的保姆级教程

本文详细介绍了MSDNet(Multi-Scale Decoder Network)如何利用Transformer架构实现小样本语义分割。通过多尺度解码器和空间Transformer解码器,MSDNet能够在仅有1-5张标注图像的情况下完成精确分割任务。文章提供了PyTorch代码实例和优化技巧,帮助开发者快速掌握这一前沿技术。

weixin_30832143的博客 506

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

Vast.ai GPU服务器租用与SSH密钥连接实战指南

本文详细介绍了如何在Vast.ai平台租用GPU服务器并通过SSH密钥安全连接的全流程。从注册、选配GPU型号到SSH密钥生成与配置,再到实战中的端口转发和文件传输技巧,帮助用户高效利用云端GPU资源进行深度学习等计算密集型任务。

weixin_29574585的博客 532

Struts2框架学习day01(入门XML配置、action编写)

1.2 Struts2框架的学习路线 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写 第二天:Struts2的数据的封装、结果页面配置 第三天:Struts2的值栈和OGNL表达式 第四天:Struts2的标签库 1.3 Struts2的概述 1.3.1 Struts2的概述 1.3.1.1 什么是Struts2 Strut...

weixin_42135811的博客 479

多组学联合高级Mantel-test热图

对应的是「metabo」中物质间的相关性热图,单元格色块颜色表示相关系数大小,橙色表示+相关,绿色表示-相关;单元格内的数值表示相关性值大小,星号表示显著性。双组学(微生物组/ 转录组/代谢组等两两组合)关联分析,可视化组学特征间的关联显著性、强度及相关方向。表示<trans>与<metabo>中物质的Mantel test结果。表示整体相关的系数,连线颜色表示相关系数的显著性检验结果。宿主-微生物互作、疾病多组学机制、环境-生物多组学关联。为物质名称,不允许存在空值、重复值。

多组・学・多组学 371

TSP:车为什么能和云端交互?

TSP:车为什么能和云端交互?

天赐好车的博客 416

struts2入门学习

struts2是一个轻量级、基于请求的MVC框架(如果一个框架没有侵入性,就说该框架是轻量级的。侵入性----如果使用一个框架,必须实现框架提供的接口或者继承框架提供的类,则这个框架具有侵入性)。 struts2下载 struts官网,点击下载。我下载的是2.5.22这个版本。 下载好后,可以在struts-2.5.22\docs\docs\getting-started\index.htm...

qq_42197800的博客 213

【异常】OpenClaw调用火山引擎大模型提示词 Agent failed before reply: All models failed (6): volcengine/kimi-k2-5-26

摘要: 本文针对OpenClaw调用火山引擎大模型服务时触发的全量熔断报错(All models failed)提供全链路排查方案。报错核心为服务熔断(cooldown)和模型不可用(model_not_found),主要源于账号权限、API凭证失效或模型标识错误。解决方案按优先级分步实施:1)校验账号状态与AK/SK有效性;2)核对官方模型标识;3)重启服务解除熔断;4)修复配置文件;5)通过原生API测试定位网络或服务端问题。日志分析(openclaw logs)可快速识别HTTP状态码(如401/40

奶爸的编程之路,也就一周冷个三天 838

Struts2 入门学习总结二

一、Struts2的配置文件 Struts2中的6个配置文件: default.properties struts-default.xml struts-plugin.xml struts.xml struts.properties web.xml 配置文件的加载顺序和上图一致。当多个配置文件中,有相同的参数,后加载的值会覆盖先加载的值。 default.properties...

vel970912的博客 509

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

Struts2框架学习笔记之Struts2入门

目录标题Struts2简介Struts2的优点Struts2处理流程Struts2快速入门下载jar包创建项目新建JSP配置web.xml创建struts.xml文件创建class类 Struts2简介 Struts2是一种基于MVC模式的轻量级Web框架,Struts2是Struts1的下一代产品,是在Struts1和WebWork技术的基础上进行合并后的全新框架 struts2框架其实是对javaWeb表现层的MVC作了优化 Struts2的优点 1、项目开源,使用及拓展方便,天生优势。 2、提供E

Atkx's Blog 574

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Struts2入门学习

Struts入门            Web应用是目前被广泛使用的系统架构,而MVC模式逐渐成为实现Web应用的首选设计模式。在目前众多的     MVC框架中,struts2算是佼佼者。                  MVC就是模型-视图-控制器(Model-View-Controller) 1.sun公司在jsp的早期规范中制定了两种JSP开发模型,分别为:        模

断翼天使 865

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

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

Struts2入门学习心得

 看这个心得前不知道您之前有没有用过WebWork2,如果用过webwork的同志们估计就不用看了,感觉Struts2和webwork用起来基本一模一样。由于我也是刚开始玩struts2,所以只是初步运用,写得不好请大家见谅。有关Struts2的标签库应用部分不做介绍及评论。      我们首先来搭建一个空的Struts2 Web工程,在IDE中创建一个JAVAEE5的web工程(请确定是

PETER的专栏 9072

Struts2学习笔记一(Struts2入门)

这是笔者在学习过程中的知识记录,可能有错误的地方,仅供参考 #Struts2的入门 Struts2的简介 在Javaee开发中,我们一般将整个项目分成表现层,业务层,和持久层,在持久层就是和数据库打交道,之前的Hibernate就是属于这个层的,在表现层我们在没有框架之前是使用jsp+servlet+javabean的MVC设计模式来实现的,Struts2框架就是用来代替之前表现层的开发模式...

水中无名鱼的博客 181

Struts2入门学习笔记详解:

Struts2 入门学习笔记详解: Struts2起源与背景: 学习一个技术就要了解它的历史, 知道它的背景 出现的因素… 这是我学习的习惯 在以前很久一段时间曾经出现过一种框架Struts1 Struts1 在很长一段时间, 在MVC框架中处于绝对的统治地位…大概04年吧… 我才上幼稚园… Struts1:可以很好的实现 控制与业务逻辑的分离… 但自身也存在一些缺陷: 表现层单一: 只支持表现层使用, 限制了Struts1 的发展; 对Servlet APl 的依赖: Struts1 框架基于 Mode

慈様 2318

Struts2框架入门学习

1、Struts2框架入门 目录 1、Struts2框架入门    1.1 什么是Struts2框架? 1.2 为什么用Struts2框架? 1.3 如何适用Structs2框架? 1.3.1 Struts2框架的下载 1.3.2 Struts2框架Jar包引入 1.3.3 创建请求jsp界面 1.3.4  创建Action类(返回值success用于界面跳转) 1.3....

知飞翀的博客 795

Struts2 入门学习

Struts2 入门学习 环境的搭建、登陆demo

sz_bdqn的专栏 891

struts2学习笔记(一)—— struts2介绍及入门程序

一、struts2概述 1.1 什么是struts2?  在介绍Struts2之前,先来认识一下Struts1。Struts1是最早的基于MVC模式的轻量级web框架,他能够合理的划分代码结构,并包含了验证框架、国际化框架等多种实用工具框架。但随着技术的进步,Struts1的局限性也越来越多的暴露出来。为了符合更加灵活、高效的开发需求,Struts2框架应用而生。   Struts...

VNOpU2015的专栏 271

SSH学习(一)Struts2入门

博主之前公司使用的是第三方框架Jforum,如果大家有兴趣的可以去百度Jforum,它是一个开源论坛项目,使用的是自己独有的第三方框架,而且无版权使用问题。是一个比较优秀的第三方框架。之前把javase的有关知识系统得总结了一遍,但是还是有许多遗漏的知识点。博主打算在之后对javase的知识进行补充,先把三大开源框架温习一下。毕竟没有经常使用,还是有很多生疏的地方。 首先就从Struts2开始,

代码搬运工 1952
上一篇: XPath基础
下一篇: struts2学习之类型转换
Champion_netjava
博客等级 码龄16年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值