ActionMessages errors = new ActionMessages();
AuthCodeCookie authCodeCookie = new AuthCodeCookie(request,response);
if (!authCodeCookie.getAuthCode().equals(form.getAuthCode())) {//验证码不正确
errors.add("error.login.authcode", new ActionMessage("error.login.authcode"));//ApplicationResources.properties
this.saveErrors(request, errors);
return mapping.getInputForward();//不跳转,必须在action中指定input属性
}
html中必须有:<html:errors/>接收
登录的时候保存验证码到cookies,详见:验证码的生成,并且“看不清,换一张”
AuthCodeCookie authCodeCookie = new AuthCodeCookie(request, response);
authCodeCookie.addAuthCode(authCode);//保存验证码到cookies
cookies类
public class AuthCodeCookie {
private HttpServletRequest request;
private HttpServletResponse response;
public AuthCodeCookie(HttpServletRequest request,
HttpServletResponse response) {
this.request = request;
this.response = response;
}
public void addAuthCode(String authCode) {
addCookie("AUTHCODE", authCode);
}
public void addCookie(String name, String value) {
Cookie cookies = new Cookie(name, value);
cookies.setPath("/");
cookies.setMaxAge(-1);//设置cookie经过多长秒后被删除。如果0,就说明立即删除。如果是负数就表明当浏览器关闭时自动删除。
response.addCookie(cookies);
}
public String getAuthCode(){
return getCookies("AUTHCODE");
}
public String getCookies(String cookieName) {
Cookie[] cookies = request.getCookies();
Cookie cookie = null;
try {
if (cookies != null && cookies.length > 0) {
for (int i = 0; i < cookies.length; i++) {
cookie = cookies[i];
if (cookie.getName().equals(cookieName)) {
return cookie.getValue();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
分享到:
相关推荐
1、struts国际化的配置 ... 理解ActionMessage和ActionMessages两个对象的区别 如何传递国际化消息? * 调用saveMessage()传递普通消息 如何显示国际化消息? 通过标签显示消息(可以显示普通消息和错误消息)
虽然`ActionErrors`和`ActionMessages`都用于传递信息,但`ActionErrors`主要用于错误处理,而`ActionMessages`适用于一般的消息传递,包括成功的操作提示等。它们的使用方法相似,但处理的上下文不同。 7. **保存...
4. **显示错误和消息**:在JSP页面中,使用Struts2的标签库(如`s:actionerror`和`s:actionmessage`)来遍历并显示`ActionContext`中的`ActionErrors`和`ActionMessages`。 ```jsp ()"> ()"> ``` 5. **处理...
- 如何使用Struts1.x的ActionError和ActionMessages来处理和显示应用程序中的错误信息。 - 异常处理机制,如Global Exception Handler,确保程序在遇到未预期错误时能够优雅地恢复。 7. **国际化和本地化**: - ...
ActionMessages messages = new ActionMessages(); messages.add("greeting", new ActionMessage("greeting")); saveErrors(request, messages); ``` 3. **在JSP中显示消息**:在JSP页面上,使用`<fmt:message>...
在Action中,我们创建`ActionMessages`对象,添加全局消息(`ActionMessages.GLOBAL_MESSAGE`),并使用`saveMessages`方法将其保存到请求上下文。在页面中,`<html:messages>`标签会检索并显示这些消息。`...
3. **国际化支持**:为了实现国际化,你需要为每种语言创建一个对应的资源文件,如`ActionMessages_en.properties`(英语)、`ActionMessages_fr.properties`(法语)等。Struts2会根据用户的浏览器设置自动选择正确...
- 在ActionForm中,我们可以使用`ActionMessages`对象来收集和显示错误或提示消息。这些消息可以在资源文件中定义,然后通过`getText()`方法获取。 5. **设置用户首选语言** - 用户的首选语言通常通过HTTP请求头...
- 数据库连接管理:通常使用JDBC或ORM框架如Hibernate、MyBatis来实现对数据库的操作。 - CRUD方法:每个实体类对应一组DAO方法,如`create()`, `read()`, `update()`, `delete()`。 5. **模型(Model)** - 实体...
特别是在一些涉及敏感操作如订单提交、支付确认等场景下,避免重复提交尤为重要。Struts框架作为Java Web应用开发的经典框架之一,提供了一套成熟的解决方案来处理这个问题——即所谓的令牌(token)机制。 #### ...
- ActionForm的validate()方法负责验证,返回ActionMessages或ActionErrors对象指示验证结果。 - 如果验证失败,ActionServlet将错误信息返回给客户端。 这三者结合,SSH框架提供了一个强大的基础架构,使得...
在Action类中,你可以使用`ActionMessages`或`ActionErrors`对象来添加、存储和传递消息。例如: ```java ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, new ...
在这个"Struts1做的增删改查"项目中,你将学习到如何使用Struts1来处理用户请求,并实现数据的CRUD(Create,Read,Update,Delete)操作。 1. **Struts1框架基础**: - **架构**:Struts1的核心组件包括...
Struts提供了ActionError和ActionMessages机制来处理用户输入验证错误,而Hibernate的异常通常需要适当地转换并抛出给上层。 9. **国际化与本地化**:对于多语言环境,可以使用Struts的资源包(Properties文件)...
- **错误消息处理**: 使用 `ActionMessages` 来管理错误消息,并通过 `ActionMessage` 定义具体的错误提示信息。 - **转向页面**: 根据不同的处理结果,返回不同的 `ActionForward` 对象,以实现页面跳转。 #####...
ActionErrors是Struts提供的一个集合类,它继承自ActionMessages,用于存储ActionMessage对象。 ActionMessage是一个简单的容器,它持有错误消息的键值,这些键值通常对应于资源文件中的字符串,以便支持多语言环境...
3. 在Action中使用`ActionMessages`或`ActionErrors`添加和显示消息。 4. 在JSP中使用Struts标签显示本地化消息。 5. 实现语言切换功能,动态改变资源文件的加载。 通过这些步骤,开发者可以轻松地为SSH框架的Web...
ActionMessages messages = new ActionMessages(); ``` - **添加错误信息:** - 向`ActionMessages`对象中添加错误信息。 - 示例代码: ```java messages.add("loginFailed", new ActionMessage("error.login...
2. **ActionErrors和ActionMessages**:用于记录校验结果,方便页面显示错误信息。 #### Struts的工作流程 1. 用户发送请求至ActionServlet。 2. ActionServlet根据配置文件找到对应的ActionForm。 3. 如果需要验证...