现在只是为将来总结提示一下,以后再将运行流程详细解说并将源码添加到附件上,同时加深自己对 Struts 运行机制。
Figure 1 Struts 2 Framework's Architecture
AuthorityFilter.java
package com.tucue.interceptor;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 文件名称:AuthorityFilter.java
*
* 版权信息:TD 实验室
*
* 创建日期:2010-6-24
*
* 修改历史:
*/
/*
* 类的功能描述:登录权限过滤器
*
* 作者:Li Huagang
*/
public class AuthorityFilter implements Filter {
// @see javax.servlet.Filter#destroy()
@Override
public void destroy() {
}
// @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String uri = request.getRequestURI();
// 过滤所有的 *.jsp 请求
if (uri.contains("jsp") || uri.contains("html") || uri.contains("htm")) {
HttpSession session = request.getSession();
if (session.getAttribute(AuthorityInterceptor.LOGINED_FLAG) == null) {
response.sendRedirect(request.getContextPath() + "/admin/jumpLoginPage.action");
return ;
}
}
chain.doFilter(req, res);
return ;
}
// @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
@Override
public void init(FilterConfig paramConfig) throws ServletException {
}
}
AuthorityInterceptor.java
package com.tucue.interceptor;
import static com.opensymphony.xwork2.Action.ERROR;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 文件名称:AuthorityInterceptor.java
*
* 版权信息:TD 实验室
*
* 创建日期:2010-4-22
*
* 修改历史:
*/
/*
* 类的功能描述:登录权限拦截器
*
* 作者:Li Huagang
*/
public class AuthorityInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1770471187955003755L;
public static String LOGINED_FLAG = "logined"; // 判断用户是否已登录
@Override
public String intercept(ActionInvocation invocation) throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
Map<?,?> session = invocation.getInvocationContext().getSession();
Object logined = session.get(AuthorityInterceptor.LOGINED_FLAG);
if (logined == null) {
return ERROR;
} else {
return invocation.invoke();
}
}
}
- 大小: 64.7 KB
分享到:
相关推荐
总的来说,"struts2-login校验.rar"中的内容展示了如何使用Struts2框架实现用户登录功能,包括Action配置、拦截器使用、登录验证、页面跳转等核心概念,同时涉及到Tomcat服务器的部署和运行。这是一个基础但重要的...
在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免乱码问题。 5. **Struts2详解**: Struts2框架的核心包括Action、Interceptor(拦截器)、Result和Value Stack等组件。Action...
- **配置web.xml**:在`WEB-INF`目录下的`web.xml`中配置Struts2的核心过滤器`<filter>`和`<filter-mapping>`。 - **创建Action类**:编写处理用户请求的Java类,继承自`ActionSupport`,并实现相应的方法。 - **...
- 项目结构:"Web2"目录可能包含WEB-INF下的`web.xml`文件,配置了Struts2的过滤器,以及其它Web应用所需的资源。 - 运行环境:这个实例需要在Tomcat或类似的Servlet容器中部署运行,用户通过浏览器发起HTTP请求,...
在这个版本中,我们可以深入理解Struts2的工作原理,学习如何实现控制器、拦截器、配置管理以及动作等核心概念。 Struts2的核心组件包括以下几个方面: 1. **Action**:Action是业务逻辑的载体,它是处理用户请求...
在Struts2中,拦截器(Interceptor)是一个至关重要的概念,它扮演着处理请求、增强功能和控制流程的角色。拦截器是在Action调用前后执行的一系列方法,它们按照特定的顺序组成一个链,可以对请求进行拦截、处理并...
用户管理后台系统的配置文件(struts.xml或类似的配置文件)定义了Action的映射、结果类型、拦截器链等。例如,这里可能会有UserManagerAction的配置,指定其处理的请求路径、执行的方法以及返回的结果页面。 4. *...
- 配置Struts2:创建`struts.xml`配置文件,定义Action、Result和拦截器栈。 - 配置Spring:创建`applicationContext.xml`,定义bean和依赖关系,如果使用Spring的AOP,还需配置切面。 - 配置web.xml:设置Struts...
SSM EasyUI 后台权限管理系统是一个基于Struts2、Spring和MyBatis三大主流Java Web框架,并结合EasyUI前端库构建的权限管理解决方案。它主要用于实现后台的用户权限控制,提供灵活的角色分配和资源权限管理,以确保...
在Web应用的配置中,Struts2通过`StrutsPrepareAndExecuteFilter`过滤器注册,因此容器会将请求交给这个过滤器进行处理。 2. **过滤器查询ActionMapper**:过滤器会查询ActionMapper来确定请求是否对应于一个可执行...
1. **配置Struts2**:首先,需要在项目的`struts.xml`配置文件中添加jqGrid相关的Action,这些Action负责处理来自jqGrid的AJAX请求,获取或更新服务器端的数据。 2. **创建Grid**:在前端页面上,通过HTML和...
- `web.xml`:Web应用的部署描述符,配置过滤器、监听器和Servlet。 这个实例展示了如何将SSH框架与ExtJS 4.0集成,实现数据的动态展示和操作。开发者可以通过此项目学习到如何使用Struts2 Action返回JSON数据,...
总结来说,"投票系统基于Struts2"是一个涵盖了用户管理、数据处理、安全控制、文件上传等多方面功能的项目,它充分利用了Struts2框架提供的工具和技术,展示了Struts2在构建复杂Web应用中的强大能力。
9. **部署配置**:如web.xml,是Web应用的部署描述符,可能包含了Struts2的初始化参数和过滤器配置。 总体来说,Struts_menu项目是一个使用Struts 2.3框架构建的菜单管理系统,通过Action、Interceptor和视图文件...
1. `struts.xml`:Struts2的核心配置文件,定义了Action和拦截器的配置,以及Action与视图的映射。 2. `jasperreports.xml`:JasperReport的配置文件,可能包含了报表模板的路径和输出设置。 3. `.jrxml`文件:报表...
总结来说,BBSStruct2在线论坛前后台管理系统是一个涵盖了Web开发基础知识、数据库设计、权限管理等多个领域的实践项目,对于提升Java Web开发者的技术水平具有很高的学习价值。通过深入研究并修复其中的错误,...
5. **拦截器**:Struts2的拦截器允许我们在Action执行前后添加额外的功能,比如日志记录、权限检查等。在登录系统中,我们可能使用`ParamsInterceptor`来自动将表单参数绑定到Action属性,或者自定义拦截器来实现...
- 配置在`web.xml`或`struts.xml`中。 2. **过滤器** - 对特定URL后缀的请求进行过滤,例如`.html`或`.action`。 ### 四、接口开发 1. **接口文档** - 包括URL地址、输入参数、返回参数。 - 在SSH(Struts + ...
1. **配置 Struts2**:首先,需要在项目的 `struts.xml` 配置文件中设置Action类及其对应的URL映射,以及指定使用的Result类型,通常是 `json` 或 `json-default`,以便返回JSON数据给jqGrid。 2. **创建Action类**...