06 struts2

struts2

一.什么是MVC(Model/View/Controller)?

1> MVC是一种编程思想,人为的将系统分为三个层次。
2> MVC的好处:解耦合。提高系统的可维护性和可拓展性。
M(Model)V(View)C(Controller)
数据模型层:entity/dao/service/视图层:jsp、html、(freeMarker/VO)控制层:servlet、struts2、springMVC

二.框架的概念

1.解决的问题:框架解决的是开发过程中的通用问题。
2.好处:提高开发效率。

三.struts2 框架

1.充当了MVC中的控制器、替换了servlet底层 、封装了servlet相关的API、但是不是servlet
2、servlet充当控制器存在的问题:
	|--代码冗余
	|--数据类型转换麻烦(客户端请求数据库采用的HTTP协议传输的是String)
	|--字符集编码格式
	|--跳转“硬编码”

四.使用Struts2开发

1.获得struts2框架
	1.1可以到 www.apache.org 官网下载//struts2主要借鉴了webWork中的很多核心。 
2.struts2的官方目录

在这里插入图片描述

 3.搭建开发环境
       3.1导入jar包

在这里插入图片描述

3.2 做初始化配置—开启struts2框架
          在web,xml里面配置

在这里插入图片描述

  3.3 引入配置文件
         struts.xml放在src下
         
         
4.ServletActionContext工具类【重点】
作用:通过ServletActionContext可以拿到一些servlet原生API对象;
request: HttpServletRequest request = ServletActionContext.getRequest();
response: HttpServletResponse response = ServletActionContext.getResponse();

5.在myeclipse中引入 struts配置文件的智能提示
Windowspreferences输入xml

在这里插入图片描述
在这里插入图片描述



6.struts中的跳转【重点】
   同一个package下的跳转
	|--Action—jsp跳转:【重点】

	forward:(默认<缺省>)
		<result name="success" type="dispatcher">/jsp/success.jsp</result>
	redirect:
		<result name="success" type="redirect">/jsp/success.jsp</result>

	Action—Action跳转

	forward:

在这里插入图片描述

在这里插入图片描述

redirect:

7.package的作用
1>.在实际开发过程中对action进行分类管理。
2>.每一个package标签都有一个 namespace属性,主要作用就是从 访问路径上 来区分不同package下的 action. namespace的属性值 是某一个action访问路径的一部分 必须以 / 开头。
注意:namespace 默认值 是 / ,同一个struts.xml中 有一个namespace的默认形式。

8.跨包(package)跳转

跨包跳转只有action-action跳转

在这里插入图片描述
9.全局跳转
全局跳转 解决的问题是result标签的 跳转路径冗余
注意:全局跳转的标签必须配置在所有action标签之前
全局跳转只在本包内有效
当全局跳转和局部跳转冲突时候,会以局部跳转优先;

/error.jsp


### 五.struts2中收集客户端参数【**重点**】

```java
1.struts2是通过成员变量的方式收集客户端参数
2.要求:将成员变量的名字 与 客户端提交数据的 name属性的值 保持一致,并且提供set/get方法。
3.Struts2收参的好处
	3.1 接收零散数据方式
		1)我们只需要定义成员变量 定义成我们想要的类型,struts2就会自动的为我们转换,不			需要手动处理。
		
注意:struts2 为我们提供的默认编码格式是 UTF-8

接收日期类型数据的时候,客户端输入的必须是以 yyyy-MM-dd 格式。

	3.2接收对象类型的数据
		1)封装好一个实体类
		2)在action中声明一个成员变量(实体类类型)--表单中的name属性指定:成员变量的			名字.实体属性的名字。
		
	3.3接收数组类型 或 集合类型

六.拦截器–interceptor

1.作用:将多个action中冗余的代码,提取到拦截器中,一次定义,多次使用。
2.实现一个拦截器
	2.1 定义一个类 实现Interceptor接口
	核心实现intercept 方法
     

在这里插入图片描述

	2.2 配置拦截器—struts.xml

在这里插入图片描述

	 2.3对拦截器的相关事宜
	 2.4可以中断请求

在这里插入图片描述

	2.5拦截器栈(针对于配置文件优化)

在这里插入图片描述

	注意:一旦自定义拦截器(拦截器栈) 加入,原有的系统拦截器会失效。
 	在struts-default.xml中 有一个系统默认提供的拦截器 叫params,这个拦截器主要就是负责收集客户端参数。

 	Params拦截器里面做的事情【了解】:

在这里插入图片描述
在这里插入图片描述

方法级别拦截器:
	1)实现一个方法拦截器
  	继承MethodFilterInterceptor

在这里插入图片描述

	2)配置struts.xml

在这里插入图片描述

	3)文件的上传
      	1.客户端浏览器(form表单) 如何处理
      	2.action中如何接收上传的文件
      	3.如何将上传的文件保存到服务器的某个位置
      
       	剖析点1: text/css text/html MIME类型
                  Image/jpg image/png
 前台编码:

在这里插入图片描述

 后台编码:  

在这里插入图片描述

	4)文件下载 
		1.在服务器上准备好 要下载的文件
        2.编写action:
         需要我们提供一个InputStream—将要下载的文件 读入程序。

在这里插入图片描述
在这里插入图片描述

	5)验证码
		1.为什么需要验证码?
 			1.1判断是否是 一真实个人在操作
		2.如何实现一个验证码?
   			2.1 生成一个随机数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
192.168.85.1 - - [26/Jun/2022:06:07:07 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 14 192.168.85.1 - - [26/Jun/2022:06:08:06 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 15 192.168.85.1 - - [26/Jun/2022:06:08:16 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 1227 192.168.85.1 - - [26/Jun/2022:06:10:15 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 79 192.168.85.1 - - [26/Jun/2022:06:13:25 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 404 752 192.168.85.1 - - [26/Jun/2022:06:16:42 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:16:57 -0400] "GET //struts2-showcase/hhh.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:18:55 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:19:02 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:19:09 -0400] "GET //struts2-showcase/hhh1.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:19:34 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 400 192.168.85.1 - - [26/Jun/2022:06:20:37 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 5 192.168.85.1 - - [26/Jun/2022:06:20:42 -0400] "GET //struts2-showcase/hhh1.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:20:46 -0400] "GET //struts2-showcase/hhh.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:20:51 -0400] "GET /struts2-showcase/hhh.jsp HTTP/1.1" 403 642
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值