action解耦方式
2024-10-19 05:36:59
ServletAction方式,必须要有Servlet容器作支持
package com.hanqi.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
public class TestServletAction {
public String testServletAction()
{
//访问原生的web资源
//1得到servletContext,相当于application
ServletContext sc= ServletActionContext.getServletContext();
System.out.println("app1="+sc.getAttribute("app1"));
sc.setAttribute("app2", "原生的方式加入的application");
//2访问Session
HttpServletRequest hsr=ServletActionContext.getRequest();
HttpSession hs=hsr.getSession();
System.out.println("ses1="+hs.getAttribute("ses1"));
hs.setAttribute("ses2", "原生方式放入的session");
//3访问request
System.out.println("req1="+hsr.getAttribute("req1"));
hsr.setAttribute("req2", "原生方式放入的request");
//4 访问parameter
System.out.println("user1="+hsr.getParameter("user"));
System.out.println("user2="+hsr.getParameter("user"));
return "success";
}
}
实现接口方式
package com.hanqi.action;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware;
public class TestServletActionAware
implements ServletRequestAware, ServletContextAware {
private ServletContext sc;
private HttpServletRequest hsr;
private HttpSession hs;
@Override
public void setServletContext(ServletContext arg0) {
sc=arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
hsr=arg0;
hs=arg0.getSession();
}
public String testServletAware()
{
System.out.println("app1="+sc.getAttribute("app1"));
sc.setAttribute("app2", "新的application");
System.out.println("ses1="+hs.getAttribute("ses1"));
hs.setAttribute("ses2","新的session");
System.out.println("user="+hsr.getParameter("user"));
hsr.setAttribute("req2", "新的request");
return "success";
}
}
最新文章
- [LeetCode] Find All Anagrams in a String 找出字符串中所有的变位词
- Android基础总结(九)
- 基于淘宝弹性布局方案lib-flexible的问题研究
- restfull api
- 重装Windows系统后,Linux系统启动引导失败
- appSetting 在单独文件的读写
- ArrayList线程不安全
- 如何实现一个malloc
- ECSHOP数据表结构完整仔细说明教程
- 日志分析(四) Elasticsearch的精确查询
- jquery validate.js表单验证的基本用法入门
- Thinkphp的页面判断
- BZOJ 2006: [NOI2010]超级钢琴( RMQ + 堆 )
- java同时连接db2和mysql的程序
- spring AOP知识点总结以及日志的输出
- element的form表单中如何一行显示多el-form-item标签
- axur axure rp安装
- ReactNative WebView组件详解
- 1.Python是什么
- matlab中prod的使用方法