- 浏览: 578198 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (206)
- Flask (1)
- JavaScript (3)
- Core Java (41)
- XML (1)
- Oracle (11)
- 软件安装及环境配置 (0)
- 其它 (9)
- 面试/笔试 (5)
- 项目 (0)
- JDBC (11)
- Servlet (4)
- MySql (4)
- JNDI (0)
- Hibernate (11)
- Java模式和构架设计 (0)
- Web设计 (22)
- JSP (8)
- Struts (13)
- Tomcat (2)
- Marven (2)
- SVN (2)
- Swing/AWT (1)
- jQuery (2)
- ExtJS (8)
- Python (22)
- Flex (1)
- Django (7)
- 算法 (5)
- English (1)
- Twisted (1)
- Linux (3)
- Rails (1)
- SVG (3)
- PostgreSQL (1)
工作流程:
1.客户端提交一个HttpServletRequest请求(action或JSP页面)。
2.请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等。
3.FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器。
4.请求被发送到FilterDispatcher后,FilterDispatcher询问ActionMapper时候需要调用某个action来处理这个Request。
5.如果ActionMapper决定需要调用某个action,FilterDispatcher则把请求交给ActionProxy进行处理。
6.ActionProxy通过Configuration Manager询问框架的配置文件struts.xml,找到调用的action类。
7.ActionProxy创建一个ActionInvocation实例,通过代理模式调用Action。
8.action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Intercepter拦截器。
9.最后ActionInvocation实例,负责根据struts.xml中配置result元素,找到与之相对应的result,决定进一步输出。
基本简要流程:
struts2项目配置流程
1.新建web static project
如果没有tomcat的类库,需要添加。
2.将struts2的jar文件复制到WebContent/WEB-INF/lib目录中
3.配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>SSH2</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
4.新建login.jsp,error.jsp,welcome.jsp文件
login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>用户登录</title> </head> <body> <s:form action="login"> <s:textfield name="username" key="user"></s:textfield> <s:textfield name="password" key="pwd"></s:textfield> <s:submit key="login"/> </s:form> </body> </html>
welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>用户登录</title> </head> <body> 登录成功 </body> </html>
error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>用户登录</title> </head> <body> 登录失败 </body> </html>
5.src目录下新建struts.xml、message.properties文件
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <constant name="struts.custom.i18n.resources" value="message" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- Add packages here --> <package name="auth" extends="struts-default"> <action name="login" class="com.tim4lover.ssh2.auth.action.LoginAction"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> </package> </struts>
message.properties
loginPage=登录页面 errorPage=错误页面 successPage=成功页面 failTip=对不起,您不能登录! successTip=欢迎,{0},您已经登录! user=用户名 pwd=密码 login=登录
message.properties文件的编码格式为utf-8,还必须用native2ascii命令来处理该国际化资源文件。
src目录下新建 toUTF-8.bat,运行。
toUTF-8.bat
native2ascii -encoding UTF-8 message.properties message_zh_CN.properties
运行,生成message_zh_CN.properties
6.新建action类
package com.tim4lover.ssh2.auth.action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; private String username; private String password; @Override public String execute() throws Exception { if("admin".equals(username) && "123456".equals(password)) { ActionContext.getContext().getSession().put("user", getUsername()); return SUCCESS; }else { return ERROR; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
7.配置struts.xml,action到jsp的映射。
发表评论
-
OGNL
2011-03-05 19:23 1172OGNL (Object-Graph Navigation L ... -
Struts2配置全局结果集
2011-03-05 16:14 4321概念: 在项目中很多地方都返回到同一个视图,这样就有必要配置 ... -
result类型
2011-03-05 15:50 3879Struts2 result类型 1.dispatch ... -
默认action
2011-03-05 11:34 996概念: 当请求一个不存在的action时,struts2会报 ... -
Struts2中的模块包含
2011-03-05 11:32 1414Struts2中的模块包含 概念: struts2中的模块 ... -
访问Web元素
2011-03-05 11:21 1149访问Web元素可以有四种方法,下面依次列出 user_log ... -
struts2 / 接收用户输入参数的三种机制
2011-03-04 14:33 1277Struts2中给开发者提供了三种接收用户输入参数的机制,我们 ... -
DMI动态方法调用 和 通配符
2011-03-04 11:53 1385动态方法调用DMI http://localhost: ... -
命名空间namespace
2011-03-04 11:16 5336Struts的作用,简单说把用户的请求和返回的视图分离! ... -
Struts2框架验证
2011-01-06 10:56 1248Struts2验证框架验证用户注册 核心代码如下: 1.用户注 ... -
struts下载地址
2010-12-19 10:45 887http://archive.apache.org/dist/ ... -
Eclipse中Struts2的配置
2010-12-06 11:25 83771.安装Tomcat,增加服务器运行环境 Window--& ...
相关推荐
**Struts2工作流程详解**: 1. **客户端请求**:用户通过浏览器发起HTTP请求,目标通常是一个Action,如`http://localhost:8080/yourApp/yourAction.action`。 2. **过滤器链**:请求首先经过一系列过滤器,包括`...
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度...
这些配置是理解程序工作流程的关键。 3. **Interceptor拦截器**:拦截器允许在Action执行前后插入自定义逻辑,如日志、权限检查等。在项目中,可能会看到如`params`、`validation`、`exception`等内置拦截器的使用...
### 二、Struts2工作流程详解 #### 1. 请求初始化 一切始于客户端发起的HTTP请求,该请求通常包含用户提交的数据和请求的资源标识符。请求首先到达Web服务器的Servlet容器,如Apache Tomcat。 #### 2. 过滤器链 ...
#### Struts2工作流程 1. **用户提交请求**:客户端通过HTTP协议向服务器发送请求。 2. **FilterDispatcher拦截请求**:所有的请求首先被FilterDispatcher捕获。 3. **ActionMapper确定Action**:...
总的来说,Struts2的工作流程大致为:请求到达->过滤器Dispatcher拦截->查找Action映射->创建Action实例->执行拦截器链->调用Action的execute方法->返回Result->渲染视图。这种设计允许开发者将业务逻辑、数据验证、...
首先,Struts2是基于Model-View-Controller (MVC)设计模式的,它简化了从前端到后端的交互流程。在Struts2中,Action类扮演控制器的角色,处理用户的请求,并调用模型层进行业务逻辑处理。同时,Struts2通过配置文件...
struts2工作原理、请求响应流程。。。。。。。。。。。。。。。
这张图是理解Struts2工作流程的重要辅助工具,通过它你可以直观地看到每个组件如何协同工作。 `struts原理.txt`文件可能包含了文字描述,进一步解释了Struts2的核心概念和机制,比如Action的配置、结果映射、拦截器...
通过学习和实践这个Struts2框架程序示例,开发者可以深入理解Struts2的工作原理,掌握如何创建Action、编写Interceptor、配置Action与Result的映射,以及如何利用Struts2的其他特性来提高开发效率和代码质量。...
理解不同的结果类型,如“dispatcher”(用于转发到JSP)和“stream”(用于下载文件),是掌握Struts2工作流程的关键。 4. **拦截器**:Struts2的拦截器机制允许在Action调用前后插入自定义逻辑,如日志、权限检查...
### Struts2的工作流程及配置文件详解 #### 一、Struts2简介 Struts2是基于MVC设计模式的Java Web开发框架之一,它继承了Struts1的优点,并在此基础上进行了大量的改进和扩展。Struts2框架的核心是拦截器...
这个"struts2示例程序"是为了帮助初学者理解并熟悉Struts2框架的基本概念和工作流程。该程序基于Struts2的2.0.14版本,这是Struts2的一个较早版本,但其核心概念和机制在后续版本中仍然适用。 Struts2的核心特性...
Struts2 项目开发 Struts2 是一个基于 Java Web 的框架,广泛应用于 Web ...通过了解 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点,可以更好地应用 Struts2 框架,开发高质量的 Web 应用程序。