Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并实现应用的功能.通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 封装应用状态:某些应用数据封装起来,使得视图只能通过接口获取对应的数据 响应状态查询:对应用的状态改变进行处理 暴露应用功能:暴露接口 通…
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一个老师曾经说过框架=反射+设计模式+配置文件,现在细想确实很有道理. 让Struts2运行起来首先需要导入核心包,核心包可以参考下载文件中的blank.war中的Jar包,具体需要引入的包如下: 接下来就需要配置文件来让Struts跑起来了.Struts2需要配置两个文件:web.xml和strut…
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官方提供的demo中拿到必要的jar就行. 在apps/struts2-blank项目下 2.数据库准备 /* Navicat MySQL Data Transfer Source Server : GaGa Source Server Version : 50549 Source Host : lo…
managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional i…
     5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 其中class属性中"solr"是org.apache.solr.schema这个包名的缩写.…
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件的上传与下载涉及到Java的IO操作,etc啊--女朋友打电话写不下去了,明天补! 2017年3月11日 经过了...重庆三日游.办公室三日游.辞职之后...终于有时间补上了!!! 最近一周可以说是上大学以来最爽的时候了,辞去了两年半的职务,主要还是因为那个狗屁老师啥都不懂,还想给你干活,下辈子吧!…
自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> </fieldT…
包含其他配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> &…
Struts2常量 配置Struts2常量值有3个地方,1)在struts.properties文件中配置常量:2)在web.xml文件中配置FileterDispatcher指定初始化参数来配置常量:3)在struts.xml文件中使用<constrant.../>元素来配置常量.下面详细说说第一种方式. 1. struts.configuration: 该常量指定加载struts2配置文件的配置文件管理器.该常量的默认值是org.apache.struts2.config.DefaultC…
拦截器初探 昨天临睡觉之前看了看拦截器,也在昨天的学习笔记里面胡诌诌了几句,今天就来好好的会会拦截器这个东西.实际上拦截器是一种模块实现的机制<起码我是这么体会的>(至于说书里面说体现了AOP的设计思想-我连AOP是啥还没搞清楚好伐-),在struts1的版本里面,struts将所有的功能围绕着核心控制器来实现的,而到了Struts2,控制器不在承担过多的功能支持,将这些功能拓展交给拦截器来完成. 拦截器设计为在action之前或action之后执行,从系统的架构图也能看出来,除了系统核心的拦…
最近在学习框架,很多人建议我直接学SSM,SSM看了一段时间后发现很多东西虽然可以用了,但是并不是很了解,所以我打算重新来过.从SSH开始学习,前面已经大致的学习了Hibernate,对于Hibernate有了更深刻的认识,下面开始做Struts2的梳理. 什么是Struts2? Struts2是非常优秀的MVC框架.是油传统Struts1和Xwork两个框架发展出来的. Struts2和Struts1最大的不同点是什么? Struts1严重依赖struts1 API,有侵入性,Struts1写…
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html 本文作者:sushengmiyan ---------------------…
1.Struts2配置文件加载顺序: default.properties(默认常量配置) struts-default.xml(默认配置文件,主要配置bean和拦截器) struts-plugin.xml(配置插件) struts.xml(配置action或者常量等) struts.properties(常量配置) web.xml(配置JavaEE,如:监听器和过滤器) 2.Struts2配置文件详解 1)default.properties default.properties是Struts…
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6807539.html  1:客户端发出请求到web服务器 2:请求经过一系列filter,最终到达Struts2核心控制器 3:核心控制器查看ActionMapper,判断该请求是请求action还是其他资源(如:jsp页面文件) 4:如果请求action,则核心控制器创建一个ActionProxy代理,并把请求交给代理进行处理.ActionProxy是通过ConfigurationManager读取str…
一.配置文件的加载顺序 每次从客户端发送请求到服务器都要先经过Struts2的核心过滤器StrutsPrepareAndExecuteFilter,这个过滤器有两个功能:预处理和执行.在预处理中主要就是来加载配置文件的.对应的是过滤器中的init方法,而执行是用来执行一组拦截器完成部分功能的,对应的是过滤器的doFilter方法.所以我们如果要去了解Struts2的配置文件的加载顺序,那么我们需要查询过滤器的init方法. 在init方法中,调用了init的initDispatcher方法来加载…
1.关于Struts2中的struts.xml文件中action设置 <!-- 它是一个通用action,此处的*表明它可以处理任意的请求--> <action name="*" > <!-- 此处的{1}代表前面第一个星号所匹配的字串 --> <result name="success">/WEB-INF/content/{1}.jsp</result> <!--跳转到*(所代表的任意字符)号页面-…
Action是用于处理请求操作的,它是由StrutsPrepareAndExceuteFilter分发过来的. 1.Action的创建方式 1) POJO类(PlainOldJavaObjects简单的Java对象),不需要继承任何父类,实现任何接口 public class TestAction { public String execute() { return "success"; } } 这种方式是Struts2框架通过反射来实现的,步骤: struts2框架通过读取strut…
刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没学过以前的版本,所以不知道是从哪个版本开始不使用schema.xml的,其实内容都一样,搞不懂为啥要换个名字,而且内容格式是xml,但是文件名却没有.xml的后辍.个人感觉是吃饱了撑的. 为了学习方便,我是在windows下做的,以下{Solr.home}是指解压后的文件目录.在{Solr.home…
动态方法调用有三种方法: 1.同一Action多次映射,每个action标签的method对应要调用的方法. 当要调用的方法多了就会增加struts.xml文件的复杂性. 2.struts.DynamicMethodInvocation=true (struts.properties文件) 或<constant name="struts.enableDynamicMethodInvocation" value=true></constant(struts.xml文件)…
这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value="utf-8"/> //设置编码格式为utf-8 自定义扩展名 <constant name="struts.action.extension" value="action,,wang"/> //struts默认扩展名是actio…
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下在配置文件中使用通配符,这里的关键就是struts.xml配置文件,在最简单的配置当中,我们只需要写一个Action,但是一个Action只能对应一种处理方式,我们只需在Action的类中实现execute的方法即可,如下面的代码 package struts2.action; import com.opensymphony.xwork2.ActionSupport; pub…
struts2支持可以按照不同模块分类的方式拆分配置文件,支持多人分工合作,各自维护自己的配置文件,但是所有配置文件中包名和action的名称不能重复   struts2的配置文件方式有两种,struts.properties和struts.xml,建议使用struts.xml   拆分的配置文件和struts.xml格式规范一模一样,只需要用include标签告诉struts2去加载自己定义的配置文件即可   struts.xml配置文件 <?xml version="1.0"…
1.配置web.xml文件. 在Struts2中,struts框架式通过Filter启动的.Filter在web.xml中的配置如下: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter>…
一.Struts2访问Servlet的API 前面已经对Struts2的流程执行完成了,但是如果表单中有参数如何进行接收?又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习Struts2访问Servlet的API来实现这样的功能. 在Struts2中,Action并没有直接和Servlet API进行耦合,也就是说在Struts2的Action中不能直接访问Servlet API.虽然Struts2中的Action访问Servlet API麻烦一些,但是这却是Struts2中Ac…
一.框架概述 1.框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面. 特点:封装了很多细节,程序员在使用的时候会非常简单. 2.三大框架: Struts2,Hibernate,Spring 3.学好框架: 由于框架中细节很多,知识点比较零散,课后总结和做好笔记就变得尤为重要. 二.关于三层架构 三.控制器:MVC中的控制器 1.MVC回顾 M:Model 模型,封装数据.javabean V:view 视图,展示界面.js…
说实在的,随着Java学习的不断深入,特别是Java web框架部分,调bug让人很心累,但是每征服一个bug,内心的成就感也是难以言说的.第一个struts2应用的配置,我昨天折腾了快2个小时,最后还是放弃了,今天在摸索之下,终于打通了第一个struts2的任督二脉,下来就把我个人的配置过程写下来,希望后面学习的java友少走的弯路. 一.创建web工程(eclipse k kepler版本): 直接上图: 二.导入struts2关键包 1.需要导入的关键包,不导入这些包会导致报错,我就知bu…
默认的命名空间“ namespace="" ”. 根命名空间 “ namespace="/" ”. <package name="test" extends="struts-default"> ,假设未指定命名空间,则命名空间默觉得 “ namespace="" ”. 默认命名空间里的Action能够处理不论什么命名空间下的Action请求. 比如,假设存在URL为/barspace/bar.a…
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方法调用呢,就是一个Action里面包含多个方法调用 一般情况下,我们只需要在Action中写一个execute的方法,并返回String 就可以了,或者继承ActionSupport父类,重写这个方法. 但是这样在一个Action中只能完成一个请求,为了解决真实开发中,同一个Action能处理类似的…
一.拦截器工作原理: 根据Struts2的工作原理图,拦截器在action执行前进行顺序调用,之后执行Action并返回结果字符串,再逆序调用拦截器.(结构类似递归方式...)大部分时候,拦截器方法都是通过代理的方式来调用的.Struts2的拦截器实现相对简单,当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器.事实上,我们之所以能够如此灵活地使用拦截器,…
一.struts2的工作原理 上图为struts整体结构. 1.客户端初始化一个指向servlet的请求: 2.请求通过一系列过滤器(其中的ActionContextCleanUp为可选过滤器,对struts与其他框架集成有帮助),到达StrutsPrepareAndExecuteFilter过滤器: 3.StrutsPrepareAndExecuteFilter询问ActionMapper是否调用某个action: 4.AcitonMapper决定调用某个action,Filter将请求的处理…