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. SpringBoot整合Bubbo

    一.创建springboot_dubbo_provider项目 1 创建service层接口 public interface IDoSomeService { public String sayHi ...

  2. Tensorflow细节-P309-高维向量可视化

    import matplotlib.pyplot as plt import tensorflow as tf import numpy as np import os from tensorflow ...

  3. BZOJ 4764: 弹飞大爷 LCT

    思路并不难,主要是细节需要注意一下. 在 lct 中,删边要写成:f[lson]=0,lson=0 (因为删 x->y 时 y 不一定是左儿子,y 只是 x 的前驱) 然后 f[lson]=ls ...

  4. WinDbg常用命令系列---清屏

    .cls (Clear Screen) .cls命令清除调试器命令窗口显示. .cls 环境: 模式 用户模式下,内核模式 目标 实时. 崩溃转储 平台 全部 清屏前 清屏后

  5. 干货 | 10分钟搞懂branch and bound(分支定界)算法的代码实现附带java代码

    Outline 前言 Example-1 Example-2 运行说明 00 前言 前面一篇文章我们讲了branch and bound算法的相关概念.可能大家对精确算法实现的印象大概只有一个,调用求 ...

  6. 50、Spark Streaming实时wordcount程序开发

    一.java版本 package cn.spark.study.streaming; import java.util.Arrays; import org.apache.spark.SparkCon ...

  7. 蚂蚁金服开源机器学习工具SQLFlow,机器学习比SQL还简单

    来自:开源最前线(ID:OpenSourceTop) 综合自:AI前线.https://github.com/sql-machine-learning/sqlflow 5月6日,蚂蚁金服副 CTO 胡 ...

  8. hive 整合ranger

    一.安装hive插件 1.解压安装 #  tar zxvf ranger-2.0.0-SNAPSHOT-hive-plugin.tar.gz -C /data1/hadoop/ 2.修改install ...

  9. 在js中添加HTML类样式

    有时候需要给元素添加类样式,但又要保留之前的类,可以使用element.classList.add("类名");

  10. 移动端 - adb shell常见问题汇总

    一.如何执行adb命令? 答:如果没有配置SDK的环境变量的话,那就先用cd命令进入adb所在文件目录(即F:\android-sdk-windows\platform-tools)后,再执行adb命 ...