1. access or add request/session/application attributes
Public String scope () throws Exception {
ActionContext ctx = ActionContext. getContext ();
Ctx. getApplication (). put ("app", "Application Scope"); // Add the app to the ServletContext
Ctx. getSession (). put ("ses", "session range"); // put ses into the session
Ctx. put ("req", "request range"); // Add req to the request
Return "scope ";
}
JSP:
<Body>
$ {ApplicationScope. app} <br>
$ {SessionScope. ses} <br>
$ {RequestScope. req} <br>
</Body>
2. Get the HttpServletRequest/HttpSession/ServletContext/HttpServletResponse object
Method 1: Get it directly through the ServletActionContext class:
Public String rsa () throws Exception {
HttpServletRequest request = ServletActionContext. getRequest ();
ServletContext servletContext = ServletActionContext. getServletContext ();
Request. getSession ();
HttpServletResponse response = ServletActionContext. getResponse ();
Return "scope ";
}
Method 2: implement the specified interface, which is injected during struts framework runtime:
Public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware {
Private HttpServletRequest request;
Private ServletContext servletContext;
Private HttpServletResponse response;
Public void setServletRequest (HttpServletRequest req ){
This. request = req;
}
Public void setServletResponse (HttpServletResponse res ){
This. response = res;
}
Public void setServletContext (ServletContext ser ){
This. servletContext = ser;
}
}
Code
Package com. ljq. action;
Import java. util. Arrays;
Import javax. servlet. ServletContext;
Import javax. servlet. http. HttpServletRequest;
Import org. apache. struts2.ServletActionContext;
Import com. opensymphony. xwork2.ActionContext;
Public class HelloWorldAction {
// Use the following el expression for output on the page
// First
// $ {ApplicationScope. app}
// $ {SessionScope. ses}
// $ {RequestScope. req}
// Type 2
// $ {App}
// $ {Ses}
// $ {Req}
Public String list (){
ActionContext ctx = ActionContext. getContext ();
Ctx. getApplication (). put ("app", "application Scope"); // Add application to ServletContext
Ctx. getSession (). put ("ses", "session range"); // put the session into the session
Ctx. put ("req", "request range"); // put the request in the request
Ctx. put ("names", Arrays. asList ("Zhang San", "Li Si", "Wang Wu "));
Return "message ";
}
// Use the following el expression for output on the page
// First
// $ {ApplicationScope. app}
// $ {SessionScope. ses}
// $ {RequestScope. req}
// Type 2
// $ {App}
// $ {Ses}
// $ {Req}
Public String get () throws Exception {
HttpServletRequest request = ServletActionContext. getRequest ();
ServletContext servletContext = ServletActionContext. getServletContext ();
Request. setAttribute ("req", "request range attribute ");
Request. getSession (). setAttribute ("ses", "session range attribute ");
ServletContext. setAttribute ("app", "application range attribute ");
// HttpServletResponse response = ServletActionContext. getResponse ();
Return "message ";
}
}
Jsp code
$ {ApplicationScope. app} <br>
$ {SessionScope. ses} <br>
$ {RequestScope. req} <br>
=============< Br/>
$ {App} <br>
$ {Ses} <br>
$ {Req} <br>
=============< Br/>
<C: forEach items = "$ {names}" var = "name">
$ {Name} <br/>
</C: forEach>