模拟struts2】的更多相关文章

用了几天模拟struts2,最后结果还是很成功的,也基本没有什么遇上比较难解决的问题,万事开头难,在最开始的时候无从下手,看着下面这张struts2工作流程图配合着网上的博客看了一天终于有了眉目. 看到图的时候应该最先看图例:第一个橙色(Servlet Filter)表示过滤器:第二个蓝色的(Struts Core)表示struts2的核心,是struts2最重要的部分:第三个(Interceptors)表示拦截器,是struts2中一个运用的很好的一个地方:最后一个(User created)…
在能够运用struts2框架进行简单网站开发后,对struts2的一些较原框架强大的功能希望有更深刻的理解,于是尝试从底层开始摸索,本文就在重新学习struts2后,利用简单代码对核心控制器的主要功能进行理解. 首先,介绍一下strut2的处理流程: 1.浏览器发出请求,即***.action 2.请求被核心控制器的StrutsPrepareAndExecuteFilter拦截 3.搜索struts.xml配置文件,寻找Action的属性name为***的配置信息,而后根据class属性,通过反…
在Struts2中有拦截器的概念,通过它的拦截器可以拦截Action.Struts2的拦截器是通过AOP来实现的,在Spring也有类似的概念.下面的我们先来比较一下Struts2和Spring中AOP的东西. AOP概念 Struts2 Spring JoinPoint Action中方法的执行 符合条件方法的执行 Pointcut Action(不能自己指定) 可以通过正则或AspectJ表达式来指定 Advice Before.After.Around Before.After.Aroun…
近期修了几个struts2.1升级到2.3后动态方法调用失效的bug,深有感悟, 原始方法能够參考我之前的博文:struts2.1升级到2.3后动态调用方法问题 可是我那种原始方法有一个局限,就是在submit那里写下的action不起作用,就算启动了动态方法调用也不行(我想应该是struts2.3的一个bug),所以为了完好这个功能,这里我再说一个用js的方法. 在<s:submit value="提交" onclick="return submitAction('某…
1.具体项目结构如下:…
利用到的技术:dom4j和xpath 自己写一个Filter 在doFilter中拦截请求 // 2.1 得到请求资源路径            String uri = request.getRequestURI();            String contextPath = request.getContextPath();            String path = uri.substring(contextPath.length() + 1); // System.out.p…
1.在项目开发中,如果没有使用框架进行数据绑定与封装,则可能会写大量的类似下面的代码: String value=request.getParameter("v"); if(null!=value){ obj.setValue(value); } 所以有必要自己实现一个满足实际需求的自动注入表单信息到数据模型中的功能. 实现代码: package com.cml.model; import java.lang.reflect.Method; import java.lang.refle…
前言: 接触Struts2已经有一段时间,Student核心内容就是通过拦截器对接Action,实现View层的控制跳转.本文根据自身理解对Struts2进行一个Java实例的模拟,方便大家理解! 示意图 通过以上简单的示意图,我们可以看到Struts2将ServletAPI与业务处理分离,让开发者能够在用户向客户端发送请求的时候通过拦截机制更好的进行业务层处理,提高开发效率.下面我们就通过几个Java类模拟Struts2拦截器的实现. 拦截原理 代码设计: 1ActionInvocation…
struts2快速入门: index.jsp------>HelloAction--------->hello.jsp struts2流程 1.导入jar包 struts2的目录结构: apps: 例子程序 docs:文档 lib:struts2框架所应用的jar以及插件包 src:源代码 core 它是struts2的源代码 xwork-core struts2底层使用了xwork,xwork的源代码 注意:在struts2开发,一般情况下最少导入的jar包,去apps下的struts2-b…
C:(controller)控制器          M:(model)模型处理    V:(view)视图 Struts 2 的运行过程:     核心控制器是FilterDispatcher会过滤所有的请求,如果请求以 action结尾,该请求会转入框架处理.当框架获取*action请求后,根据*action的前半部分决定调用哪个业务逻辑组件.最后根据业务逻辑组件的处理信息决定转发到哪个视图:     Struts2有三部分组成:核心控制器是FilterDispatcher,业务控制器和业务…
有关于Struts2的拦截器的原理 在此共设置了两个拦截器,firstInterception.SecondInterception package struts2_inteception; public class firstInterception implements Interception{ public void interceptor(ActionInvocaton invocation){ System.out.println("-1"); invocation.inv…
今天分享的是Struts2框架中的一种ognl表达式语言,主要分两个目标去学习    1.理解struts2传值的优先级    2.ognl与el的区别 一:ognl表达式语言简介 OGNL的全称是Object Graph Navigation Language(对象图导航语言),它是一种强大的表达式语言,让你通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能. 1.1:简单对 对象图导航语言举例分析    假如现在项目中有两个…
第一种 :Action 本身作为model对象,通过成员setter封装 (属性驱动 ) 第一种方式:<br> <form action="${pageContext.request.contextPath}/MyAction1" method="post"> username:<input type="text" name="username"><br> password:&l…
提出问题: 最初接触责任链模式就是在struts2中,在当时学的时候看了一眼,大概知道了原理,最近在复习,模拟struts2,说是模拟只是大体模拟了struts2的工作流程,很多东西都是写死的,只是为了弄懂工作流程. 介绍: 看过很多介绍struts2的文章中,都详细的介绍了struts2的拦截器,struts2的拦截器是一个很好的结构,这个拦截器就是应用了责任链设计模式,很多用户的请求都会到这个拦截器中进行处理,我们事先不知道哪个地方会处理这个请求,先把请求传给责任链中的第一个处理者,如果第一…
JSON数据格式 JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.易于人阅读和编写,同时也易于机器解析和生成(网络传输速度快)JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包. 描述一个对象 {属性名:属性值,属性名:属性值} JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合.一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号…
涉及到的知识点: 1.Struts2框架的搭建(包括Struts2的jSON插件) 2.Android前台访问Web采用HttpClient方式. 3.Android采用JSON的解析. 服务端主要包含一个Action,通过struts的web配置配置struts.xml驱动业务逻辑的执行,然后对于符合条件的登录,返回给客户端通过jsonobject包装的数据. 服务端代码: package com.easyway.json.android; import java.util.HashMap;…
本文可作为北京尚学堂struts2课程的学习笔记. 首先 什么是拦截器?拦截器能干什么? 拦截器,顾名思义就是拦截对象然后做操作的东西,至于是拦截谁?那自然是拦截action了.能做什么操作呢?你想让action在运行之前干什么就能干什么,而且action本身并"不知道"自己被拦截了. 文章主要分析了拦截器部分的流程,对于环境的获取与初始化并没有涉及,对这部分感兴趣的朋友可以参考 http://www.cnblogs.com/liuling/p/2013-8-10-01.html 在真…
public class ActionProxy { public static void main(String[] args) { //模拟ActionProxy调用invoke()方法 ActionInvocation invocation=new ActionInvocation(); invocation.invoke(); } } public class ActionInvocation { //成员变量 拦截器数组,访问的action 对象 List<Interceptor>…
web.xml: <?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:…
1,权限管理的db设计和dao实现,尽量简单快速有效: db的设计如下:权限按照角色来赋给用户: 权限对应每一个具体的功能,有菜单级别的,有导航级别的,还有页面级别的功能: 涉及到权限的敏感操作一般都要记录日志,不仅要记录到log里还要记录到远程的db里,以备审计.学习的时候暂时不用,但是为了全面考 虑设计,这里还是加上: 表名 建表的sql文,这里使用mysql数据库,因为是学习用的,后面会尝试用jpa去替换现在的dao,做到对db支持的灵活性 dt_role DROP TABLE IF EX…
struts2 + Spring +hibernate Hibernate工作原理及为什么要用?   原理:   1.读取并解析配置文件   2.读取并解析映射信息,创建SessionFactory   3.打开Sesssion   4.创建事务Transation  5.持久化操作   6.提交事务   7.关闭Session   8.关闭SesstionFactory    为什么要用:   1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码.    2. Hib…
本文转载于DongLiYang的博客http://www.cnblogs.com/dongliyang/archive/2012/08/24/2654431.html 其中修改过一部分,针对使用注解而不是配置文件 本文分三个步骤介绍验证码图片生成以及与Struts2结合使用. Step 1.随机验证码 一步一步来,要生成验证码图片,首先要有验证码,然后才能在画在图片上.为了能够灵活控制验证码,特别编写了SecurityCode类,它向外提供随机字符串.并且可以控制字符串的长度和难度.Securi…
一.配置Struts2: 1.新建一个web项目,在src目录下新建com.st.bean/dao/service/action包,并在该包下面添加相应的接口及接口的实现类: a).在bean下新建一个UserBean,包含userName.password.sex属性名,并添加set.get方法及toString方法. b).dao层新建UserDao接口,并添加该接口是实现类UserDaoIm: public class UserDaoIm implements UserDao { publ…
1. 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类:Struts 1的一个具体问题是使用抽象类编程而不是接口.Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能.Struts 2提供一个ActionSupport基类去实现常用的接口.即使Action接口不是必须实现的,只有一个包含execute方法的POJO类都可以用作Struts 2的Action. 2. 线程模式方面的对比:Struts 1 Ac…
  今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforCangra.setSubDate([Ljava.lang.String;) 这类异常信息在以前是处理过的,按照以前的思路在eclipse的调试模式下看看具体的情况,不过这次比较奇怪,根本没进入到对应的Action类中就抛出了此异常信息,进一步查找发现,在调用拦截器方法的时候就抛出了此异常信息,还有没…
今天是我第一次用博客,虽然还有好多的不懂,但是我还是会努力的把自己学到的写下来,分享给大家: 一,SSH框架中的struts2的搭建流程 1.在搭建struts2之前,我们首先要有struts2的jar包,在这里我介绍大家去http://www.apache.org/官网下载, 之后放到lib目录下,我下载的是struts-2.3.30版本,以后在使用struts2.x时要注意版本: 2.当然struts2的jar包有好多可能你在开发中用不上,我在这里就只列出必须要有的: 3.在导完包后,我们就…
贴一个简单的例子,通过jquery的post调用action,定义一个对象User,有name和age属性,实例化几个对象,以json的格式返回到jsp,在前台页面显示出来,模拟用户列表. 导入相关jar包: ezmorph-1.0.6.jar json-lib-2.3-jdk15.jar struts2-json-plugin-2.3.16.1.jar Action代码: package com.wang.action; import java.util.ArrayList; import j…
目的:spring容器管理Action类,代替Servlet 步骤:主要在配置文件 Struts2: 添加支持spring的jar包, 配置<action class="Action类在容器中的id" Action类:  定义需要容器注入的属性,也就是定义service,service层也要添加调用DAO的属性.并生成get和set方法. Action: service: DAO: //模拟数据库连接 private String conn; spring: 1.web.xml配…
所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public class User { private int id; private String username; private String password; private int age; private String address; public String getUsername() { ret…
Struts2面试题 1.struts2工作流程 Struts 2框架本身大致可以分为3个部分: 核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器FilterDispatcher是Struts 2框架的基础, 包含了框架内部的控制流程和处理机制. 业务控制器Action和业务逻辑组件是需要用户来自己实现的. 用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件, 供核心控制器FilterDispatcher来使用. St…