
struts
文章平均质量分 93
程序员老董
毕业后先在腾讯做了近3年的kv存储引擎开发
之后在阿里做了3年多互动游戏的开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Struts的取值与标签
首先,我们都知道,在struts2中有一个valuestack。里面存放的就是action里的属性。同时,还有一个stackcontext,里面放的是map形式的request/session/attr/application。 在取值的时候 valuestack中的值 或在任意的标签内使用%{} (记得这个 在s标签内部 就得使用%{} ) stackcontext中的原创 2015-03-16 23:13:54 · 1521 阅读 · 0 评论 -
使用MD5加密的登陆demo
最近接手了之前的一个项目,在看里面登陆模块的时候,遇到了一堆问题。现在记录下来。 这个登陆模块的逻辑是这样的 1 首先在登陆之前,调用后台的UserLoginAction类的getRandomKey方法产生一个随机字符串。 2 在前台获得用户名的登陆密码后,首先是要md5对其加密,之后把加密的结果与之前的随机字符串合并,使用md5再次加密,并把最后的结果作为用户的密码传给后台。 3 后台获原创 2015-04-25 22:31:40 · 2692 阅读 · 5 评论 -
自己动手写web框架----1
本文可作为<<自己动手写struts–构建基于MVC的Web开发框架>>一书的读书笔记。 一个符合Model 2规范的web框架的架构图应该如下: Controller层的Servlet就是一个全局的大管家,它判断各个请求由谁去处理。 而各个BusinessLogic就决定具体做什么。通过上面的图,我们能看出来核心的组件就是那个servlet,它要处理所有的请求。 那么我们就先在web.xm原创 2015-04-30 17:28:36 · 1681 阅读 · 1 评论 -
自己动手写web框架----2
在上一节,我们自己写的web框架,只能运行显示一个HelloWorld。现在我们对其进行一次加工,让他至少能运行一个登陆程序。 首先看login.jsp<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %> <%@ page import=" ja原创 2015-04-30 21:48:11 · 1086 阅读 · 0 评论 -
Struts2技术内幕 读书笔记二 web开发的基本模式
最佳实践 在讨论基本模式之前,我们先说说一个词:最佳实践 任何程序的编写都得遵循一个特定的规范。这种规范有约定俗称的例如:包名全小写,类名每个单词第一个字母大写等等等等;另外还有一些需要我们严格遵守的:例如我们写自己的servlet的时候就得继承javax.servlet.http.HttpServlet接口。 在标准之上的是对不同标准的具体实现。例如同是servlet标准,tomcat原创 2014-12-27 16:22:58 · 1335 阅读 · 0 评论 -
Struts2技术内幕 读书笔记三 表示层的困惑
表示层能有什么疑惑?很简单,我们暂时忘记所有的框架,就写一个注册的servlet来看看。 1 当浏览器发送一个Http请求,Web容器是如何接收这个请求并指定相应的java类来执行业务逻辑并返回处理结果呢? 2 在web请求中,数据是如何顺利地流转与浏览器与java世界中的。我们能否做到自动匹配? 3 servlet的多线程问题。 4 Control层作为mvc的核心控制器,如何能在最大程度上支持功能点上的扩展。原创 2014-12-29 00:29:20 · 1512 阅读 · 0 评论 -
Struts2 源码剖析 控制部分-----1
这部分着重分析从我们发出一个uri请求,一直到代码运行到我们自己写的action类为止,struts的控制部分的代码(还有数据流部分,我们后面再分析) 已经用了快1年多的struts2了,一直认为对开源框架的学习,应该到源码级别才行,否则开源岂不是没有意义了。 struts的运行图如下: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的原创 2015-11-03 16:51:18 · 1614 阅读 · 0 评论 -
struts ajax多级下拉菜单
先看项目截图: 看看要加入的jar包 除了struts核心的那个几个之外,我们还需要这两个 OK先看struts.xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/d原创 2015-03-23 22:59:08 · 1167 阅读 · 0 评论 -
尚学堂马士兵struts2 课堂笔记(四)
30 全局结果集 主要就四种种 dispatch和rediret chain和drdirectaction 当用dispatch时 浏览器地址栏上是localhost:8900/webname/r/r1 当用redirect时 浏览器地址栏上是localhost:8900/webname/r2.jsp 当用chain时 浏览器地址栏上是localhost:8900/webname/r/r3 当用drdirectaction 浏览器地址栏上是localhost:8900/webname/r2.js原创 2014-06-13 14:33:35 · 954 阅读 · 0 评论 -
XWork容器的存储结构
我们可以看到,在Container的默认实现,ContainerImpl中有两个实例变量。factoris和factoryNamesByType。 对象制造工厂 class ContainerImpl implements Container { final Map, InternalFactory> factories; final Map, Set> factoryN原创 2015-01-23 20:00:31 · 1360 阅读 · 0 评论 -
(Struts2)XWork容器的实现机理
模板方法----callInContext 翻开ContainerImpl的实现,我们可以看到callInContext,这个模板方法是容器所有操作调用的基础。 关于模板方法模式,大家可以看出刘伟老师的博客: 模板方法模式深度解析 至于为什么要用模板模式,是为了将所有容器接口进行规范化定义。 我们看看callInContext T callInContext( ContextualC原创 2015-01-25 14:18:48 · 1213 阅读 · 1 评论 -
说说struts2中拦截器的请求流程一(模拟大致流程)
本文可作为北京尚学堂struts2课程的学习笔记。 首先 什么是拦截器?拦截器能干什么? 拦截器,顾名思义就是拦截对象然后做操作的东西,至于是拦截谁?那自然是拦截action了。能做什么操作呢?你想让action在运行之前干什么就能干什么,而且action本身并“不知道”自己被拦截了。 文章主要分析了拦截器部分的流程,对于环境的获取与初始化并没有涉及,对这部分感兴趣的朋友可以参考 http原创 2014-10-14 16:11:49 · 2169 阅读 · 1 评论 -
Struts2中的缓存----以Injector为例
题外话,文章中有大量的标识1 标识2,大家可以用ctrl+f来查找。 构成缓存的类 主要就是以下两个: com.opensymphony.xwork2.inject.util.ReferenceCache com.opensymphony.xwork2.inject.util.ReferenceMap前者继承自后者。 我们先看看ReferenceMap public class原创 2015-01-24 20:32:56 · 1575 阅读 · 0 评论 -
ThreadLocal深入理解 修订版
本文是传智博客多线程视频的学习笔记。 原版本见 http://blog.youkuaiyun.com/dlf123321/article/details/42531979 ThreadLocal是一个和线程安全相关的类。 它能干什么? 能保证在一个线程内,某个变量的全局共享。 说的很模糊,咱们看一个图 线程1里面的数据,应该在线程1范围内的模块a,b,c都能访问。 线程2里面的原创 2015-01-26 16:23:47 · 1378 阅读 · 0 评论 -
深入理解ThreadLocal
ThreadLocal是一个和线程安全相关的类。 一个非线程安全的例子 在我们讲述它之前,我们先看一个例子。 package thread; public class NotSafeThread implements Runnable{ private int a=10; public void run() { // TODO Auto-gen原创 2015-01-08 21:39:06 · 1794 阅读 · 3 评论 -
Struts2技术内幕 读书笔记一 框架的本质
本读书笔记系列,主要针对陆舟所著>一书。笔记中所用的图片若无特殊说明,就都取自书中,特此声明。 什么是框架?我们为什么要用框架?框架能给我们带来什么? 这几个问题既简单又复杂。说它简单,是因为框架确实存在在软件设计中,说它复杂是因为我们现在所使用的框架不论是spring还是struts都是经过多年的发展,其内部已经十分庞杂了,因此想一句话两句话说清楚一个框架就不是那么简单了。 OK,既然原创 2014-12-25 23:31:53 · 1940 阅读 · 0 评论 -
尚学堂马士兵struts2 课堂笔记(一)
06_尚学堂马士兵_Struts2_Struts2_HelloWorld_5 在默认情况下,刚修改struts.xml后在tomcat中没有立刻刷新要么重新启动tomcat,要么加上上面的常量 dev development 07_尚学堂马士兵_Struts2_Struts2_HelloWorld_6 在eclipse里的struts.xm文件敲 很简单 看struts.原创 2014-05-26 11:24:55 · 1688 阅读 · 0 评论 -
尚学堂马士兵struts2 课堂笔记(二)
14 通配符问题 15-17 action接受参数原创 2014-05-29 19:28:40 · 1291 阅读 · 0 评论 -
尚学堂马士兵struts2 课堂笔记(三)
19-20 简单数据验证 上面有三种方式来初始化一个斧子 第一种 我们最熟悉 第二种是用来工厂类 第三种是spring的方式 谈谈第一种 那就是原始人 我要一把斧子 那我就得自己做 第二种 就是现代人了 我要一把斧子 就去找工厂 告诉它我要一把什么样的斧子(stone) 工厂就会给我一杯 第三种就牛x了 那是共产主义社会 我只要说 我需要一般斧子 社会(context)就会给我 甚至于我都不知道context是怎么给我的 这都不重要 重要的是 我有斧子了 我只是 使用者 我不关心斧子的生产 总而言之原创 2014-06-05 18:23:17 · 1989 阅读 · 0 评论 -
Struts2(XWork)中的Container 一
本文是>的学习笔记 在进行面向对象编程的时候,我们不可避免地要使用继承实现等等java提供的语法支持。但是复杂的对象关系也为对象生命周期的管理带来了至少以下两个问题。 1 程序运行时,应如何双肩我们所需要的对象。 2 当创建一个对象后,如何保证与其相关联的依赖关系也正确的被创建处理。 好在先辈们已经给我们想好了出路------在程序中引入一个额外的编程元素:容器(Container)原创 2015-01-14 17:17:49 · 1682 阅读 · 0 评论 -
Struts2处理流程性需求的一种解决方案
在应用程序设计中,经常出现如下的需求。 查看用户填写的数据,而且数据是分页填写。 看下面这个情况 用户的信息有三页,分别是Form abc。 现在的问题是,后面的逻辑该如何设计。 如果把,FormABC,三张记录的保存(在froma里点下一步,就会先保存froma的数据)与回显(在formb里点上一步,就会显示之前填写的forma)都放在一个类里面,那么系统就很容原创 2016-05-12 11:41:07 · 548 阅读 · 0 评论