在action获取request和session,application(四)

10 篇文章 0 订阅

在后台获取request,session和application等信息,并且向里面添加信息后再页面进行读取,实现方法有:

一、使用在action声明各种类型,这种方法使用actionContext来获得,并且在actionContext中获得的值都是Map类型的。

package com.thridProject.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class WebProperty extends ActionSupport{
	private Map request;
	private Map session;
	private Map application;
	
	public WebProperty(){
		request = (Map)ActionContext.getContext().get("request");
		session = (Map)ActionContext.getContext().getSession();
		application = (Map)ActionContext.getContext().getApplication();
	}
	
	public String execute(){
		request.put("a", 1);
		session.put("b", 2);
		application.put("c", 4);
		return SUCCESS;
	}
}

二、第二种方法是实现struts提供的接口来实现,如代码:


package com.thridProject.action;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class WebProperty extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
	/**
	 * author 张春蕾
	 */
	private static final long serialVersionUID = -6256871248108647470L;
	private Map<String,Object> request;
	private Map<String,Object> session;
	private Map<String,Object> application;
	
	public void setRequest(Map<String,Object> request){
		this.request = request;
	}
	
	public void setSession(Map<String, Object> session) {
		this.session = session;
		
	}

	public void setApplication(Map<String, Object> application) {
		this.application = application;
		
	}

	public String execute(){
		request.put("a", 1);
		session.put("b", 2);
		application.put("c", 4);
		return SUCCESS;
	}
}
第二种为最常用的方法。

三、第三种方法是使用import org.apache.struts2.ServletActionContext来得到request,可以通过查看

request = ServletActionContext.getRequest();

四、实现了ServletRequestAware接口,使用依赖注入。


对于前两种得到的是Map类型的值,而且后两种得到的真实值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的用户注册示例,使用JSP中的applicationsession: register.jsp: ``` <html> <head> <title>User Registration</title> </head> <body> <h1>User Registration</h1> <% String errorMessage = (String) request.getAttribute("errorMessage"); if (errorMessage != null) { out.println("<p style=\"color:red\">" + errorMessage + "</p>"); } %> <form method="post" action="register.do"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br> <input type="submit" value="Register"> </form> </body> </html> ``` register.do: ``` <%@ page import="java.util.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="javax.servlet.http.*" %> <% String username = request.getParameter("username"); String password = request.getParameter("password"); // Validate input if (username == null || username.trim().length() == 0 || password == null || password.trim().length() == 0) { request.setAttribute("errorMessage", "Please enter a username and password"); request.getRequestDispatcher("register.jsp").forward(request, response); return; } // Check if username already exists ServletContext application = getServletContext(); Map<String, String> users = (Map<String, String>) application.getAttribute("users"); if (users == null) { users = new HashMap<String, String>(); application.setAttribute("users", users); } if (users.containsKey(username)) { request.setAttribute("errorMessage", "Username already exists"); request.getRequestDispatcher("register.jsp").forward(request, response); return; } // Add user to application scope users.put(username, password); // Add user to session scope HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); %> ``` welcome.jsp: ``` <html> <head> <title>Welcome</title> </head> <body> <h1>Welcome <%= session.getAttribute("username") %></h1> <p>You have successfully registered.</p> <p><a href="logout.do">Logout</a></p> </body> </html> ``` logout.do: ``` <%@ page import="javax.servlet.*" %> <%@ page import="javax.servlet.http.*" %> <% // Invalidate session HttpSession session = request.getSession(false); if (session != null) { session.invalidate(); } // Redirect to login page response.sendRedirect("login.jsp"); %> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值