j2ee项目实训struts框架技术——第6章struts前端控制器组件及应用第1部分内容摘要:
62】中所示的一个程序模板示例 ,读者只需要按照此 程序模板 添加自己的功能扩展代码。 【例 62】 继承 ActionServlet 组件而产生出特定的子类 的程序模板示例 public class SubActionServlet extends ActionServlet { public void init(ServletConfig config) throws ServletException { (config)。 //。 在此完成本应用的初始化功能 } public void process (HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ //。 在此完成本应用的具体扩展的功能 (request, response)。 } } 2) 在部署描述文件 中定义本 子类 由于需要对 ActionServlet 组件 的原始功能进行扩展,因此必须首先让 Servlet 容器加载自己所扩展的子类以产生“拦截”的效果,这样就可以在 ActionServlet 组件 标准的功能完成之前执行本扩展的功能实现。 为此需要将【例 61】中所示的 文件中有关 ActionServlet 组件的部署配置中杨教授工作室 精心创作的优秀程序员 职 业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 8/18 页 的 servletclass/servletclass标签的内容改变为 servletclass/servletclass,其中的“ ”代表对 ActionServlet 组件 进行功能扩展的子类的名称。 在 Struts 框架中处理 表单请求时 的 中文乱码问题 1)在执行 Java 程序中为什么经常会出现“ ?”号(乱码) 由于在 Java 程序中,异种语言之间的转换是通过 Unicode 编码( Java 语言内部是用 Unicode 表示字符的、并且遵守 Unicode 标准 ) 来完成的。 假设有两种不同的语言 A和 B,转换的步骤为:先把 A转化为 Unicode,再把 Unicode 转化为 B。 举例说明。 在 GB2312 中有一个汉字“李”,其编码为“ C0EE”,欲转化为 ISO88591编码。 步骤为:先把“李”字转化为 Unicode,得到“ 674E”,再把“ 674E”转化为 ISO88591字符。 当然,这个映射不会成功,因为 ISO88591中根本就没有与“ 674E”对应的字符。 当映射不成功时,问题就发生了。 当从某语言向 Unicode 转化时,如果在某语言中没有该字符,得到的将是 Unicode 的代码“ \uffffd”(“ \u”表示是 Unicode 编码,)。 而从 Unicode 向某语言转化时,如果某语言没有对应的字符,则得到的是“ 0x3f”(“ ?”)。 这就是“ ?”的由来。 图 所示为某个 Java 程序执行后的结果,在控制台中所显示输出的提示文字为中文 乱码 状态。 2)了解 Web 应用中的数据流而断定 中文 乱码可能产生的环节 下图 所示为 Web 应用 系统 中的数据流 的图示,从用户请求而触发数据产生到最后将请求的数据进行处理后的结果保存到数据库表中的整个过程,主要经过“ 浏览器 》 Web服务器中的 Web 组件”和“ Web服务器中的 Web 组件 》物理数据库系统”两个环节。 图 某个 Java 程序执行后的中文 乱码 结果 杨教授工作室 精心创作的优秀程序员 职 业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/18 页 图 Web 应用中的数据流图示 因此, 其中容易出现 中文 乱码的节点是在“浏览器 》 Web 服务器中的 Web 组件”或者“ Web服务器中的 Web 组件 》数据库系统”。 3)利用 前端过滤器( Filter)组件对请求中的中文进行统一的编码转换 由于在默认的情况下,浏览器向 Web 服务器发送请求时是采用“ ISO88591”的字符编码( UTF8 编码)。 因此,通过 Web 表单页面所提交的请求数据,在服务器端采用(参数名 )返回的字符串为中文乱码、或者直接通过 URL 地址如 Get 请求在服务器端用 request. getParameter(userName)时所获得的参数 值 也是中文乱码。 因此,在常规的 Web 应用系统的开发中,一般是 在 JSP 页面或者 Servlet 组件中对请求参数进行 编码转换( (GB2312)。 ) ;但如果有多个不同的页面或者 Servlet 组件需要进行转换,则可以 利用 前端过滤器( Filter)组件对请求中的中文进行统一的编码转换( (GB2312)。 )。 4)在 Struts 框架中处理中文乱码问题 对于处理 Struts 框架 中文 乱码 问题有多种方式,但由于 Struts 框架 中实际上是由 ActionServlet 组件收到 Web 浏览器端 HTTP 请求,再转交特定之 Action 组件类并加以处理,因此直接在某个 Web JSP 页面或者某个业务调度控制器 Action 组件类中采用常规的功能实现 代码( (GB2312))实现 对客户端的请求进行编码转换并无效果。 而应该通过 继承 ActionServlet组件类以创建出自己的 ActionServlet子类来处理 Web 浏览器端 HTTP 请求,并覆盖其中的 process 方法,在子类的 process 方法中进行请求编码的转换。 由此展现 ActionServlet 组件类所扮演的前端控制器之角色。 杨教授工作室 精心创作的优秀程序员 职 业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/18 页 在项目中 添加对 标准的 ActionServlet 组件 进行定制的组件类 1)添加 自定义的 BBSActionServlet 组件类 在本 BBS 项目中添加一个 ActionServlet 组件类 的子类 , 该 类 名 称 为BBSActionServlet,包名称为 , 并且 基类选择为 Struts框架中的标准 ActionServlet 组件类 ( )。 具体 输入的 结果请见图 中 所示 的图示状态。 图 添加 BBSActionServlet 组件类 2)编程该 BBSActionServlet 组件类 在该 BBSActionServlet 组件类的 init 方法中,获得在 中所定义的目标编码参数的名称;然后在 process 方法中进行 请求编码的转换;最后再对 基类 ActionServlet 组件中的 原始 process 方法进行调用 以保持 ActionServlet 组件类的原始功能不变。 最后的实现结果代码请见 【例 63】 中的示例代码。 【例 63】 BBSActionServlet 组件类 的代码示例 package。 import。 import .*。 import .*。 import .*。 import .*。 杨教授工作室 精心创作的优秀程序员 职 业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/18 页 public class BBSActionServlet extends ActionServlet { String charsetName。 public BBSAct。j2ee项目实训struts框架技术——第6章struts前端控制器组件及应用第1部分
相关推荐
1、梯控制系统文摘 随着微电子技术和计算机技术的迅速发展,即可编程控制器)在工业控制领域内得到十分广泛地应用。 一种基于数字计算机技术、专为在工业环境下应用而设计的电子控制装置,它采用可编程序的存储器,用来存储用户指令,通过数字或模拟的输入/输出,完成一系列逻辑、顺序、定时、记数、运算等确定的功能,来控制各种类型的机电一体化设备和生产过程。 本文介绍了利用可编程控制器编写的一个五层电梯的控制系统
orm 组件 —— 标准的ActionForm 组件和虚拟 DynaActionForm 组件提供了支持。 因此,在具体的应用开发中,应该根据在系统中的各个表单所对 应的 ActionForm 组件的实现方式,而选择合适的Validator 验证器的 ActionForm 组件类。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/20 页 图
户在登陆表单中的用户名称和用户密码两个数据项目是否为空进行 数据验证和检查。 并将产生的错误信息保存到 ActionErrors 对象中以便能够在页面中显示输出错误提示信息。 因为 validate()方法会传回 ActionErrors 对象,而在 ActionErrors 中可以储存各个不同的 ActionError 对象所代表的错误信息,每一个 ActionError
查。 最后的实现结果请见 【例 533】 中的html:form标签中的 onsubmit 事件定义的示例。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/21 页 【例 533】 html:form标签中的 onsubmit 事件定义 html:form action=/?action=goLogin method=post
1、焊接顺序详细说明1、 贴片 普通 32 所有 I/0 输入输出指示 注意正负2、 贴片电阻 102 1K 6 分压限流3、贴片电阻 512 度传感器信号上拉 可用 片电阻 103 10K 4 上拉电阻5 贴片三极管 驱动数码管和蜂鸣器和 101 (即 100 欧电阻)6、排阻 102 1K 4 I/O 口上拉电阻 带点端为公共端7、电源指示灯 红色 1 电源指示灯 注意正负8、瓷片电容
nfo(UserInfoPO oneUserInfoPO)。 public boolean updateOneUserInfo(UserInfoPO oneUserInfoPO)。 public boolean deleteOneUserInfo(int deletedUserID)。 public boolean batchDeleteUserInfo(ArrayList