java web项目中,如何通过filter获取当前action的名字?请给出具体的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web项目中,如何通过filter获取当前action的名字?请给出具体的代码相关的知识,希望对你有一定的参考价值。

我用的是SSH框架。
麻烦大家给出demo代码和文件配置方法,谢谢。

参考技术A 实现Filter接口的doFilter(ServletRequest servletRequest,ServletResponse servletResponse, FilterChain chain)方法
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String requestURI = request.getRequestURI();
requestURI 中可以截取action
参考技术B public String intercept(ActionInvocation invocation) throws Exception
Map session=invocation.getInvocationContext().getSession();
String actionName=invocation.getProxy().getActionName();
String methodName=invocation.getProxy().getMethod();
你写过滤器的时候 有这个方法吧,如果没有你继承extends AbstractInterceptor 这个类是Struts2 的拦截器 也是一样的
参考技术C 用struts2的拦截器可以获取到,用filter能获取到吗

普通JAVA类 如何获取,WEB项目的根路径

这是我写的个 WEB service (删除图片功能) 在这里是一个从C#,调用service 的问题,所以用request 和一些对象不能获取到项目的绝对路径,
不知道该怎么办才行,谢谢大家帮助我下

在提问前,你应该选搜索下。web项目的路径问题已有过回答了。贴个代码片段给你吧……,希望能对你有所帮助

/**
* 获取项目classpath目录的绝对路径
*
* @return classes目录的绝对路径<br/>
* file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/
* */
public static URL getAbsolutePathWithClass()
return WebPath.class.getResource("/");


/**
* 获取项目classPath目录下的指定目录的绝对路径
*
* @param path
* classes目录下的指定目录.比如:/com/
* @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/
* */
public static URL getAbsolutePathWithClass(String path)
return WebPath.class.getResource(path);


/**
* 获取指定类文件的所在目录的绝对路径
*
* @param clazz
* 类
* @return 类文件的绝对路径.例如:<br/> 包com.Aries.Util.Web下的Main.java类.<br/>
* 路径为:file:/
* F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/
* */
public static URL getAbsolutePathWithClass(Class clazz)
return clazz.getResource("");

参考资料:http://zhidao.baidu.com/question/142445629.html

参考技术A 在servlet中String realPath = ServletActionContext.getServletContext() .getRealPath(Constants.dbXmlFileName);
public static final String dbXmlFileName = "/WEB-INF/classes/jdbc.properties";
貌似是这样的打印结果是跟路径+dbXmlFileName
在jsp中<%=request.getContextPath()%>
参考技术B request.getSession().getServletContext().getRealPath("/");//获取web项目的路径

this.getClass().getResource("/").getPath()//获取类的当前目录
参考技术C 不太懂
不过我觉得是不是应该在XML里配呀

以上是关于java web项目中,如何通过filter获取当前action的名字?请给出具体的代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中获取当前项目的路径

java filter 如何中获取请求地址?

普通JAVA类 如何获取,WEB项目的根路径

在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!

XSS过滤JAVA过滤器filter 防止常见SQL注入

Java Web -- Listener & Filter