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框架学习(了解一下,已过时)的更多相关文章

  1. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  2. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  3. Struts2框架学习(一)

    Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...

  4. Java之struts2框架学习

    Java之struts2框架学习 About Struts2 Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全 ...

  5. struts2框架学习笔记7:struts2标签

    三大标签: 1.JSP:脚本,为了替代servlet,已过时 2.JSTL:标准标签库(core.format.sql.xml),还未淘汰的只有core库 3.Struts2标签库:由Struts2开 ...

  6. [ SSH框架 ] Struts2框架学习之一

    一.Struts2框架的概述 Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中.目前掌握 Struts2框架几乎成为 ...

  7. [ SSH框架 ] Struts2框架学习之二

    一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...

  8. [ SSH框架 ] Struts2框架学习之四(自定义拦截器)

    一.Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截 ...

  9. struts2框架学习之第一天

    day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...

随机推荐

  1. Task 使用方法

    Task的使用方法 1. 调用无参数.无返回值方法 private void button1_Click(object sender, EventArgs e) { Task task = new T ...

  2. java将图片输出base64位码显示

    注意需要过滤:\r \n数据 jkd1.7的 import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; /** * 网络图片转换Base ...

  3. 基于Ubuntu1604+ROS-kinetic+roscpp的激光雷达定位算法从零开始移植

    调试的过程太麻烦了,因此打算详细解释一下每步的含义,很多地方懂了之后发现其实很简单,但是学起来却发现很多地方无从下手,因为资料太少了,真的都是不断踩坑一点一点摸索出来的,写以此文以便后人乘凉 此处将展 ...

  4. [NPM + React] Prepare a Custom React Hook to be Published as an npm Package

    Before we publish our package, we want to make sure everything is set up correctly. We’ll cover vers ...

  5. mysql linux上安装使用

    安装启动 安装之前可以看下系统中有没有已经安装. 查看所有软件:dpkg -l 1.查看mysql安装的版本 mysql --version 2.mysql状态 service mysql statu ...

  6. a list of frequently asked questions about Circus

    转自:https://circus.readthedocs.io/en/latest/faq/,可以帮助我们了解circus 的使用,以及问题解决 How does Circus stack comp ...

  7. 开源项目 11 Ionic Zip

    using Ionic.Zip; using System; using System.Collections.Generic; using System.IO; using System.Linq; ...

  8. codevs 2780 ZZWYYQWZHZ

    2780 ZZWYYQWZHZ  时间限制: 1 s  空间限制: 32000 KB  题目等级: 青铜 Bronze       题目描述 Description 可爱的小管在玩吹泡泡.忽然,他想到 ...

  9. 如果判断条件过多,可以直接在computed里面去返回需要判断的数据

    bad <div class="offer-item_margin" v-show="offer.supplierName || offer.supplierSto ...

  10. GIT 使用记录,新手->会用(mac 用户)

    (唔,mac 用户这个要求是因为集成在 terminal 中可直接使用) 1. github 中 创建 git 账户 2. github -> 在个人设置中 找到 ssh  and GPGkey ...