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 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...
随机推荐
- 二、python介绍
python第一篇-------python介绍 一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语 ...
- 阿里巴巴编程规约--digest
所谓卫语句,如果某个条件极其罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回.这样的单独检查常常被称为“卫语句”. 微服务之间将DTO,Req放到一个单独的项目中,相关的项目都依赖这个底层 ...
- Why We Changed YugaByte DB Licensing to 100% Open Source
转自:https://blog.yugabyte.com/why-we-changed-yugabyte-db-licensing-to-100-open-source/ 主要说明了YugaByte ...
- Linux 系统管理——引导过程与服务控制
一. 系统引导流程 1.开机自检(BIOS)(基本的输入输出系统) 2.MBR引导1.2. MBRIS 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR (Master Boot Record ...
- 洛谷 P2983 [USACO10FEB]购买巧克力Chocolate Buying 题解
P2983 [USACO10FEB]购买巧克力Chocolate Buying 题目描述 Bessie and the herd love chocolate so Farmer John is bu ...
- 使用chrome浏览器调试移动端网页(非模拟访问)
1. 使用数据线连接手机与电脑 2. 打开手机调试模式 参考:http://jingyan.baidu.com/article/f79b7cb35ada4d9145023e63.html 本人使用的m ...
- POI报表打印
一.Excel报表(POI) 1.需求说明 在企业级应用开发中,Excel报表是一种最常见的报表需求.Excel报表开发一般分为两种形式: 1.为了方便操作,基于Excel的报表批量上传数据 2.通过 ...
- SDN上机第四次作业
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 安装ODL后安装插件 2.3用Python脚本搭建如下拓扑,连接OpenDayLight控制器 拓扑如图: Py ...
- Java中在时间戳计算的过程中遇到的数据溢出问题
背景 今天在跑定时任务的过程中,发现有一个任务在设置数据的查询时间范围异常,出现了开始时间戳比结束时间戳大的奇怪现象,计算时间戳的代码大致如下. package com.lingyejun.authe ...
- [C++] 类的成员变量和成员方法
类具有成员变量和成员方法 成员变量用来描述某个对象的具体特征,是静态的,也称为成员属性,这些属性一般设置为私有,仅供类的内部使用. 成员方法用来描述某个对象的具体行为,是动态的,也成为成员函数,这些属 ...