`

MVC_自定义框架

阅读更多
实现MVC自定义框架(简单实现登录功能)
一,模型层:
实体类,接口(实体类接口,Action接口),接口实现类(实体类接口实现类,Action接口实现类)
代码:
package entity;
/**
 * 用户类
 * @author Administrator
 */
public class User {
	private String username;//用户名
	private String password;//密码
	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;
	}
	
}
package dao;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Action接口
 * @author Administrator
 *
 */
public interface Action {
	public String execute(HttpServletRequest request,HttpServletResponse response);
}
package dao;

import entity.User;

/**
 * 用户类接口
 * @author Administrator
 */
public interface UserDao {
	//登录方法
	public User login(String username,String password);
}
package dao.impl;

import dao.UserDao;
import entity.User;
/**
 * 用户接口的实现类
 * @author Administrator
 */
public class UserDaoImpl implements UserDao {
	/**
	 * 登录
	 */
	public User login(String username, String password) {
		User user=null;
		if(username.equals("admin")&&password.equals("admin")){
			user=new User();
			user.setPassword(password);
			user.setUsername(username);
		}
		return user;
	}

}
package dao.impl;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.Action;
import entity.User;
/**
 * 登录Action类实现Action接口
 * @author Administrator
 */
public class LoginAction implements Action {

	public String execute(HttpServletRequest request,
			HttpServletResponse response) {
			//接收参数
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		//创建UserDaoImpl对象
		UserDaoImpl udi=new UserDaoImpl();
		//调用登录方法
		User user=udi.login(username, password);
		//判断 User对象是否为空
		if(user!=null){
			return "success.jsp";
		}else{
			return "error.jsp";
			
		}
	}

}


二、控制器层,ActionServlet类(添加一个获得Action的方法)
web.xml:配置如下
   <servlet-name>ActionServlet</servlet-name>
    <servlet-class>servlet.ActionServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ActionServlet</servlet-name>
    <url-pattern>*.action</url-pattern><!-- 过滤所有以.action结尾 -->
  </servlet-mapping>

package servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.Action;
import dao.impl.LoginAction;

public class ActionServlet extends HttpServlet {

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request,response);
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//得到Action对象
		Action action=getAction(request);
		//调用Action实现类方法
		try {
			String result=action.execute(request, response);
			if(result!=null){
				response.sendRedirect(result);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	/**
	 * 创建一个获得Action的方法
	 * @param request
	 */
	public  static Action getAction(HttpServletRequest request){
		Action action=null;
		//截取action请求名(例如页面的登录:<form action="login.action" method="post">)
		String uri=request.getRequestURI();
		System.out.println("request.getRequestURI()---"+uri);
		//结果:request.getRequestURI()---/qifei_mvc_kuangjia_zuoye/login.action
		StringBuffer url=request.getRequestURL();
		System.out.println("request.getRequestURL()--"+url);
		//结果:request.getRequestURL()--http://localhost:8080/qifei_mvc_kuangjia_zuoye/login.action
		String contextPath=request.getContextPath();
		//结果:request.getContextPath()--/qifei_mvc_kuangjia_zuoye
		System.out.println("request.getContextPath()--"+contextPath);
		String actionUrl=uri.substring(contextPath.length());
		System.out.println("actionUrl--"+actionUrl);
		String actionName=actionUrl.substring(1,actionUrl.lastIndexOf(".")).trim();
		
		//判断请求名
	if(actionName.equals("login")){
			action=new LoginAction();
		}
		return action;
	}

}


三、页面
<body>
   <form action="login.action" method="post">
   	用户名:<input type="text" name="username"/><br/>
   	密码:<input type="password" name="password"/><br/>
   	<input type="submit" value="提交">
   </form>
  </body>
0
0
分享到:
评论

相关推荐

    java程序,MVC自定义框架

    Java程序中的MVC(Model-View-Controller)框架是一种广泛应用于Web...以上是对"java程序,MVC自定义框架"的详细解析,该框架旨在提供一种高效、灵活的Web开发解决方案,让开发者能够更好地组织代码,提升开发效率。

    PureMVC_CSharp

    **PureMVC C# 框架详解** PureMVC是一种流行且强大的多层应用程序架构框架,最初设计用于创建富互联网应用(RIA),但随着时间的推移,它已经被广泛移植到各种平台,包括服务器端环境。本文将深入探讨PureMVC在C#中...

    Spring_MVC_框架搭建及详解

    SpringMVC是目前主流的Java Web MVC框架之一,主要用于构建Web应用程序。它基于Spring框架,在Spring的基础上进行扩展,为创建Web应用提供了一个简单、灵活、可配置的模型-视图-控制器(MVC)设计。SpringMVC通过分离...

    FineUIMvc_v1.1.0_全部资料

    6. **客户端参考手册**:《客户端参考手册》FineUIMvc_JavaScript_参考手册_v1.1.0.zip则可能涵盖了FineUI的JavaScript API,包括各个控件的用法、事件处理、动画效果、以及自定义扩展等内容。 7. **在线示例源代码...

    MVC自定义框架代码

    5. **依赖注入(DI)**:为了提高代码的可测试性和可维护性,自定义框架通常会包含依赖注入机制,允许对象之间松散耦合。 6. **AOP(面向切面编程)**:用于处理横切关注点,如日志、事务管理等,让核心业务代码...

    开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp

    Spring MVC源码的深入理解有助于开发者更好地掌握框架的工作原理,优化代码性能,甚至为自定义扩展提供基础。 压缩包内的文件"www.pudn.com.txt"可能是一个链接或说明文档,指向更多关于该主题的资源,例如在pudn....

    自定义MVC框架

    通过深入研究这个自定义框架,我们可以对Spring MVC和Struts等现代MVC架构有更深入的理解。 1. **MVC模式**:Model-View-Controller模式是Web应用程序设计的核心理念。Model负责管理数据和业务逻辑,View负责展示...

    项目框架Ant_PureMVC_Project.rar

    标题“Ant_PureMVC_Project.rar”提示我们这是一个基于Ant构建工具和PureMVC设计模式的项目框架。Ant是Apache软件基金会的一个Java项目,它是一个可扩展的构建工具,允许开发者通过XML配置文件来编译、装配和部署...

    MVC.rar_CSharp 车_datawindow_mvc_mvc CSharp_mvc c++

    在Web开发中,ASP.NET MVC是一个基于C#的MVC框架,它提供了一套完整的服务和支持,使得开发者可以轻松地构建MVC结构的Web应用。在ASP.NET MVC中,路由、模型绑定、过滤器等特性大大简化了控制器的编写。 **...

    mvc自定义框架的代码

    本文将深入探讨Java中基于MVC(Model-View-Controller)模式的自定义框架,以及如何通过一个登录示例来理解和应用这个框架。 **MVC模式详解** MVC模式是一种广泛应用于Web开发的设计模式,它将应用程序分为三个主要...

    MVC模式与ASP.NET MVC框架概述_mvc_MVC设计模式_

    3. **路由系统**:ASP.NET MVC的路由系统允许开发者自定义URL模式,使得URL更加语义化,有利于SEO优化。 4. **强类型视图**:Razor视图引擎支持强类型,可以减少类型转换错误,提高开发效率。 5. **过滤器**:过滤...

    asp.net_mvc_框架EasyUI快速开发框架通用权限管理

    ASP.NET MVC 框架与 EasyUI 的结合是企业级应用程序开发中常见的一种技术栈,尤其在构建通用权限管理系统时,这种组合能提供高效、灵活且功能强大的解决方案。本文将深入探讨这两个技术如何协同工作,以及如何利用...

    jqSuiteASPNET_MVC_4_6_0_0

    jqSuiteASPNET_MVC_4_6_0_0 是一个专门为ASP.NET MVC框架设计的jQuery控件集合,由trirand公司开发。这个版本号(4.6.0.0)表明这是一个中期的稳定版本,可能包含了之前版本的改进和新功能。jqSuite主要以其强大的...

    Spring-MVC-3.0.rar_Java spring mvc_spring mvc_spring ppt

    Spring MVC是Spring框架的一部分,专为构建Web应用程序而设计。这个名为"Spring MVC 3.0.rar"的压缩包包含了一份关于Spring MVC 3.0版本的实战指南PPT,是Java开发者深入理解Spring MVC架构的宝贵资源。 **Spring ...

    modelview.rar_QT_modelview_mvc_qt mvc_qt MVC

    在QT框架中,Model-View-Controller(MVC)是一种常用的设计模式,它将应用程序的数据、用户界面和逻辑控制分离开来,使得代码更易于维护和扩展。`modelview.rar`这个压缩包文件可能包含了关于如何在QT环境中实现MVC...

    mvc_demo.src.rar_DEMO_mvc代码

    `mvc_demo.src.jar` 文件很可能是这个MVC框架的源代码包,包含了实现MVC模式的各种类和方法。开发者可能已经封装了控制器、模型和视图的相关类,便于理解和使用。通常,这样的代码库会包含以下组件: 1. **控制器类...

    wf.rar_ASP.NET MVC_ajax_mvc_智能表单_管理系统mvc

    ASP.NET MVC是一个强大的框架,用于构建可伸缩、高性能、易于维护的Web应用程序。这个名为“wf.rar”的压缩包文件包含的内容显然与使用ASP.NET MVC技术构建的智能表单和管理系统有关,特别是强调了AJAX的运用。让...

    MVC.zip_mvc_snake4vc

    这种自定义框架可以帮助开发者快速构建基于Servlet的MVC应用,提高开发效率。 7. **MVC的优势** - **分离关注点**:模型、视图和控制器的分离使得开发人员能够专注于各自领域的代码编写,提高工作效率。 - **可...

    MVC3自定义路由系统实现伪静态

    默认情况下,ASP.NET MVC框架提供了一种简单的路由机制来处理常见的URL结构。然而,在实际开发过程中,我们往往需要更加灵活的路由规则来满足特定的需求,比如创建友好的URL(即伪静态URL)。 在本篇文章中,我们将...

    bbs.zip_Spring mvc bbs_hibernate bbs_spring mvc_spring mvc hiber

    在当今的互联网开发中,Spring MVC 和 Hibernate 是两个非常重要的框架,它们在企业级应用开发中起着关键作用。本项目"Spring MVC bbs"结合了Spring3和Hibernate,构建了一个功能完备的BBS论坛系统,适合进行二次...

Global site tag (gtag.js) - Google Analytics