`
chenguanwei2008
  • 浏览: 121147 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

在Action中获取JSP内置对象

阅读更多

要在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>

 

分享到:
评论

相关推荐

    JSP内置对象实验报告.doc

    charset=UTF-8");...通过这些实验,你可以深入理解JSP内置对象的用途和功能,并学会如何在实际开发中有效利用它们来构建更复杂的Web应用程序。练习部分鼓励你尝试更多的方法和属性,以增强你的理解和实践能力。

    jsp内置对象学习

    在本教程中,我们将深入探讨两个重要的JSP内置对象——Out对象和Request对象。 1. Out对象: Out对象是JSP页面中用于向客户端发送数据的主要手段。它是javax.servlet.jsp.JspWriter类的一个实例,负责管理服务器的...

    jsp内置对象讲解及实例

    ### JSP内置对象详解 #### 1. pageContext对象 `pageContext`是JSP页面上下文对象,可以访问页面作用域内的所有属性,也可以用它来获取其他内置对象,例如`request`、`response`、`session`等。它还提供了访问页面...

    jsp全部内置对象详解

    以上就是关于JSP内置对象的基本介绍及部分使用方法。通过合理利用这些内置对象,可以极大地简化Web应用程序的开发过程,提高开发效率。希望本篇文章能够帮助开发者更好地理解和掌握JSP的相关知识。

    JSP九大内置对象详解

    ### JSP九大内置对象详解 #### 1. request对象 **概述:** `request`对象是JSP中非常重要的一个内置对象,它主要用于封装客户端发送到服务器端的HTTP请求信息。通过这个对象,开发者可以获取客户端请求的各种信息...

    掌握怎样在JSP中使用内置对象session

    ### 掌握怎样在JSP中使用内置对象session #### 实验目的 本实验旨在让学生掌握如何在Java Server Pages (JSP) 技术中利用内置对象`session`来存储和管理用户会话数据。通过实际操作加深对`session`对象的理解与应用...

    JSP内置对象:Request和Response的简单介绍及使用

    **JSP内置对象Request与Response详解** 在JavaServer Pages (JSP) 技术中,Request和Response是两个非常重要的内置对象,它们分别代表了HTTP请求和响应的生命周期中的关键部分。了解并熟练掌握这两个对象的使用对于...

    爬虫jsp获取网页源码

    在JSP中,我们可以利用内置的对象,如`request`、`response`和`out`,来处理HTTP请求和响应。 在爬虫部分,我们需要使用诸如Jsoup这样的库来解析HTML。Jsoup提供了一种简洁的API,用于提取和操作数据,如选择DOM...

    JSP获取TextArea中的值

    在JSP中,我们可以使用请求对象(`HttpServletRequest`)来获取这些数据。JSP提供了内置的`request`对象,它是`HttpServletRequest`的一个实例。我们可以通过`request.getParameter()`方法来获取表单数据,参数是...

    华为招聘Java面试题:概念题:1. 描述Struts体系结构?对应各个部分的开发工作主要包括哪些?2. JSP有哪些内置对象和动作?它们的作用分别是什么?……

    JSP内置对象和动作 #### 内置对象 JSP提供了多个内置对象,用于简化页面开发,常见的内置对象包括: - **out**:`javax.servlet.jsp.JspWriter`类型,用于向客户端输出文本。 - **request**:`javax.servlet....

    Struts2_入门篇_基本配置_通配符_参数注入_内置对象获取等。。。

    4. **内置对象获取**:Struts2提供了一系列内置对象,如`ActionContext`、`ValueStack`、`Session`等,开发者可以直接在Action类中使用。例如,`ActionContext`提供了访问请求、会话、上下文等信息的方法;`...

    JSP对象及使用方法(带例子)

    #### 二、JSP内置对象简介 JSP提供了九个内置对象,这些对象简化了Web开发过程中的许多任务。其中包括`out`、`request`、`response`、`session`、`application`、`config`、`page`、`pageContext`以及`exception`...

    关于jsp中的JSP详解

    4. **JSP内置对象**:JSP提供了九个内置对象,如`request`, `response`, `session`, `pageContext`, `out`, `exception`等,它们提供了对HTTP请求、响应、会话和异常处理的直接访问。 5. **EL(Expression Language...

    jsp详细描述开发文档

    **3.3 JSP内置对象** JSP提供了一系列内置对象,可以直接在JSP页面中使用,无需显式创建。常见的内置对象有: 1. `request`:代表HTTP请求对象,可以获取请求参数。 2. `response`:代表HTTP响应对象,用于设置响应...

    jsp实用教程 jsp电子教程 jsp 从入门到精通 jsp

    四、JSP内置对象 1. request:代表HTTP请求,用于获取请求参数和头部信息。 2. response:代表HTTP响应,用于设置响应头和发送响应数据。 3. session:存储用户会话数据,跨多个页面访问。 4. application:全局共享...

    如何利用JSP的9种基本内置组件

    ### 如何利用JSP的九种基本内置对象 ...通过以上示例可以看出,JSP内置对象的强大之处在于能够方便地处理HTTP请求和响应,管理会话数据,以及进行错误处理等。这些功能使得开发人员能够更加高效地构建动态Web应用。

    jsp页面开发系统

    5. **EL(Expression Language)**:EL是JSP 2.0引入的一种轻量级表达式语言,用于简化对JSP内置对象的访问,例如`${sessionScope.user}`可以获取会话中的用户对象。 6. **JSTL(JavaServer Pages Standard Tag ...

    jsp课本例题源代码

    JSP内置对象:** JSP提供了九个内置对象,如request、response、session、application等,它们可以直接在JSP页面中使用,无需显式声明。例如,request对象用于获取客户端发送的请求信息,response对象则用于构造...

Global site tag (gtag.js) - Google Analytics