1、定义Action接口
public interface Action {
public String execute(HttpServletRequest request,
HttpServletResponse response) throws Exception;
}
2、实现自定义Action接口
public class LoginAction implements Action {
public String execute(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String name = request.getParameter("uid");
String password = request.getParameter("pwd");
// 业务处理
CustomerBiz ub = new CustomerBizImpl();
Customer user = ub.login(name, password);
// 判断登录是否成功
if (user == null) {
request.setAttribute("message", "用户名或密码错误");
return "login.jsp";
} else {
request.getSession().setAttribute("login", user);
return "index.jsp";
}
}
}
3、实现Controller类ActionServlet
1)获取自定义Action
public Action getAction(HttpServletRequest request){
//获取请求的uri
String uri = request.getRequestURI();
//获取上下文路径
String contextPath = request.getContextPath();
//截取上下文路径以后的部分
String actionPath = uri.substring(contextPath.length());
//获取Action 名称
String actionName =
actionPath.substring(1,actionPath.lastIndexOf('.')).trim();
Action action = null;
//添加新功能时在这里添加
if("login".equals(actionName)){
action = new LoginAction();
}
return action;
}
2)调用execute方法
public void doGet(HttpServletRequestrequest,
HttpServletResponse response) throws Exception {
//获得Action
Action action = this.getAction(request);
//调用Action execute 方法
String resultView = action.execute(request, response);
//actionMapping
request.getRequestDispatcher(resultView).forward(
request, response);
}
4、配置ActionServlet
1)修改web.xml文件,配置ActionServlet
<servlet>
<servlet-name>ActionServlet</servlet-name>
<servlet-class>*.*.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ActionServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
5、上面只能接受一个action处理,如果有多个action,如何接收呢?
2)Controller的完善ActionServlet,增加架构配置文件mystruts.xml
3)保存Action信息,修改Action,ActionMapping,保存配置的Result 属性信息Map<String,String>
4)读取Action信息,修改ActionServlet的init方法
5)使用反射生成Action,ActionManager的createAction方法用来获取Action实例
6)loadClass方法动态加载类ActionManager,loadClass方法动态加载类
7)修改ActionServlet配置信息
<servlet>
<servlet-name>ActionServlet</servlet-name>
<servlet-class>com.birlt.dangdang.servlet.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>mystruts.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
6、完善视图
1)保存视图Result类
2)修改ActionMapping,保存配置的Result 属性信息Map<String,Result>
3)增加ActionMappingManager类
4)修改ActionServlet,需要修改init方法,并将getAction改为getActionMapping,并将修改获取mapping内容
7、注册完成功能
分享到:
相关推荐
在Android应用开发中,自定义框架是一个常见的需求,它能够帮助开发者提高代码的复用性、模块化和可维护性。下面将详细讲解Android自定义框架的构建过程、设计原则以及如何在小项目中有效利用。 一、自定义框架的...
在Android开发中,自定义控件和框架的运用是提升应用独特性和性能的关键。下面将对"android 自定义控件实现demo收集 及 框架收集"这一主题进行深入探讨。 首先,自定义控件在Android应用开发中扮演着重要角色。它们...
在实现自定义ORM框架时,我们需要以下几个关键步骤: 1. **实体类定义**:创建带有注解的实体类,这些类将作为数据库表的映射。例如: ```java @Entity @Table(name = "USER") public class User { @Id ...
SpringBoot是一款基于Java的轻量级...通过以上步骤,你就可以将这个简洁型SpringBoot框架转化为符合你需求的后台系统。记住,SpringBoot的强大在于其灵活性和可扩展性,可以根据项目需求添加任何第三方库或自定义功能。
Afinal是一款轻量级的Android ORM(对象关系映射)框架,由知秋二叉枫(FinalTeam)开发。这个框架旨在简化Android应用中的数据库操作,让开发者可以更专注于业务逻辑,而不是繁琐的数据访问层实现。在Afinal中,...
SpringBoot是Spring框架的简化版本,它简化了配置,使得开发快速、简洁。在本项目中,SpringBoot作为基础框架,用于搭建服务环境,提供自动配置、内嵌Web服务器等功能,便于快速构建可运行的应用程序。 2. **...
三、自定义标签的实现步骤 1. 创建标签库描述文件(TLD,Tag Library Descriptor):这是定义自定义标签的关键文件,用于描述标签的属性、命名空间等信息。例如,`struts-tags.tld`。 2. 编写标签处理类(Tag Class...
### TP框架开发手册知识点解析 #### 一、TP框架概览 **TP框架**,即ThinkPHP框架,是一款用于PHP应用程序开发的轻量级、高性能的开源框架。它旨在简化Web开发过程,提供一套规范化的解决方案,使得开发者能够更加...
在Spring框架中,自定义标签是一项非常实用的功能,它允许我们创建符合XML语法的自定义元素,以便在配置...自定义标签可以作为扩展Spring功能的一种方式,使我们能够按照自己的需求定制框架行为,从而提升开发效率。
因此,自定义AlertView变得尤为重要,这允许我们根据产品设计和用户体验进行定制化开发。 自定义AlertView的过程主要包括以下几个步骤: 1. **创建UI设计**: 首先,我们需要根据设计稿创建一个符合需求的视图...
- 与框架集成:许多Java Web框架如Struts、Spring MVC都支持自定义标签,便于和框架集成。 总结,Eclipse自定义标签的学习涵盖了从创建标签类、配置TLD到在JSP页面中使用的所有步骤。这个资源对于Java Web开发者,...
开发自定义标签时,一些工具和框架提供了便利,如Apache Struts的Tiles和Spring Web Flow。这些工具提供了更高级别的抽象,简化了自定义标签的创建和管理。 总结来说,自定义标签是Java Web开发中的重要技术,它...
`Android-TimeTask`就是这样一款专为Android设计的轻量级、简洁的定时任务队列框架。它旨在简化多组任务的分发和管理工作,使开发者能够更加专注于业务逻辑,而不是底层的调度细节。 `TimeTask`框架的核心思想是...
在微信小程序的开发过程中,选择合适的框架可以极大地提高开发效率和代码质量。本文将深入探讨如何使用AUI框架来开发微信小程序模板,并介绍AUI框架的特点、优势以及它如何助力微信小程序的模板构建。 AUI框架是专...
以上是创建一个具有身份证拍照和剪裁功能的自定义相机应用的关键步骤。`CYXCustomerCameraDemo-master`可能是一个包含此类功能的示例项目,你可以参考其代码实现来学习和理解这些知识点。在实际开发中,还需要根据...
Struts 是一个基于 Model-View-Controller (MVC) 设计模式的 Java Web 开发框架,它极大地简化了创建功能丰富的、动态 web 应用的过程。在 Struts 中,自定义标签是提供一种灵活的方式,使得视图层(通常为 JSP 页面...
它以其简洁的API和强大的功能,为开发者提供了高效开发体验。本指南旨在深入解析QUI框架的核心概念、关键特性和使用方法,帮助开发者快速上手并精通此框架。 一、QUI框架概述 QUI框架基于现代Web技术,如HTML5、CSS...
总结来说,CanPHP框架是一个为PHP开发提供便利的工具,它将复杂的Web应用开发简化为更易操作的步骤。通过深入学习和利用CanPHP,开发者可以高效地构建稳定、安全的PHP应用,并享受到开源社区的持续支持和更新。无论...
2. **自定义数据源**:框架允许开发者提供自定义的数据源,可以通过简单的数组或结构体来表示图表中的数据点,方便数据绑定。 3. **丰富的配置选项**:每个图表类型都有一系列的配置选项,包括但不限于轴标签、图例...
在构建Web应用程序时,后端框架的搭建是至关重要的步骤,它为整个系统提供结构、逻辑和交互的基础。本教程将聚焦于"web程序-后端框架搭建",特别是使用Spring Boot来创建一个传统的Web信息管理系统。让我们深入探讨...