读书人

Struts2 拿到request session appli

发布时间: 2012-11-01 11:11:33 作者: rapoo

Struts2 拿到request session application的4种方法

1? 第一种方法


public class LoginAction1 extends ActionSupport {
?
?private Map request;
?private Map session;
?private Map application;
?
?public LoginAction1() {
??System.out.println("hello");
??request = (Map)ActionContext.getContext().get("request");
??session = ActionContext.getContext().getSession();
??application = ActionContext.getContext().getApplication();
?}
?
?public String execute() {
??request.put("r1", "r1");
??session.put("s1", "s1");
??application.put("a1", "a1");
??return SUCCESS;
?}
?
}

?

?

?

第二种方法? 这种用的比较多

?package com.bjsxt.struts2.user.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.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {
?
?private Map<String, Object> request;
?private Map<String, Object> session;
?private Map<String, Object> application;
?
?//DI dependency injection
?//IoC inverse of control
?public String execute() {
??request.put("r1", "r1");
??session.put("s1", "s1");
??application.put("a1", "a1");
??return SUCCESS;
?}

?@Override
?public void setRequest(Map<String, Object> request) {
??this.request = request;
?}

?@Override
?public void setSession(Map<String, Object> session) {
??this.session = session;
?}

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

?

?

第三种方法

?package com.bjsxt.struts2.user.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction3 extends ActionSupport {
?
?private HttpServletRequest request;
?private HttpSession session;
?private ServletContext application;
?
?public LoginAction3() {
??request = ServletActionContext.getRequest();
??session = request.getSession();
??application = session.getServletContext();
?}
?
?public String execute() {
??request.setAttribute("r1", "r1");
??session.setAttribute("s1", "s1");
??application.setAttribute("a1", "a1");
??return SUCCESS;
?}
?
}

?

?

?

第四种方法


?package com.bjsxt.struts2.user.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction4 extends ActionSupport implements ServletRequestAware {
?
?private HttpServletRequest request;
?private HttpSession session;
?private ServletContext application;
?
?
?
?public String execute() {
??request.setAttribute("r1", "r1");
??session.setAttribute("s1", "s1");
??application.setAttribute("a1", "a1");
??return SUCCESS;
?}

?

?@Override
?public void setServletRequest(HttpServletRequest request) {
??this.request = request;
??this.session = request.getSession();
??this.application = session.getServletContext();
?}
?
}

?

JSP

?

<form name="f" action="" method="post">
用户名:<input type="text" name="name"/>
密码:<input type="text" name="password"/>
<br />
<input type="button" value="submit1" onclick="javascript:document.f.action='login/login1';document.f.submit();" />
<input type="button" value="submit2" onclick="javascript:document.f.action='login/login2';document.f.submit();" />
<input type="button" value="submit3" onclick="javascript:document.f.action='login/login3';document.f.submit();" />
<input type="button" value="submit4" onclick="javascript:document.f.action='login/login4';document.f.submit();" />
</form>
?

Struts.xml

?

<struts>
??? <constant name="struts.devMode" value="true" />
??? <package name="login" extends="struts-default" namespace="/login">
??????? <action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}">
??????????? <result>/user_login_success.jsp</result>
??????? </action>
??? </package>
</struts>

?

Web.xml

?<filter>
??????? <filter-name>struts2</filter-name>
??????? <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
??? </filter>

??? <filter-mapping>
??????? <filter-name>struts2</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>

?

读书人网 >软件架构设计

热点推荐