一 为什么需要分派action
二 快速入门
1、创建一个web工程
2、引入struts并配置struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd";>
<struts-config>
<form-beans >
<form-bean name="userForm" type="com.yourcompany.struts.form.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<!-- parameter用于区分用户的不同的请求 -->
<action-mappings >
<action
attribute="userForm"
input="/WEB-INF/login.jsp"
name="userForm"
parameter="flag"
path="/loginandLogout"
scope="request"
type="com.yourcompany.struts.action.LoginandLogoutAction"
cancellable="true" >
<forward name="loginok" path="/WEB-INF/ok.jsp" />
<forward name="gologin" path="/WEB-INF/login.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
3、JSP页面
3.1 login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="/dispatch/loginandLogout.do?flag=userlogin" method="post">
u:<input type="text" name="username"><br/>
p:<input type="password" name="password"><br/>
<input type="submit" value="login">
</form>
</body>
</html>
3.2 ok.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>登录成功</h1>
<a href="/dispatch/loginandLogout.do?flag=userloginout">退出系统</a>
</body>
</html>
4 LoginandLogoutAction
LoginandLogoutAction
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.yourcompany.struts.form.UserForm;
/**
* MyEclipse Struts
* Creation date: 10-21-2017
*
* XDoclet definition:
* @struts.action validate="true"
*/
public class LoginandLogoutAction extends DispatchAction {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
//使用分派action往往需要自己重新命名函数,这个函数用于响应登录请求
public ActionForward userlogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
UserForm userForm=(UserForm) form;
if("123".equals(userForm.getPassword())){
return mapping.findForward("loginok");
}
else
{
return mapping.findForward("gologin");
}
}
//这个函数用于响应注销请求
public ActionForward userloginout(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
//把用户的session清空
request.getSession().invalidate();
return mapping.findForward("gologin");
}
}
5 UserForm
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.form;
import org.apache.struts.action.ActionForm;
/**
* MyEclipse Struts
* Creation date: 10-21-2017
*
* XDoclet definition:
* @struts.form name="userForm"
*/
public class UserForm extends ActionForm {
private String username;
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;
}
private String password;
}
相关推荐
Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的请求并调度到相应的业务逻辑方法。在Struts框架中,DispatcherAction是Action类的一个子类,它的主要作用是实现...
Struts框架是Java Web开发中常用的一个MVC(Model-View-Controller)框架,它极大地简化了企业级应用的开发工作。DispatchAction是Struts框架中的一个动作类,用于处理用户的请求并转发到相应的业务逻辑。在这个场景...
Struts 是一个经典的Java Web开发框架,用于构建企业级的MVC(模型-视图-控制器)应用程序。在Struts框架中,`DispatchAction`是一个关键组件,它扮演着控制器的角色,负责处理用户请求并调用相应的业务逻辑。在本篇...
Struts框架是Java Web开发中一个非常重要的MVC(Model-View-Controller)框架,它为开发者提供了一种结构化的方式来组织和管理应用程序。在早期的Struts版本中,`DispatchAction`类是一个核心组件,它允许我们通过...
Struts是Java Web开发中的一款经典MVC框架,它的出现极大地简化了企业级应用的构建。在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑...
Struts是一个开源的JavaEE框架,它为构建基于MVC(Model-View-Controller)模式的Web应用程序提供了强大的支持。在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这...
在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...
### DispatchAction、LookupDispatchAction、SwitchAction 的应用详解 #### 一、DispatchAction 的应用 **DispatchAction** 是 Struts 框架中一个非常有用的类,它位于 `org.apache.struts.actions` 包中。其核心...
Struts DispatchAction是Apache Struts框架的一个经典组件,主要用于处理多方法的Action。...这些资源可能包含更深入的代码示例和配置细节,帮助你更好地理解和应用Struts DispatchAction进行用户管理。
Struts 是一个开源的 JavaEE Web 应用框架,它主要负责处理用户的请求,并通过控制器进行业务逻辑处理,再将结果展示在视图上。在"Struts应用举例2"中,我们将深入探讨Struts框架的核心概念、工作原理以及如何在实际...
在实际的Web应用程序开发中,通常一个URL对应一个Action,而`DispatchAction`则允许一个Action处理多个不同的请求,每个请求映射到Action中的不同方法,提高了代码的可维护性和组织性。 `DispatchAction`的核心机制...
Struts1.2是一个经典的Java Web框架,它在企业级应用开发中被广泛使用,尤其在Web MVC(Model-View-Controller)设计模式的应用上。本示例是基于Struts1.2实现的一个计算器程序,旨在帮助初学者理解Struts框架的工作...
9. **DispatchAction的应用**:DispatchAction允许一个Action类处理多个请求,通过不同的参数映射到不同的业务方法,提高了代码复用性。 10. **Validator框架**:Struts的Validator框架用于表单验证,通过配置文件...
Struts框架是Java Web开发中的一个关键组件,属于SSH(Struts、Spring、Hibernate)三大框架之一。它提供了一种模型-视图-控制...理解并熟练运用DispatchAction,能帮助开发者更好地利用Struts框架构建复杂的应用程序。
- **分发Action**:`org.apache.struts.actions.DispatchAction`,允许根据不同的参数执行不同的方法。 - **转发Action**:`org.apache.struts.actions.ForwardAction`,用于隐藏JSP路径。 - **流下载Action**:`org...
- 在`src/main/java`下创建一个包,例如`com.example.myapp.actions`,然后在此包内创建一个Action类,实现`com.opensymphony.xwork2.Action`接口或继承`org.apache.struts2.actions.DispatchAction`或`...
- **DispatchAction**: 是Struts提供的另一种Action类型,它支持在一个Action类中定义多个业务方法,每个方法都可以处理不同的请求。 2. **实现方式**: - **普通Action**: 实现`Action`接口,重写`execute()`方法...
Struts是Java Web开发中的一款经典MVC框架,主要用于构建基于J2EE的企业级应用程序。Struts1作为早期版本,虽然现在已经被Struts2所取代,但仍然在很多老项目中广泛使用,对于理解Web应用架构和MVC设计模式有着重要...
"48_46.doc"、"48_56.doc"、"48_46_2.doc"等文档可能包含了对Struts基础概念的解释,比如Action、Form Bean、DispatchAction、Forward等,这些都是构建Struts应用的基础组件。Action类处理用户请求,Form Bean存储...
04 Struts_04DispatchAction : 分发Action,根据设置的参数值提交到不同的方法进行处理业务,演示数学运算 05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,...