在Action中获取JSP内置对象
来源:互联网 发布:中式菜刀 知乎 编辑:程序博客网 时间:2024/05/22 11:30
要在Action获取Request,Response,session等JSP内置对象,我们可以实现XXXAware接口。
代码如下:
package com.test.action; import java.net.URLEncoder; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ApplicationAware; //import org.apache.struts2.interceptor.CookiesAware; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.apache.struts2.interceptor.SessionAware; public class LoginAction implements ServletResponseAware, ServletRequestAware, SessionAware,ApplicationAware { private String username; private String password; private HttpServletResponse response; private HttpServletRequest request; private Map session; private Map application; public void setSession(Map session) { this.session = session; } public void setServletResponse(HttpServletResponse response) { this.response = response; } public void setServletRequest(HttpServletRequest request) { this.request = request; } public void setApplication(Map application) { this.application = application; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute() throws Exception { request.setAttribute("username", username); request.setAttribute("password", password); session.put("username", username); session.put("password", password); application.put("username", username); application.put("password", password); //编码 Cookie cookie = new Cookie("info",URLEncoder.encode(username+":"+password)); cookie.setMaxAge(60*60); response.setCharacterEncoding("GBk"); response.addCookie(cookie); return "success"; } }
然后我们可以写一个测试页面来观察结果:
result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="java.net.URLEncoder"%> <%@ page import="java.net.URLDecoder"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'result.jsp' starting page</title> </head> <body> 采用Struts2标签库输出:<br> username:<s:property value="username"/> <br> password:<s:property value="password" /> <br> <hr> 采用request输出:<br> username:<%=(String)(request.getAttribute("username")) %><br> password:<%=(String)(request.getAttribute("password")) %> <hr> 采用session输出:<br> username:<%=(String)(request.getSession().getAttribute("username")) %><br> password:<%=(String)(request.getSession().getAttribute("password")) %> <hr> 采用application输出:<br> username:<%=(String)(application.getAttribute("username")) %><br> password:<%=(String)(application.getAttribute("password")) %> <hr> 采用cookie输出:<br> <% Cookie cookies[] = request.getCookies(); for(int i=0;i<cookies.length;i++) { if(cookies[i].getName().equals("info")){ %> <!-- 解码 --> info:<%=URLDecoder.decode(cookies[i].getValue())%><br> <% }}%> <hr> <s:a href="delCookie.jsp">删除cookie</s:a> </body> </html>
=========================================================
http://chenguanwei2008.iteye.com/blog/357029
- 在Action中获取JSP内置对象
- 如何在servlet中获取jsp中的内置对象
- struts2 中jsp的9个内置对象、四种作用域、转发和重定向及在Action中获取session
- Struts2中的Action获取JSP常用内置对象
- 在action中将字符串、对象、list集合保存到值栈中,在jsp页面中获取的方法
- 在action中将字符串、对象、list集合保存到session中,在jsp页面获取
- 在struts2中如何获取request等JSP内置对象和向它们赋值
- 在struts2中如何获取request等JSP内置对象并赋值
- 在Struts2的Action中访问Servlet内置对象
- struts2的s:iterator标签在jsp页面获取action中数组对象
- struts2中获取request等JSP内置对象
- JSP中各种内置对象
- jsp中常用内置对象
- jsp中request内置对象
- 如何在action和jsp中获取session
- Struts2在Action获取内置对象request,session,application(即ServletContext)
- Struts2初学 Struts2在Action获取内置对象+++struts2自定义类型转换器
- 使用EL内置对象获取JSP内置对象的数据
- Java编程怎么安装开发工具
- SQLServer 2008生成SQL Server 2000的脚本
- 安全 安全 安全……
- 数据库 封装 properties资源文件
- java基础笔记1
- 在Action中获取JSP内置对象
- Java中大小写转换
- linux笔记总结
- C++学习、成长记录(2011-2012第一学期第18周)
- 人的差别在于业余时间
- Ubuntu更新源列表
- JSP页面获取ValueStack中的值
- 堆和栈在内存分配方面有什么不同?
- 开源文献管理软件Mendeley