要在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>
分享到:
相关推荐
charset=UTF-8");...通过这些实验,你可以深入理解JSP内置对象的用途和功能,并学会如何在实际开发中有效利用它们来构建更复杂的Web应用程序。练习部分鼓励你尝试更多的方法和属性,以增强你的理解和实践能力。
在本教程中,我们将深入探讨两个重要的JSP内置对象——Out对象和Request对象。 1. Out对象: Out对象是JSP页面中用于向客户端发送数据的主要手段。它是javax.servlet.jsp.JspWriter类的一个实例,负责管理服务器的...
### JSP内置对象详解 #### 1. pageContext对象 `pageContext`是JSP页面上下文对象,可以访问页面作用域内的所有属性,也可以用它来获取其他内置对象,例如`request`、`response`、`session`等。它还提供了访问页面...
以上就是关于JSP内置对象的基本介绍及部分使用方法。通过合理利用这些内置对象,可以极大地简化Web应用程序的开发过程,提高开发效率。希望本篇文章能够帮助开发者更好地理解和掌握JSP的相关知识。
### JSP九大内置对象详解 #### 1. request对象 **概述:** `request`对象是JSP中非常重要的一个内置对象,它主要用于封装客户端发送到服务器端的HTTP请求信息。通过这个对象,开发者可以获取客户端请求的各种信息...
### 掌握怎样在JSP中使用内置对象session #### 实验目的 本实验旨在让学生掌握如何在Java Server Pages (JSP) 技术中利用内置对象`session`来存储和管理用户会话数据。通过实际操作加深对`session`对象的理解与应用...
**JSP内置对象Request与Response详解** 在JavaServer Pages (JSP) 技术中,Request和Response是两个非常重要的内置对象,它们分别代表了HTTP请求和响应的生命周期中的关键部分。了解并熟练掌握这两个对象的使用对于...
在JSP中,我们可以利用内置的对象,如`request`、`response`和`out`,来处理HTTP请求和响应。 在爬虫部分,我们需要使用诸如Jsoup这样的库来解析HTML。Jsoup提供了一种简洁的API,用于提取和操作数据,如选择DOM...
在JSP中,我们可以使用请求对象(`HttpServletRequest`)来获取这些数据。JSP提供了内置的`request`对象,它是`HttpServletRequest`的一个实例。我们可以通过`request.getParameter()`方法来获取表单数据,参数是...
JSP内置对象和动作 #### 内置对象 JSP提供了多个内置对象,用于简化页面开发,常见的内置对象包括: - **out**:`javax.servlet.jsp.JspWriter`类型,用于向客户端输出文本。 - **request**:`javax.servlet....
4. **内置对象获取**:Struts2提供了一系列内置对象,如`ActionContext`、`ValueStack`、`Session`等,开发者可以直接在Action类中使用。例如,`ActionContext`提供了访问请求、会话、上下文等信息的方法;`...
#### 二、JSP内置对象简介 JSP提供了九个内置对象,这些对象简化了Web开发过程中的许多任务。其中包括`out`、`request`、`response`、`session`、`application`、`config`、`page`、`pageContext`以及`exception`...
4. **JSP内置对象**:JSP提供了九个内置对象,如`request`, `response`, `session`, `pageContext`, `out`, `exception`等,它们提供了对HTTP请求、响应、会话和异常处理的直接访问。 5. **EL(Expression Language...
**3.3 JSP内置对象** JSP提供了一系列内置对象,可以直接在JSP页面中使用,无需显式创建。常见的内置对象有: 1. `request`:代表HTTP请求对象,可以获取请求参数。 2. `response`:代表HTTP响应对象,用于设置响应...
四、JSP内置对象 1. request:代表HTTP请求,用于获取请求参数和头部信息。 2. response:代表HTTP响应,用于设置响应头和发送响应数据。 3. session:存储用户会话数据,跨多个页面访问。 4. application:全局共享...
### 如何利用JSP的九种基本内置对象 ...通过以上示例可以看出,JSP内置对象的强大之处在于能够方便地处理HTTP请求和响应,管理会话数据,以及进行错误处理等。这些功能使得开发人员能够更加高效地构建动态Web应用。
5. **EL(Expression Language)**:EL是JSP 2.0引入的一种轻量级表达式语言,用于简化对JSP内置对象的访问,例如`${sessionScope.user}`可以获取会话中的用户对象。 6. **JSTL(JavaServer Pages Standard Tag ...
JSP内置对象:** JSP提供了九个内置对象,如request、response、session、application等,它们可以直接在JSP页面中使用,无需显式声明。例如,request对象用于获取客户端发送的请求信息,response对象则用于构造...