01 Struts2框架学习(了解一下,已过时)
1.框架介绍
所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的精力放到业务需求的分析和理解上面。
特点:封装了很多细节,程序员在使用的时候会非常简单。
早前,有三大框架struts、hibernate、spring(SSH)
近几年,springmvc、mybatis、spring(SSM) -----主流框架选择方案
曾经经典的『SSH』三驾马车,现在只有Spring还保持活力,Strust和Hibernate都过时了。
strust能做的,spring都能做,而且spring现在的生态很好,比如springboot,springcloud等等。
MVC架构:
M:Model 模型,封装数据。javabean
V:view 视图,展示界面。jsp
C:Controller 控制器,控制程序流程。

2.Java SSH框架介绍
SSH在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。 Struts对Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
3.Struts2入门---开发环境的搭建
Struts2是Apache发行的MVC开源框架。注意:它只是表现层web(MVC)框架。
(1)下载Struts2开发包
http://struts.apache.org
选择课程中提供的2.3.33的版本,解压后如下图所示。

在apps目录中,提供了一个struts2-blank.war 包
初始学者在项目集成中,导入lib下的所有包即可

(2)第一个Struts2项目

点击next后,创建工程。
工程结构为:

设置Struts2的jar包路径

注意:若报ERROR StatusLogger No log4j2 configuration file found. Using default configuration错误
解决方案:创建log4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.opensymphony.xwork2" level="debug"/>
<Logger name="org.apache.struts2" level="debug"/>
<Root level="warn">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
测试工程是否成功:
创建hello_struts2.jsp,进行测试
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
<div align="center">
<h1>HelloStruts2</h1>
</div>
</body>
</html>
在 index.jsp 中链接一下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<a href="hello_struts2.jsp">点击前往测试页面</a>
</body>
</html>
启动tomcat,测试效果。

Struts2架构图

User created标识的是以后我们经常要写的
4.Struts2第一个案例
struts.xml配置文件相关属性:
(1)package:表示包
name:包名,在struts.xml文件不能有相同的包名,包名是惟一
extends:继承,固定struts-default
abstract:抽象包,被用于继承,一般在抽象包里不声明action
namespace:命名空间,访问路径,默认值是空字符串
可用于模块划分
要注意:命名空间需要加/斜杠
(2)action:动作
name:相当于Servlet的映射路径(@WebServlet)
class:处理请求的类,相当一个Servlet类
method:处理请求的方法
1.public的
2.返回值必须是String
3.没有参数
(3)result:结果,写返回的jsp页面
name:逻辑视图的名称,对应着动作方法的返回值。默认值是success
type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher 转发(url地址不变)
result中type的取值有四种类型:

struts.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!--
package:表示包
name:包名,在struts.xml文件不能有相同的包名,包名是惟一
extends:继承,固定struts-default
action:动作
name:相当于Servlet的映射路径(@WebServlet)
class:处理请求的类,相当一个Servlet类
method:处理请求的方法 result:结果,写返回的jsp页面
-->
<package name="p1" extends="struts-default">
<action name="hello" class="action.HelloAction" method="sayHello">
<result name="success">/success.jsp</result>
</action>
</package> </struts>
HelloAction.java
<1>action类的第一种写法
package action;
public class HelloAction {
public String sayHello(){
System.out.println("HelloAction的sayHello方法被调用了...");
//int i = 10 / 0;
return "success";
}
}
<2>action类的第二种写法
写个Action类继承ActionSuport类【推荐使用这种方式】
ActionSupport是实现Action接口的类
package action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction1 extends ActionSupport {
public String sayHello1(){
System.out.println("HelloAction的sayHello方法被调用了...");
return "success";
}
}
struts.xml文件中的相关配置
<action name="hello1" class="action.HelloAction1" method="sayHello1">
<result name="success">/success.jsp</result>
</action>
运行逻辑图:

效果图:

01 Struts2框架学习(了解一下,已过时)的更多相关文章
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- Struts2框架学习(一)
Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...
- Java之struts2框架学习
Java之struts2框架学习 About Struts2 Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全 ...
- struts2框架学习笔记7:struts2标签
三大标签: 1.JSP:脚本,为了替代servlet,已过时 2.JSTL:标准标签库(core.format.sql.xml),还未淘汰的只有core库 3.Struts2标签库:由Struts2开 ...
- [ SSH框架 ] Struts2框架学习之一
一.Struts2框架的概述 Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中.目前掌握 Struts2框架几乎成为 ...
- [ SSH框架 ] Struts2框架学习之二
一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...
- [ SSH框架 ] Struts2框架学习之四(自定义拦截器)
一.Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截 ...
- struts2框架学习之第一天
day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...
随机推荐
- [TJOI2015]概率论——期望&&母函数
题意 求一个含有 $n$ 个结点的有序二叉树的叶子节点的期望个数.($n \leq 10^9$) 分析 一堆推导..... 得 $ans = \frac{n(n+1)}{2(2n-1)}$ #incl ...
- 原生 ajax 请求
ajax 即 Asynchronous Javascript And XML,AJAX 不是一门的新的语言,而是对现有持术的综合利用.本质是在 HTTP 协议的基础上以异步的方式与服务器进行通信. 异 ...
- [译博文]CUDA是什么
翻译自:https://blogs.nvidia.com/blog/2012/09/10/what-is-cuda-2/ 你可能并没有意识到,GPU的应用有多广泛,它不但用于视频.游戏以及科学研究中, ...
- kafka-python 1.4.6 版本触发的一个 rebalance 问题
在使用了最新版的 kafka-python 1.4.6 在 broker 对 topic 进行默认配置的情况下报出类似错误 CommitFailedError CommitFailedError: C ...
- struct udphdr
udphdr结构包含在/usr/src/linux/include/linux/udp.h struct udphdr { __u16 source; __u16 dest; __u16 len; _ ...
- 海底高铁(洛谷 P3406)
题目背景 大东亚海底隧道连接着厦门.新北.博艾.那霸.鹿儿岛等城市,横穿东海,耗资1000亿博艾元,历时15年,于公元2058年建成.凭借该隧道,从厦门可以乘坐火车直达台湾.博艾和日本,全程只需要4个 ...
- CF1221G Graph And Numbers(折半搜索+图论)
答案=总数-无0-无1-无2+无01+无02+无12-无012 直接详细讲无0和无2 无0为 01和11,无2为01和00,显然二者方案数相同,以下考虑无0 考虑折半搜索,后半段搜索,二进制点权0的位 ...
- Mysql问题1862
使用Navicat连接MySQL数据库出现1862错误(1862:Your password has expired.To log in you must change it change it us ...
- 第06组 Alpha冲刺(4/6)
队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 主要完成了用户联系模块的接口设计 完善后端的信息处理 GitHub签入记录 接下来的计划 ...
- 范仁义html+css课程---4、文本标签
范仁义html+css课程---4.文本标签 一.总结 一句话总结: 文本标签大致掌握一下,做到它站在你对面的时候最好认得,认不得也没关系,直接百度 1.ins标签.u标签和del标签 作用? ins ...