@SuppressWarnings("unchecked")
public void setToGoingURL( HttpServletRequest request,
HttpSession httpsession,
ActionInvocation invoker) {
String url = ServletActionContext.getRequest().getHeader("referer");
if (url == null || url.equals("")) {
url = "";
String path = ServletActionContext.getRequest().getContextPath();
String actionName = invoker.getProxy().getActionName();
String nameSpace = invoker.getProxy().getNamespace();
if (StringUtils.isNotEmpty(nameSpace)) {
url = url + path + nameSpace;
}
if (StringUtils.isNotEmpty(actionName)) {
url = url + "/" + actionName + "?";
}
Map<String, String[]> zzMap = ServletActionContext.getRequest().getParameterMap();
if (zzMap != null) {
for (String s : zzMap.keySet()) {
String[] value = zzMap.get(s);
for (String val : value) {
url = url + s + "=" + val + "&";
}
}
}
}
httpsession.setAttribute(GOING_TO_URL_KEY, url);
}
分享到:
相关推荐
综上所述,Struts2的路径问题可能涉及多个层面,包括Action配置、结果类型设置、静态资源访问策略、插件和拦截器的使用,以及URL重写和部署配置等。解决这些问题通常需要对Struts2的工作原理有深入理解,并能熟练...
3. **拦截器(Interceptors)**:Struts2的拦截器机制允许在Action执行前后插入额外的功能,如日志记录、权限检查、事务管理等。在描述中提到的分页和模糊查询可能就是通过拦截器实现的,这些功能可以被抽离出来,...
在Struts2中,`package`元素是核心组件,用于组织Action、拦截器等。一个包可以看作是一个模块,其中包含多个Action和拦截器。`package`元素具有以下重要的属性: 1. **name**:这是必填属性,用于为包设置唯一的...
同时,Struts2框架提供了丰富的拦截器(Interceptors)、结果类型(Result Types)和插件(Plugins),这些工具可以帮助开发者更好地管理和控制路径的使用,例如通过Interceptor实现URL重写,或者使用FreeMarker等...
同时,实践过程中可能会涉及异常处理、国际化、模板技术(如FreeMarker或Velocity)以及Action的拦截器等高级特性。通过这样的实战练习,能够加深对Struts2的理解,为后续的Web开发打下坚实的基础。
2. **URL构造**:在JSP页面或者控制器中,我们需要根据命名空间来构建请求URL。例如,如果Action的命名空间是/admin,那么调用这个Action的链接可能是`<a href="/admin/save">Save</a>`。 3. **Interceptor(拦截器...
5. **Interceptor拦截器**:在Struts2中,拦截器可以拦截Action调用,添加额外的功能,如日志、权限检查或事务管理。在分页场景下,我们可以创建一个拦截器来处理分页相关的逻辑,比如计算总页数、设置默认页码等。 ...
1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 ...
Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并引入了更多现代Web开发的特点,如拦截器、插件机制和强大的Action类。它的核心是基于拦截器的MVC设计模式,能够帮助开发者更好地组织业务逻辑和控制...
2. **配置文件**:Struts2通过struts.xml配置文件管理Action、结果类型、拦截器等。在这个登录系统中,配置文件会定义登录请求的URL映射以及成功或失败后的视图跳转。 3. **拦截器**:拦截器可以增强Action的功能,...
- **核心机制**:Struts2采用拦截器机制处理用户的HTTP请求,这使得业务逻辑控制器和Servlet API完全分离。 - **前端控制器模式**:Struts2的前端控制器是过滤器(Filter),而Spring MVC的前端控制器是...
Struts2可以通过自定义拦截器实现日志记录,拦截每次请求,记录请求的URL、方法、参数以及执行时间等信息,帮助开发者了解系统运行状况,定位问题。 在开发Struts2应用时,我们通常会使用Struts2提供的注解或XML...
3. **拦截器(Interceptor)**:拦截器是Struts2的一个强大特性,它们是执行在Action调用前后的一系列方法。常见的拦截器包括结果映射、参数绑定、异常处理等。通过拦截器链,可以实现通用的功能,如登录验证、日志...
Struts2通过拦截器机制实现了灵活的扩展性,同时支持多种结果类型,如JSP、FreeMarker等。在图书管理系统中,Struts2可以作为用户交互的入口,处理借书、还书、查询等操作的请求。 2. **Spring3**:Spring是一个...
在`web.xml`中配置`codeFilter`,并指定其在Struts2拦截器链中的位置。例如: ```xml <filter-name>codeFilter <filter-class>com.yourcompany.filters.CodeFilter</filter-class> <filter-name>codeFilter ...
2. **配置Struts2**:在`struts.xml`配置文件中,我们需要定义一个拦截器栈,其中包含`i18n`拦截器。这个拦截器负责处理用户请求中的语言信息,并将当前语言设置到Action上下文中。 ```xml ... ... ...
Struts2的配置主要在struts.xml文件中进行,包括Action配置、拦截器链配置、常量配置等。例如: ```xml <action name="login" class="com.example.LoginAction"> <result name="success">/success.jsp ...
- **Interceptor(拦截器)**:Struts2允许开发者定义拦截器来处理请求前后的逻辑,如日志记录、权限检查等。 - **Result类型**:Action执行后,会根据配置返回一个Result类型,决定如何处理结果,例如转发到一个...
- **使用安全配置**:启用Struts2的安全配置选项,如使用XWork拦截器来阻止恶意请求。 7. **应急响应** 发现系统受此漏洞影响后,应立即停止使用受影响的服务,评估漏洞影响范围,然后按照上述防御策略进行修复,...
同时,可以利用Struts2提供的`ActionContext`获取当前请求上下文路径,以便正确构造图片的URL。 通过以上步骤,你可以在Struts2中实现绝对路径上传图片并显示。不过,为了更好的用户体验和安全性,建议使用相对路径...