SSH框架中如何输出访问的Action路径和页面
2014-11-07 19:01
330 查看
在一般的SSH框架开发的系统中后期会有很多的类和jsp,如果需要维护就需要去配置文件中一个一个的去找相应的类映射和返回的jsp页面,非常麻烦。
其实利用struts2的Interceptor可以很轻易的拦截到访问路径和jsp,原理自行参看struts2的结构图。
下面是实现输入路径的方法:
前后各加一个时间统计下程序执行用时。
代码写完在配置文件中添加一下拦截器。
其实利用struts2的Interceptor可以很轻易的拦截到访问路径和jsp,原理自行参看struts2的结构图。
下面是实现输入路径的方法:
public class SystemOutPrint implements Interceptor { public void destroy() { // TODO Auto-generated method stub } public void init() { // TODO Auto-generated method stub } public String intercept(ActionInvocation invocation) throws Exception { Date d1 = new Date();// 计时开始 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String a1 = dateFormat.format(d1); System.out.println("【请求开始】" + a1); System.out.print("Action:" + invocation.getAction().getClass().getName()); HttpServletRequest request = ServletActionContext.getRequest(); String currentURL = request.getRequestURI(); String[] split = currentURL.split("/"); System.out.println("." + split[split.length - 1]); Map<String, Object> parameters = invocation.getInvocationContext().getParameters(); // 输出传参 for (String key : parameters.keySet()) { String[] params = (String[]) parameters.get(key); StringBuffer buffer = new StringBuffer(); for (String param : params) { buffer.append("," + param); } String paramValue = buffer.toString(); paramValue = paramValue.substring(1); System.out.println(key + "," + paramValue); } final String resultCode = invocation.invoke();// 拦截器分界 // 输出页面 Result realResult = invocation.getResult(); if (realResult instanceof ServletDispatcherResult) { ServletDispatcherResult result = (ServletDispatcherResult) realResult; System.out.println("jsp:" + result.getLastFinalLocation()); } Date d2 = new Date();// 计时结束 System.out.println("【本次操作耗时 " + (d2.getTime() - d1.getTime()) + " 毫秒】");// 输出耗时 return resultCode; } }
前后各加一个时间统计下程序执行用时。
代码写完在配置文件中添加一下拦截器。
<interceptors> <!-- 设置打印action拦截器 --> <interceptor name="systemOutPrint"class="com.**.**.**.SystemOutPrint"></interceptor> <!-- 设置拦截器栈 --> <interceptor-stackname="session"> <!-- 引用打印action拦截器 --> <interceptor-refname="systemOutPrint"></interceptor-ref> <!-- 引用struts2的默认拦截器栈 --> <interceptor-refname="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors>
相关文章推荐
- [JavaEE]Struts2路径问题(如何在jsp页面正确访问struts.xml中的action)
- ssh框架总结action接收参数的三种方式页面访问的方式
- struts2中如何根据请求路径定位到详细的访问action
- Struts2 访问Action和Jsp页面出现的路径问题解决方案之 ---- 为jsp、图片、js、css等获取Web工程的绝对路径的方法
- 如何解决访问页面路径不正确的问题
- jsp页面访问Struts1的Action路径问题
- ssh框架,访问struts的action错误,如何解决
- JSP页面中如何使用相对路径访问文件
- javascript 如何访问 action或者controller 传给 jsp 页面的值
- AJAX 访问action 时 如何让action 只输出结果不跳转
- MVC中如何在controller的action中输出JS到页面上
- java如何获取jsp页面上传的文件路径 20 前台jsp: <form action="AA.do?method=yktAdd" method="post" > <input type='text'
- webwork在Action中取页面东西时,如果第一次非空而第二次为空如何取到空
- c#学习笔记三 如何访问另一个页面的控件数据
- 如何用PHP输出静态页面?
- 如何将PHP的结果输出到非PHP页面中
- 在网页frameset结构中,如何在框架内的页面访问框架
- asp.net中, 如何在后台获取访问这个页面的用户的名字?
- [SharePoint]如何防止从代码跳到“拒绝访问”页面
- 页面前台通过JS访问WEB SERVICES,以及如何处理返回结果.