Struts2配置与架构解析:解决中文乱码及核心组件

需积分: 0 2 下载量 170 浏览量 更新于2024-08-23 收藏 1.82MB PPT 举报
"本章主要关注Struts2框架的学习,包括其基本架构、配置细节以及解决中文乱码问题的方法。通过本章学习,应能熟练掌握Struts2的核心组件、struts.xml配置文件的内容,特别是action和result元素的配置,并了解如何在Struts2环境中处理中文乱码。此外,还将实践租房网的用户登录、注册及房屋信息发布功能,以加深对Struts2实际应用的理解。" 在Struts2框架中,基本架构由以下几个关键部分组成: 1. 核心控制器:这是Struts2的核心,它负责拦截所有HTTP请求,并将请求转发给合适的Action。在web.xml文件中,我们配置Struts2的过滤器(StrutsPrepareAndExecuteFilter)来实现这一功能。过滤器映射到所有的URL模式,确保所有请求都会经过Struts2的处理。 2. Action:Action是业务逻辑的载体,接收来自控制器的请求,执行相应的操作,然后返回一个Result。Action类通常会继承自Struts2提供的抽象类或实现特定接口,如ActionSupport。 3. struts.xml配置文件:这是Struts2的配置中心,定义了Action的映射、结果类型以及全局设置。在struts.xml中,`action`元素用于配置Action的名称、类、参数等,而`result`元素则定义了Action执行后跳转的页面或结果。 4. Result:Result是Action执行后呈现的页面或者进一步的处理。它可以是JSP、Freemarker模板、Redirect、Forward等各种类型的页面或URL。 解决Struts2中的中文乱码问题,通常需要以下步骤: 1. 设置过滤器的字符编码:在web.xml中配置过滤器时,可以添加`filter`的初始化参数`charset`,指定请求和响应的编码,例如`<init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param>`。 2. 在Action类中设置响应编码:通过覆盖`setServletRequest(HttpServletRequest request)`方法,手动设置请求的编码。 3. JSP页面头部声明编码:在每个JSP页面的顶部添加`<%@ page contentType="text/html;charset=UTF-8" language="java" %>`,确保页面的编码正确。 4. 数据库连接设置:确保数据库连接也使用相同的字符集,例如在JDBC连接字符串中指定`useUnicode=true&characterEncoding=UTF-8`。 本章还涵盖了如何在Struts2中获取session对象、实现数据校验以及在页面上使用Struts2标签。获取session对象通常通过`ActionContext`获取`HttpServletRequest`,然后调用`getSession()`方法。数据校验可以利用Struts2的拦截器和注解实现,例如`@Validated`和自定义校验注解。Struts2标签库提供了一系列便利的标签,如`s:form`, `s:textfield`, `s:submit`等,用于简化视图层的开发。 在实践中,我们将实现租房网的用户登录、注册和房屋信息发布功能,这将涵盖Action的编写、表单验证、数据持久化以及与视图的交互,有助于全面理解Struts2在实际项目中的应用。