ajax请求action后,数据存放在session中,jsp页面通过el获取数据,可是第一次登录总

tingtaliaotian 2012-05-17 11:38:32
ssh项目中,我需要登陆某个页面(如a.jsp),通过onload来触发js函数(函数是ajax请求)请求到相应的action,处理完成后将数据存放到session对象里面,然后在a.jsp中用el表达式获取想要的数据,这是我的设计思路。可是问题来了,不知道为什么在打开浏览器第一次登录a页面时,a页面不会显示想要的数据,刷新后就有数据了,之后也正常。这是为什么了???我该如何解决这个问题了?或有什么好的办法可以实现登陆一个页面,页面上数据是从服务器端获取的,的方法吗?
...全文
1723 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
waiting_hao 2014-11-26
  • 打赏
  • 举报
回复
这种的话最好的方法是url直接访问action,此这action处理完数据后返回这个jsp。 如果你不想这个改,就用ajax吧,请求的action需要返回你需要的数据。 为什么a.jsp得到不你要的数据是因为代码运行的顺序为: 1、a.jsp中的el表达式 2、js,onload 的函数 3、Action 第一步还没有数据就获取不到。 如果用url直接访问action的方式顺序: 1、action 2、a.jsp中的el表达式,再返回a.jsp 这样不用js请求了。
周六放风筝 2014-11-25
  • 打赏
  • 举报
回复
建议ajax 回调取值 var s=<%=session.getAttribute("myName")%>;
  • 打赏
  • 举报
回复
又是这个问题,因为ajax是异步请求,你异步登录的操作只是服务器端登录成功了,但是客户端还没有及时相应过来, 要想获取登录session 就要 把获取session的操作也做成异步就好了
MYONE 2014-07-16
  • 打赏
  • 举报
回复
我用 ajax提交到后台action并在action中给session重新赋值,后返回页面success,session中的值不改变,为什么?
时光荒羽 2012-05-18
  • 打赏
  • 举报
回复
我又一个笨笨的解决方法:你可以在登录jsp头部 添加代码段 判断你页面需要的数据是否为空 如果为空就用request 或者 respons 请求你的action中获取数据的方法 然后返回到登录页面
yuppy 2012-05-18
  • 打赏
  • 举报
回复
可以在ajax函数中设置相应的回调函数, 回调函数中用js来动态设置页面中的值。
冬天的蒲公英 2012-05-18
  • 打赏
  • 举报
回复
因为js运行时在加载页面之后的,你onload之后虽然是取到了数据,但是没有动态的赋值给页面,当你第一次进去的时候session为空,当你第二次刷新的时候session里面有值所有之后再你session失效前都是正常的。el表达式不能完成动态赋值,如果想要效果,可以用javascript动态赋值。
tingtaliaotian 2012-05-18
  • 打赏
  • 举报
