struts2
玉爷~
技术学的好,讨饭讨到老。
展开
-
struts2简介
struts2是线程安全的,servlet是线程不安全的1、Struts2优势自动封装参数参数校验结果的处理(转发|重定向)国际化显示等待页面表单的防止重复提交struts2具有更加先进的架构以及思想2、Struts2历史struts2的前身时webwork框架struts2与struts1区别就是技术上没有什么关系...原创 2019-04-20 00:00:14 · 97 阅读 · 0 评论 -
struts2源码执行流程
先进入核心过滤器,然后判断该请求是不是由Struts2执行的,是的话:(1)创建ActionContext:其中其实先创建一个valueStack,然后从其中拿出context用来创建ActionContext(2)把request包装成一个新的request: 包装了getAttribute方法,包装后 该方法找值的顺序: 先从request域中找值 ...原创 2019-05-15 15:00:08 · 81 阅读 · 0 评论 -
struts2的StringUtils工具类中isNotEmpty()和isNotBlank()的区别
1、代码演示:import org.apache.commons.lang3.StringUtils;public class IsNull { public static void main(String[] args) { String str1 = null; String str2 = ""; String str3 = " "; String str4 =...原创 2019-05-15 00:27:11 · 573 阅读 · 0 评论 -
struts2异常处理
在struts2中可以利用struts2的异常处理机制开发:当访问action过程中可以自己抛了异常,然后配置发生异常时跳转页面还是跳转处理(当然可以选择是转发还是重定向)<global-exception-mappings> <exception-mapping result="error" exception="java.lang.RuntimeException...原创 2019-04-21 00:09:43 · 76 阅读 · 0 评论 -
struts2标签
1、标签体系因为jsp支持自定义标签,所以之后就有了jstl这套大家公认好的,在javaEE5.0后加入javaEE体系的标签库,该标签库有分4个:core、format、sql、xmlstruts也有自己的标签库,但至于一个:struts-default2、struts2标签结构3、标签简介(1)控制和数据标签property也可以不写value属性,默认取value...原创 2019-04-21 00:09:38 · 89 阅读 · 0 评论 -
拦截器
拦截器生命周期:随着项目的启动而创建,随着项目的关闭而销毁struts2中默认拦截器栈中有20个拦截器拦截器不会拦截jsp1、拦截器创建的三种方式(1)实现Interceptor接口public class MyInterceptor1 implements Interceptor { @Override public void destroy() { // TOD...原创 2019-04-21 00:09:34 · 83 阅读 · 0 评论 -
ognl与struts2结合
1、结合原理context其实就是ActionContext数据中心,root是一个栈,遵循先进先出的原则,ValueStack中root的实现,使用的是list:2、使用Debug标签看值栈中的内容先在jsp页面导入标签库,然后写入:<s:debug></s:debug>然后,先访问一个action,然后转发到该页面(因为ValueStack...原创 2019-04-21 00:09:29 · 106 阅读 · 0 评论 -
OGNL表达式
OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航.OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能.1、使用ognl准备工作(1)导包struts2 的包中已经包含了.所以不需要导入额外的jar包(2)代码准备//准备rootUser user = new User("tom",19);//准备context...原创 2019-04-21 00:09:25 · 136 阅读 · 0 评论 -
StrutsMVC
原创 2019-04-21 00:09:20 · 173 阅读 · 0 评论 -
struts2接受参数
1、属性驱动(1)官方推荐,现实中不常用,不推荐(2)使用方法:在action中添加属性(要写get、set方法),属性名和页面提交参数的name值一样,一个name对应一个属性(3)优点:可以自动完成类型转换(只能转换八大数据类型和包装类) 支持特定字符串转换为Date,例如:yyyy-MM-dd(4)servlet不可以使用属性获得参数原因:servlet是线程不安...原创 2019-04-20 00:02:10 · 444 阅读 · 0 评论 -
struts2访问servletAPI
1、原理三种访问方式,后面两种本质都是调用的第一种2、通过ActionContext访问ActionContext中是通过map<String,Object>存放Servlet原来的request、response、session等对象以及域对象。servlet中的request域、response域、session域存值的本质是使用map。ActionCont...原创 2019-04-20 00:02:03 · 95 阅读 · 0 评论 -
控制结果跳转方式
1、转发(默认)<action name="type1_*" class="com.ityuchao.test.TypeWay" method="{1}"> <result type="dispatcher" name="success">/hello.jsp</result></action>2、重定向<action na...原创 2019-04-20 00:01:46 · 111 阅读 · 0 评论 -
三种action创建的方式
1、创建一个类,可以是一个POJOPOJO:不用继承任何父类,也不用实现任何接口使Struts2框架代码入侵性更低2、实现Action接口里面有execute方法,提供action方法的规范Action接口预置了一些字符串,可以在返回结果时使用3、继承ActionSupport类帮我们实现了Validateable,validationAware,TestProvide...原创 2019-04-20 00:01:31 · 668 阅读 · 1 评论 -
动态方法调用
不用每一个action的方法都配一个action标签方式一:配置变量<!-- 动态方法调用是否开启,默认是关闭的 --><constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>方式二:使用通配符<action name="Dyna...原创 2019-04-20 00:01:38 · 253 阅读 · 1 评论 -
Struts2配置详解
1、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...原创 2019-04-20 00:01:08 · 289 阅读 · 0 评论 -
Struts2访问流程
aop:面向切面编程官方图:原创 2019-04-20 00:01:55 · 118 阅读 · 0 评论 -
搭建Struts2框架
1、导包因为该框架里lib包太多,所以可以解压里面的案例,使用里面的包注意:struts和hibernate包在合并时.javassist-3.18.1-GA.jar包是重复的,删除版本低的.2、书写action类public class HelloAction { public String hello() { System.out.println("hell...原创 2019-04-20 00:00:44 · 96 阅读 · 0 评论 -
struts2文件上传
一、文件上传页面四个要求:(1)变短必须是post提交(2)提交类型必须是enctype="multipart/form-data",必须多段式(3)文件使用文件上传控件<input type="file“ name="f"/>(4)name必填,不然不会上传二、使用struts2接受文件1、后台接受文件:在action中写一个File对象的属性,属性名和前...原创 2019-05-25 16:55:02 · 759 阅读 · 0 评论