struts2配置文件的配置
1.struts2配置文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="hello" namespace="/hello" extends="struts-default" >
<action name="HelloAction" class="com.lanou3g.hello.HelloAction" method="hello" >
<result name="success" type="dispatcher" >/hello.jsp</result>
</action>
</package>
<include file="com/xxx/def/struts.xml"></include>
<include file="com/xxx/dynamic/struts.xml"></include>
<include file="com/xxx/test/struts.xml"></include>
</struts>
struts2配置文件配置完成后 需要在web.xml文件中配置过滤器
struts2中Action类的跳转
1.Action类跳转向jsp文件
<action name="Demo01Action" class="com.xxx.jump.Demo01Action" method="execute">
<result name="success" type="redirect">/jump.jsp</result>
</action>
2.Action跳转向Action
<action name="Demo02Action" class="com.
xxx.jump.Demo02Action" method="execute">
<result name="success" type="redirectAction">
<param name="actionName">Demo01Action</param>
<param name="namespace">/</param>
</result>
</action>
<action name="Demo04Action" class="com.lanou3g.jump.Demo04Action" method="execute">
<result name="success" type="chain">
<param name="actionName">Demo01Action</param>
<param name="namespace">/</param>
</result>
</action>
struts2中Action类获取域的方式
1.Action获取域
/*
* 获取ServletAPI
* ActionContext 对象(数据大管家) 内部也是个map
* ActionContext的生命周期 是跟随 请求对象走的
* Servlet 线程不安全的(访问共享数据 会发生问题)
* 整个程序 系统值帮你创建一次
* Struts2 线程安全的 如何做到的?
* 一个用户访问Struts2就给你创建一个ActionContext对象
* /
方法1:ActionContext.getContext.put("name","xxx");(系统推荐的方法)
方法2:Map<String, Object> requestScope = (Map<String, Object>)
ActionContext.getContext().get("request");
Map<String, Object> sessionScope = ActionContext.getContext().getSession();
sessionScope.put("name", "xxx");
Map<String, Object> applicationScope =
ActionContext.getContext().getApplication();
applicationScope.put("name", "xxx");
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
HttpServletResponse response = ServletActionContext.getResponse();
PageContext pageContext = ServletActionContext.getPageContext();
ServletContext servletContext = ServletActionContext.getServletContext();
public class Demo07Action extends ActionSupport implements ServletRequestAware {
private HttpServletRequest request;
public Demo07Action() {
System.out.println("Demo07Action创建了");
}
@Override
public String execute() throws Exception {
this.request.setAttribute("name", "jiekou");
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
}
struts2内部执行原理