回复
其实之前想到过一个方法,不是用ajax提交,只是用window.location.href去请求action,这样的话我可以通过el动态的获得自己想要的数据,可是这样有点不好就是,要设置一个标记,用来标记是第一次访问,不然页面会总是提交(因为也是由onload来触发)。。于是我就改用ajax来尝试了,结果就出现了上述问题,通过上面几位的意见,我尝试在回调函数中修改页面,现在却发现,回调中接收到的responseXML总是为null,调试时候明明有数据的,现在我真是迷糊了。。
Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、Spring核心之AOP、程序调试与发布等内容;第2篇为范例演练篇,主要包括基础知识相关、数据库相关、图像与文件相关、图表与报表相关、Ajax等相关的范例;第3篇为项目实战篇,主要包括讯友联系人管理模块、播客视频管理模块、博客管理模块、明日知道论坛管理模块等4个小型项目:第4篇为商业系统篇,主要包括一个大型的商业项目,即天下淘网上购物商城系统。 《Java Web编程宝典(十年典藏版)》附有配套DVD光盘,光盘提供了书全部实例和项目的源代码。这些源代码全部经过精心调试,能够在Windows XP、WindowsServer2003及Windows7操作系统下编译和运行。 《Java Web编程宝典(十年典藏版)》适用于Java Web的初学者、编程爱好者,同时也可以作为培训机构、大专院校老师和学生的学习参考用书。 目录 第1篇 技能学习篇 第1章 驾驭Ja垤Web开发环境 ——开启JavaWeb开发之门 1.1 本章学习任务 1.1.1 本章知识体系 1.1.2 实例开发任务 1.2 初窥JavaWeb应用 1.2.1 理解C/S结构 1.2.2 理解B/S结构 1.2.3 B/S与C/S的区别 1.2.4 了解JavaWeb应用的成功案例 1.3 JavaWeb开发的基石-开发工具包JrDK 1.3.1 下载JDK 1.3.2 JDK的安装 1.3.3 配置和测试JDK 1.4 JavaWeb应用的Web服务器Tomcat 1.4.1 Web应用服务工作原理 1.4.2 web应用服务器汇 1.4.3 获取Tomcat 1.4.4 熟悉Tomcat的五脏六腑 1.5 JavaWeb开发利器之Eclipse 1.5.1 获取Eciipse 1.5.2 运行Eclipse 1.5.3 打造文版Eclipse 1.6 做好项日开发的准备工作 1.6.1 集成Eelipse与Tomcat 1.6.2 完善web项目开发所需配置 1.7 实战检验 1.7.1 创建第一个Java Web项目 1.7.2 将图片输出到JSP页面 1.8 疑难解惑 1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务 2.1.1 本章知识体系 2.1.2 实例开发任务 2.2 什么是JSP 2.2.1 JSP简介 2.2.2 理解JSP运行原理 2.3 使用JSP指令标识 2.3.1 页面指令page的使用 2.3.2 文件包含指令include的使用 2.3.3 引用标签库指令taglib的使用 2.4 使用JSP脚本 2.4.1 在JSP应用代码片段 2.4.2 使用JSP表达式 2.4.3 声明标识的使用 2.5 注释的魅力 2.5.1 基本的HTML注释 2.5.2 JSP隐藏注释 2.5.3 代码片段的注释 2.6 常用的JSP动作标识 2.6.1 使用包含动作标识 2.6.2 使用请求转发的动作标识 2.6.3 子动作标.iR~使用 2.7 实战检验 2.7.1 输出九九乘法表 2.7.2 JSP实现随机抽奖 2.8 疑难解惑 2.8.1 在JSP页面编写文之后不能保存 2.8.2 访问JSP页面出现乱码 2.8.3 在JSP页面使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么需要JSP内置对象 3.2.2 内置对象及其使用场合 3.3 out输出对象的应用 3.3.1 向客户端输出数据 3.3.2 管理相应缓冲区 3.4 request请求对象的应用 3.4.1 获取请求参数 3.4.2 解决文乱码 3.4.3 获取客户端数据 3.5 response回应对象的应用 3.5.1 HTTP头信息的操作 3.5.2 设置MIME类型 3.5 13页面重定向操作 3.6 Session会话对象的应用 3.6.1 session的生命周期 3.6.2 会话的创建与获取. 3.6.3 移除session数据 3.6.4 设置session的有效时间 3.7 application应用对象应用 3.7.1 application的生命周期 3.7.2 application数据的操作 3.7.3 Web应用初始化参数的配置 3.7.4 application对象应用示例 3.8 其他内置对象的应用 3.8.1 应答与请求的page对象 3.8.2 页面上下文的page Context对象 3.8.3 获取web.xml配置信息的config对象 3.8.4 获取异常信息的exception对象 3.9 实战检验 3.9.1 将网页保存为Word文档 3.9.2 学生管理系统用户登录模块 3.10 疑难解惑 3.10.1 表单提交数据乱码 3.10.2 如何在超链接传递多个参数 3.10.3 重定向后出现404错误 3.11 精彩回顾 第4章 体验面向对象 1IavaBean技术 4.1 本章学习任务 4.1.1 本章知识体系 4.1.2 实例开发任务 4.2 JavaBean简介 4.2.1 JavaBean产生的背景 4.2.2 使用JavaBean的意义 4.2.3 了解JavaBean的规范. 4.2.4 Eelipse对JavaBean方法的支持 4.3 JavaBean与JSp的完美结合 4.3.1 更加对象化的JSP开发 4.3.2 标识的应用 4.3.3 标识的应用 4.3.4 标识的应用 4.3.5 开发体验之JavaBean实现档案录入 4.4 实战检验 4.4.1 利用JavaBean实现电子时钟 4.4.2 通过JSP、JavaBean实现调查问卷 4.5 疑难解惑 4.5.1 不能获取JavaBean的属性信息 4.5.2 不能为JavaBean属性赋值 4.5.3 获取不到表单的所有信息 4.6 精彩回顾 第5章 Web应用的缔造者 ——Servlet技术 5.1 本章学习任务 5.1.1 本章知识体系 5.1.2 实例开发任务 5.2 与时俱进——了解Servlet技术 5.2.1 初步认识Servlet 5.2.2 Servlet与JSP的区别 5.3 为我所用——Servlet技术开发 5.3.1 Servlet在JavaEE的结构体系 5.3.2 Servlet核心API 5.3.3 创建第一个Servlet对象 5.3.4 Servlet配置解析 5.3.5 使用Servlet处理业务逻辑 5.3.6 掌握Servelet处理流程 5.3.7 Eclipse快速创建Servlet 5.4 一夫当关——配置并应用Servlet过滤器 5.4.1 过滤器的基本原理 5.4.2 过滤器的核心API 5.4.3 过滤器的创建与配置 5.4.4 JavaWeb字符乱码分析 5.4.5 实现字符编码过滤器 5.5 实战检验 5.5.1 通过Servlet实现录入用户信息 5.5.2 应用过滤器实现网页计数器 5.6 疑难解惑 5.6.1 访问Servlet出现404错误 5.6.2 修改Servlet无效 5.6.3 创建过滤器并没有实现过滤效果 5.7 精彩回顾 第6章 打造无脚本的JSP页面 ——EL与JSTL标签库 6.1 本章学习任务 6.1.1 本章学习任务 6.1.2 实例开发任务 6.2 EL与ISTL简介 6.2.1 什么是EL 6.2.2 什么是JSTL 6.3 EL表达式的应用 6.3.1 EL的基本语法. 6.3.2 EL的运算符 6.3.3 EL的隐含对象 6.4 JSTL核心标签库的应用 6.4.1 数据访问标签 6.4.2 流程控制标签 6.4.3 循环标签 6.5 JSTL格式标签库的应用 6.5.1 使用格式化数字 6.5.2 使用格式化时间 6.6 实战检验 6.6.1 根据星期显示不同的提示信息 6.6.2 读取数组数据 6.7 疑难解惑 6.7.1 JSTL的优点 6.7.2 JSTL和EL的关系 6.8 精彩回顾 第7章 动态网站之灵魂 ——数据库应用开发 7.1 本章学习任务 7.1.1 本章知识体系. 7.1.2 实例开发任务 7.2 My SQL数据库的安装与使用 7.2.1 安装并配置MyS QL 7.2.2 安装MySQLGUITool 7.2.3 连接MySQLAdministrator. 7.2.4 创建数据库 7.2.5 创建数据表 7.2.6 编辑数据数据 7.3 JDBC技术 7.3.1 JDBC技术原理 7.3.2 JDBC连接数据库的过程 7.3.3 JDBC连接MySQL数据库 7.4 JDBC核心API 7.4.1 代表数据库连接的Connection接口 7.4.2 驱动程序管理器DriverManager类 7.4.3 执行SQL语句的Statement接口 7.4.4 预编译执行SQL语句的PreparedStatement接口 7.4.5 结果集ResultSet接1:2 7.5 JDBC操作数据库 7.5.1 向数据插入数据 7.5.2 从数据查询所需数据 75.3 修改数据数据 7.5.4 删除无用的数据 7.5.5 批处理数据操作 7.5.6 应用存储过程进行数据操作 7.6 实战检验 7.6.1 JDBC连接SQLServer2005数据库 76.2 网站用户注册 7.7 疑难解惑 7.7.1 Prepared Statement与Statement 7.7.2 预编译的理解 7.8 精彩回顾 第8章 浅尝辄止 ——初识Struts2 8.1 本章学习任务 8.1.1 本章知识体系 8.1.2 实例开发任务. 8.2 Struts2概述 8.2.1 理解MVC原理 8.2.2 Struts2框架的产生 8.2.3 Struts2的结构体系 8.3 Struts2入门 8.3.1 Struts2的获取与放置 8.3.2 第一个Struts2程序 8.4 Action对象 8.4.1 认识Action对象 8.4.2 请求参数的注入原理 8.4.3 Action的基本流程 8.4.4 什么是动态Action 8.4.5 动态Action的应用 8.5 Struts2的配置文件 8.5.1 Struts2的配置文件类型 8.5.2 Struts2的包配置 8.5.3 名称空间配置 8.5.4 Action相关配置 8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型DomainModel 86.3 驱动模型ModelDriven 8.7 实战检验 8.7.1 Struts2处理表单数据 8.7.2 使用M印类型的request、session、application 8.8 疑难解惑 8.8.1 Struts Prepare And Execute Filter过滤器 8.8.2 struts.xml文件配置出错 8.9 精彩回顾 第9章 庖丁解牛 ——揭密Struts2高级技术 9.1 本章学习任务 9.1.1 本章知识体系 9.1.2 实例开发任务 9.2 OGNL表达式语言 9.2.1 认识OGNL 9.2.2 Struts2框架的OGNL 9.2.3 操作普通的属性与方法 9.2.4 访问静态方法与属性 9.2.5 访问数组 9.2.6 访问List、Set、M印集合 9.2.7 投影与选择 9.3 Struts2的标签库 9.3.1 数据标签的应用 9.3.2 控制标签的应用 9.3.3 表单标签的应用 …… 第10章 邂逅数据库持久化利器 第11章 探秘数据库持久化利器 第12章 简化企业开发瑰宝之一 第13章 简化企业开发瑰宝之二 第14章 程序员的伴侣 第2篇 范例演练篇 第15章 学以致用 第16章 幕后英雄的用武之地 第17章 Web开发的制胜法宝 第18章 数据分析大师 第19章 体验完美视觉盛宴 第3篇 项目实战篇 第20章 通讯录开发模板 第21章 打造自己的视频网站 第22章 自我展示的空间 第23章 技术交流的平台 第4篇 商业系统篇 第24章 基于SSH2的天下淘商城
内容为J2EE应用开发详解的源代码 第1章 Java Web应用开发简介 1   1.1 Java EE应用概述 1   1.2 Java EE概念 1   1.2.1 Java EE多层模型 1   1.2.2 Java EE体系结构 2   1.3 Java EE的核心API与组件 4   1.4 Web服务器和应用服务器 13   1.5 小结 16   第2章 建立开发平台 17   2.1 构建开发环境 17   2.1.1 安装JDK 17   2.1.2 安装Tomcat 21   2.1.3 安装Eclipse 23   2.2 配置开发环境 23   2.3 小结 26   第3章 Java的反射机制 27   3.1 Java反射API 27   3.2 加载类的实例 29   3.2.1 加载class对象的两种方式 29   3.2.2 Class.forName()加载类的实例 30   3.2.3 loadClass获得类的实例 31   3.3 操作类的字段 31   3.3.1 获取对象的属性 31   3.4 操作类的方法 34   3.4.1 运行时调用对象的方法 34   3.4.2 无参构造函数 36   3.4.3 带参构造函数 37   3.5 动态代理 39   3.6 反射机制在Hibernate的应用 42   3.7 小结 46   第4章 Servlet技术 47   4.1 Servlet简介 47   4.1.1 Servlet的特点 47   4.1.2 Servlet的优势 48   4.1.3 Servlet的工作过程 49   4.1.4 Servlet的生命周期 50   4.2 开发和部署一个简单的Servlet 51   4.3 Servlet常用API介绍 53   4.3.1 Servlet实现相关 54   4.3.2 Servlet配置相关 54   4.3.3 Servlet异常相关 55   4.3.4 请求和响应相关 55   4.3.5 会话跟踪 56   4.3.6 Servlet上下文 57   4.3.7 Servlet协作 57   4.3.8 Filter 58   4.4 使用Servlet处理客户端请求 58   4.5 会话跟踪 61   4.5.1 使用Cookie进行会话跟踪 61   4.5.2 使用URL重写进行会话跟踪 62   4.5.3 使用隐藏表单域进行会话跟踪 63   4.6 小结 65   第5章 JSP技术 67   5.1 JSP简介 67   5.2 JSP页面的结构 68   5.3 脚本元素 68   5.3.1 Scriptlet元素 69   5.3.2 Expression元素 69   5.3.3 Declaration元素 70   5.4 指令 73   5.4.1 page指令 73   5.4.2 include指令 75   5.5 动作 76   5.5.1 Resource动作 76   5.5.2 JavaBean动作 78   5.6 隐式对象 78   5.6.1 request对象 78   5.6.2 response对象 78   5.6.3 application对象 78   5.6.4 out对象 79   5.6.5 page对象 79   5.6.6 session对象 79   5.6.7 exception对象 80   5.6.8 pageContext对象 80   5.6.9 config对象 80   5.7 JSP自定义标签 81   5.8 小结 84   第6章 XML、CSS和XSLT 85   6.1 XML 85   6.1.1 什么是XML 85   6.1.2 XML的产生 85   6.1.3 XML的用途 86   6.1.4 XML元素 87   6.1.5 XML属性 87   6.1.6 XML语法规则 89   6.1.7 XML检验 91   6.2 CSS 92   6.3 XSLT 94   6.4 小结 96   第7章 Ajax简介 97   7.1 Ajax简介 97   7.2 Ajax技术核心 100   7.2.1 XMLHttpRequest对象的常用方法 100   7.2.2 标准的XMLHttpRequest属性 101   7.3 一个简单的Ajax实例 101   7.4 小结 104   第8章 Struts2框架 105   8.1 Web应用的发展 105   8.2 Struts2的起源和体系结构 106   8.3 Struts2核心部分详解 108   8.3.1 核心控制器FilterDispatcher 108   8.3.2 业务逻辑控制器Action 111   8.3.3 业务逻辑组件 116   8.3.4 Struts2表示层 118   8.3.5 Struts2配置文件 119   8.4 Action的配置方式 121   8.4.1 动态方法调用 121   8.4.2 设置action元素的method属性 122   8.4.3 使用通配符配置action 122   8.4.4 默认action 123   8.5 拦截器Interceptor 123   8.5.1 拦截器的定义 124   8.5.2 拦截器的实现原理 124   8.5.3 Struts2的内置拦截器 124   8.5.4 拦截器的配置和使用 125   8.5.5 自定义拦截器 126   8.6 一个简单的Struts2应用 130   8.7 小结 140   第9章 JSF 141   9.1 JSF技术简介 141   9.1.1 JSF与MVC模式 141   9.1.2 JSF应用程序配置 142   9.2 一个简单的JSF应用 142   9.2.1 JSF应用程序开发步骤 143   9.2.2 用户登录实例 143   9.3 JSF应用程序架构 147   9.3.1 JSF请求处理生命周期 147   9.3.2 JSF事件驱动模型 148   9.3.3 JSF导航模型 149   9.4 JSF的组成 152   9.4.1 UI组件 152   9.4.2 JSF标签 154   9.5 统一EL 156   9.5.1 表达式和函数 156   9.5.2 操作符 157   9.5.3 保留字 158   9.5.4 内置对象 158   9.6 Backing Bean 158   9.7 创建自定义组件 162   9.8 小结 164   第10章 JavaBean 165   10.1 JavaBean简介 165   10.1.1 JavaBean的特点 166   10.1.2 JavaBean的元素及属性 167   10.1.3 JavaBean的分类 168   10.2 创建JavaBean 168   10.2.1 JavaBean的规格说明 168   10.2.2 创建一个简单的JavaBean 168   10.3 在JSP使用JavaBean 169   10.4 使用JavaBean连接数据库 172   10.5 小结 177   第11章 EJB 179   11.1 EJB简介 179   11.1.1 EJB的特点 179   11.1.2 EJB类型与组成 180   11.1.3 EJB 3.0的新特性 181   11.2 元数据注释和部署描述符 181   11.2.1 元数据注释 181   11.2.2 部署描述符 182   11.3 EJB支持JNDI 183   11.3.1 JNDI的概念 183   11.3.2 使用JNDI 186   11.4 会话Bean 191   11.4.1 会话Bean的分类 191   11.4.2 会话Bean的组成 195   11.4.3 会话Bean的生命周期 196   11.4.4 创建无状态会话Bean 197   11.4.5 创建有状态会话Bean 198   11.5 消息驱动Bean和消息服务 199   11.5.1 JMS 200   11.5.2 消息驱动Bean的生命周期 202   11.5.3 创建消息驱动Bean 202   11.6 实体Bean 203   11.6.1 实体Bean的特性 204   11.6.2 实体Bean的分类及组成 204   11.6.3 EJB 3.0的实体Bean 206   11.7 EJB事务 208   11.7.1 基于容器管理事务 209   11.7.2 基于Bean管理的事务 210   11.8 EJB拦截器 212   11.9 EJB定时服务 214   11.10 EJB安全管理 214   11.11 小结 216   第12章 RMI 217   12.1 RMI简介 217   12.1.1 RMI的架构 218   12.1.2 RMI的组成及实现 218   12.1.3 RMI的优点 219   12.2 一个RMI的简单实例 219   12.3 小结 226   第13章 Web服务概论 227   13.1 SOA简介 227   13.2 Web服务简介 229   13.3 Web服务的核心技术 230   13.3.1 SOAP 232   13.3.2 WSDL 235   13.3.3 UDDI 236   13.4 小结 236   第14章 CORBA 237   14.1 CORBA的需求 237   14.2 CORBA的架构 237   14.2.1 IDL 239   14.2.2 ORB 240   14.2.3 IIOP 241   14.2.4 BOA 241   14.3 CORBA服务 241   14.4 创建CORBA应用 243   14.5 CORBA与RMI 246   14.5.1 CORBA和RMI的区别 246   14.5.2 CORBA和RMI的互操作 247   14.6 小结 248   第15章 Spring框架 249   15.1 Spring 2.0的体系结构 249   15.2 Ioc容器 250   15.2.1 BeanFactory 250   15.2.2 ApplicationContext 252   15.2.3 Beans的生命周期过程 253   15.2.4 Beans的进阶管理 254   15.3 依赖注入 259   15.3.1 Constructor注入 259   15.3.2 Setter注入 261   15.3.3 Method注入 263   15.4 Spring AOP技术 266   15.4.1 装备(advices) 267   15.4.2 Spring AOP的传统用法 275   15.4.3 基于@AspectJ注释的AOP 277   15.4.4 基于aop命名空间的AOP 279   15.5 小结 282   第16章 数据库技术和JDBC技术 283   16.1 关系数据库和SQL 283   16.2 关系数据库的工作环境 284   16.3 基于JDBC的数据访问技术 285   16.3.1 JDBC概述 285   16.3.2 数据库驱动程序 287   16.3.3 使用JDBC查询数据库 291   16.3.4 常用的JDBC类和方法 294   16.3.5 数据库连接池使用JDBC 297   16.4 小结 302   第17章 ORM与Java持久化机制 303   17.1 ORM概述 303   17.2 域模型 304   17.3 实体域对象的持久化模式 304   17.4 JPA 305   17.4.1 实体 306   17.4.2 EntityManager 309   17.5 持久化查询语言 313   17.6 常用的JPA注释 316   17.7 小结 318   第18章 Hibernate 319   18.1 Hibernate体系结构 319   18.2 Hibernate核心接口 321   18.3 一个简单的Hibernate例子 321   18.4 详解Hibernate配置文件 325   18.4.1 Hibernate的两种配置方式 325   18.4.2 配置数据库连接池 327   18.5 HQL简介 328   18.6 小结 330   第19章 权限管理系统(Struts+Spring+Hiberante+Ajax) 331   19.1 需求分析 331   19.2 系统体流程设计 331   19.3 系统设计 332   19.4 系统体解析 336   19.5 系统功能解析 364   19.5.1 管理员登录 364   19.5.2 模块管理 374   19.5.3 角色数据操作 383   19.5.4 资源操作 391   19.5.5 用户管理 394   19.6 小结 404   第20章 航空订票系统(JSF/Richfaces+EJB+JPA) 405   20.1 需求分析 405   20.2 基本设计理念 406   20.3 系统设计 407   20.3.1 系统用例分析 407   20.3.2 持久化数据分析 413   20.3.3 系统操作序列描述 413   20.3.4 业务接口设计 419   20.4 数据库设计 421   20.4.1 数据库规划 421   20.4.2 具体数据库表 423   20.4.3 SQL代码 426   20.5 系统实现 431   20.5.1 工程开发环境的建立 431   20.5.2 EJB Entity开发 435   20.5.3 EJB Session开发 443   20.5.4 Message-Driven Bean开发 447   20.5.5 JSF/Richfaces开发 448   20.5.6 远程连接 455   20.5.7 系统配置 456   20.6 系统运行 462   20.6.1 服务器的选择 462   20.6.2 系统的部署 462   20.6.3 系统的运行 463   20.7 小结 466
内容简介 Struts 2 是Java Web 应用首选的MVC 框架。《深入浅出Struts2》对Struts 2 的工作机理进行了透彻的阐述。书介绍了如何利用Struts 2 来解决Web 应用开发的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。书概念清晰、环环相扣,便于读者高效地学习。《深入浅出Struts2》适合Java Web 程序员阅读和参考,也可以作为计算机相关专业教材。 编辑推荐 《深入浅出Struts2》是广受赞誉的Struts2优秀教程.它全面而深入地阐述了Strut2的各个特性,并指导开发人员如何根据遇到的问题对症下药。选择使用最合适的特性。作者处处从实战出发。在丰富的示例直观地探讨了许多实用的技术。如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上一层楼。 Struts2权威著作 深入全面阐释Struts2的方方面面 涵盖FreeMarker、Ajax等大量相关技术 媒体推荐 “本书是毋庸置疑的struts2权威著作,虽然肯定还会有更多相关图书出现,但是我相信它已经不可超越。”   ——JavaRanch网站 “本书内容极为扎实。充满了其他地方找不到的技术细节,而且深入剖析了Struts的内部机理。强烈推荐”   ——JosephBrutto,资深程序员 作者简介 作者:(加拿大)Budi Kurniawan 译者:杨涛 王建桥 杨晓云 Budi Kurniawan,世界知名的Java专家和资深JavaEE高级架构师,自己创建了软件咨询和技术出版公司Brainy Software。他还撰写了深入揭示Tomcat工作机理和设计理念的名著How Tomcat Works,并在多种权威出版物上发表过100多篇文章。 目录 第1章 Model 2应用程序 1 1.1 Model 2概览 1 1.2 带servlet控制器的Model 2 2 1.2.1 Product动作类 3 1.2.2 ControllerServlet类 4 1.2.3 视图 6 1.2.4 部署描述文件 8 1.2.5 示例程序的运行 9 1.3 带过滤器调度程序的Model 2 9 1.4 小结 13 第2章 初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 部署描述文件和Struts配置文件 27 2.5.2 动作类 28 2.5.3 运行app02a程序 29 2.6 依赖注入 29 2.6.1 概述 29 2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章 动作与结果 32 3.1 动作类 32 3.2 如何访问资源 34 3.2.1 ServletActionContext对象 34 3.2.2 Aware接口 35 3.2.3 通过Aware接口访问资源 38 3.3 把静态参数传递给一个动作 41 3.4 ActionSupport类 41 3.5 结果 42 3.5.1 Chain 43 3.5.2 Dispatcher 44 3.5.3 FreeMarker 44 3.5.4 HttpHeader 44 3.5.5 Redirect 45 3.5.6 Redirect Action 46 3.5.7 Stream 47 3.5.8 Velocity 47 3.5.9 XSLT 47 3.5.10 PlainText 47 3.6 异常处理:exception-mapping元素 47 3.7 通配符映射 48 3.8 动态方法调用 51 3.9 对动作类进行测试 51 3.10 小结 51 第4章 OGNL 52 4.1 Value Stack栈 52 4.2 读取Object Stack里的对象的属性 53 4.3 读取Context Map里的对象的属性 54 4.4 如何调用字段和方法 55 4.5 如何访问数组类型的属性 56 4.6 如何访问List类型的属性 56 4.7 如何访问Map类型的属性 57 4.8 JSP EL:当OGNL帮不上忙时 58 4.9 小结 58 第5章 表单标签 59 5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 5.10 checkbox标签 67 5.11 list、listKey和listValue属性 72 5.11.1 赋值一个String 72 5.11.2 赋值一个Map 73 5.11.3 赋值一个Collection或一个对象数组 73 5.12 radio标签 74 5.13 select标签 76 5.14 用optgroup标签对选项进行分组 79 5.15 checkboxlist标签 82 5.16 combobox标签 83 5.17 updownselect标签 85 5.18 optiontransferselect标签 87 5.19 doubleselect标签 90 5.20 主题 92 5.21 小结 94 第6章 通用标签 95 6.1 property标签 95 6.2 a标签 97 6.3 action标签 97 6.4 param标签 98 6.5 bean标签 98 6.6 date标签 100 6.7 include标签 100 6.8 set标签 101 6.9 push标签 103 6.10 url标签 104 6.11 if、else和elseif标签 105 6.12 iterator标签 107 6.13 append标签 110 6.14 merge标签 111 6.15 generator标签 113 6.16 sort标签 116 6.17 subset标签 118 6.18 小结 119 第7章 类型转换 120 7.1 类型转换概述 120 7.2 类型转换错误消息的定制 121 7.3 类型转换器的定制 125 7.3.1 对自定义的类型转换器进行配置 126 7.3.2 自定义的类型转换器示例 127 7.4 扩展StrutsTypeConverter类 130 7.5 与复杂对象配合使用 134 7.6 与Collection配合使用 137 7.7 与Map配合使用 142 7.8 小结 145 第8章 输入验证 146 8.1 验证程序概述 146 8.2 验证程序的配置 147 8.3 Struts内建验证程序 148 8.3.1 required验证程序 149 8.3.2 requiredstring验证程序 150 8.3.3 stringlength验证程序 152 8.3.4 int验证程序 154 8.3.5 date验证程序 156 8.3.6 email验证程序 157 8.3.7 url验证程序 159 8.3.8 regex验证程序 160 8.3.9 expression和fieldexpression验证程序 161 8.3.10 conversion验证程序 164 8.3.11 visitor验证程序 166 8.4 编写自定义的验证程序 173 8.4.1 注册 176 8.4.2 示例 177 8.5 利用Validateable接口实现编程验证 180 8.6 小结 182 第9章 消息处理与国际化 183 9.1 地区和Java资源绑定 183 9.2 Struts的国际化支持 185 9.3 text标签 188 9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model Driven拦截器 197 10.3 Preparable拦截器 201 10.4 小结 206 第11章 持久层 207 11.1 DAO模式 207 11.1.1 DAO模式的最简单实现 208 11.1.2 使用DAO接口的DAO模式 208 11.1.3 使用Abstract Factory模式的DAO模式 209 11.2 实现DAO模式 209 11.2.1 DAO接口和DAOBase类 210 11.2.2 EmployeeDAO类 213 11.2.3 EmployeeDAOMySQLImpl类 214 11.2.4 DAOFactory类 218 11.2.5 EmployeeManager类 219 11.2.6 运行app11a应用程序 220 11.3 Hibernate 221 11.4 小结 221 第12章 文件的上传 222 12.1 文件上传概述 222 12.2 在Struts里上传文件 223 12.3 File Upload拦截器 224 12.4 上传单个文件示例 225 12.5 上传多个文件示例 227 12.6 小结 230 第13章 文件的下载 231 13.1 文件下载概述 231 13.2 Stream结果类型 232 13.3 文件下载功能的编程实现 235 13.4 小结 238 第14章 提高Struts应用程序的安全性 239 14.1 用户和角色 239 14.2 编写安全策略 240 14.2.1 保护资源 240 14.2.2 指定登录方法 241 14.3 身份验证方法 242 14.3.1 使用基本身份验证方法 243 14.3.2 使用基于表单的身份验证方法 245 14.4 隐藏资源 247 14.5 Struts安全配置 248 14.6 以编程方式提高安全性 250 14.6.1 getAuthType方法 250 14.6.2 isUserInRole方法 250 14.6.3 getUserPrincipal方法 251 14.6.4 getRemoteUser方法 251 14.7 小结 251 第15章 防止重复提交 252 15.1 标记管理 252 15.2 使用Token拦截器 253 15.3 使用Token Session拦截器 256 15.4 小结 257 第16章 调试与性能分析 258 16.1 debug标签 258 16.2 Debugging拦截器 259 16.3 性能分析 261 16.4 小结 262 第17章 进度条 263 17.1 Execute and Wait拦截器 263 17.2 使用Execute and Wait拦截器 264 17.3 使用一个自定义的“等待”页面 265 17.4 小结 266 第18章 定制拦截器 267 18.1 Interceptor接口 267 18.2 编写一个自定义的拦截器 268 18.3 使用DataSourceInjectorInterceptor拦截器 269 18.4 小结 273 第19章 定制结果类型 274 19.1 概述 274 19.2 编写一个自定义的结果类型 274 19.3 使用新的结果类型 277 19.4 小结 279 第20章 Velocity 280 20.1 概述 280 20.2 Velocity隐式对象 281 20.3 标签 281 20.4 Velocity示例 282 20.5 小结 284 第21章 FreeMarker 285 21.1 概述 285 21.2 FreeMarker标签 286 21.3 示例 287 21.4 小结 289 第22章 XSLT结果类型 290 22.1 概述 290 22.2 XSLT结果类型 292 22.3 示例 294 22.4 小结 295 第23章 插件 296 23.1 概述 296 23.2 从哪里获得插件 296 23.3 编写一个自定义的插件 296 23.4 使用Captcha插件 297 23.5 小结 300 第24章 Tiles插件 301 24.1 JSP include指令/标签的不足 302 24.2 Tiles布局和定义 303 24.2.1 布局页面 303 24.2.2 Tiles定义 304 24.3 Struts Tiles插件 305 24.4 Struts Tiles示例 306 24.5 小结 309 第25章 JFreeChart插件 310 25.1 JFreeChart API 310 25.1.1 JFreeChart类 310 25.1.2 Plot抽象类 310 25.2 使用标准的插件 311 25.3 使用BrainySoftware JFreeChart插件 313 25.4 小结 315 第26章 零配置 316 26.1 准备工作 316 26.2 注解 317 26.2.1 @Result注解 317 26.2.2 @Results注解 318 26.2.3 @Namespace注解 318 26.2.4 @ParentPackage注解 319 26.3 CodeBehind插件 319 26.4 小结 321 第27章 Ajax 322 27.1 Ajax概述 322 27.2 Dojo的事件系统 323 27.3 使用Struts Dojo插件 324 27.4 head标签 324 27.5 div标签 325 27.5.1 示例程序1 326 27.5.2 示例程序2 326 27.5.3 示例程序3 327 27.6 a标签 328 27.7 submit标签 330 27.8 bind标签 331 27.9 datetimepicker标签 333 27.10 tabbedpanel标签 334 27.11 textarea标签 336 27.12 autocompleter标签 337 27.12.1 示例程序1 339 27.12.2 示例程序2 339 27.12.3 示例程序3 340 27.13 tree和treenode标签 341 27.13.1 示例程序1 342 27.13.2 示例程序2 343 27.14 小结 345 附录A Struts配置 346 附录B JSP EL语言 361 附录C Java注解 370 序言 Servlet①技术和1JSP(JaLvaServer Pages)是利用Java语言开发Web/_立用程序的两种主要技术。Sun公司于1996年首次推出Servlet技术时,人们认为这种技术远优于当时占主导地位的公共网关接口(Common Gateway Inter。face,CGI)。这是因为某个servlet(服务器端Java程序)在应用户的请求而首次调入内存执行之后将一直驻留在内存里,对同一个servlet的后续请求不用再对这个servlet的类进行实例化,因此响应速度更快。 可是,servlet也存在一个严重问题,因为所有的HTML输出必须像下面这段代码那样封装在string对象里,所以servlet将HTML标签发送给浏览器时既繁琐又容易出错: 这大大增加了编程的难度,而且即便是对网页在表现方面的细微改动,例如改变网页的背景颜色,也需要重新编译整个servlet。 Sun公司意识到了这个问题,并提出了JSP技术。JSP允许Java代码和HTML标签混杂在一起以简化页面的编辑工作,所有的改动无需重新进行编译:某个页面修改后,将在第一次被调用时自动编译。JSP里的Java代码段称为scrilmlet。 允许Java代码乘HTML混杂在一起的办法乍看起来很实用,但实际上并不好,原因有以下几点。 文摘 插图: 消息处理是应用程序开发工作的一项重要任务。例如,文本和消息必须是可编辑的, 并且无需重新编译。另外,应用程序必须能“说”多种语言。在程序设计领域,人们把能够在无需改写有关代码的前提下,让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化技术。在计算机文档里,国际化(internationalization)通常简写为i18n,这是因为这个单词的第一个字母是i,最后一个字母是n,i和n之间共有18个字母。与国际化相对应的是本地化,指让一个具备国际化支持的应用程序支持某个特定的地区。这里所说的地区(10cale)可以是一个特定的地理区域、政治区域或文化区域。如果某种操作在不同的地区有不同的结果,那它就是对地区敏感的(10cale-sensitive),例如,显示日期就是一种对地区敏感的操作,因为日期的显示格式应该顺应本地用户所在的国家或地区的语言习惯。以2007年8月15日为例,美国人会把这个日期写成8/15/2007,澳大利亚人则会把它写成15/8/2007。本地化(10calization)通常简写为110n,这是因为这个单词的第一个字母是l,最后一个字母是n,并且l和n之间共有10个字母。 如果某个应用程序具备国际化支持,我们就可以快速方便地改变它的各种屏显文字。Java已经内建了国际化支持功能。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