理解struts 在mvc中的角色

、引入struts包

、在WEB-INF目录下编写简单的login.jsp页面(V层);

<form action="/Strutstest/login.do" method="post">

U:<input type="text" name="username"/><br/>

P:<input type="password" name="password"/><br/>

<input type="submit" value="login"/>

</form>

、创建用户表单类UserForm存放数据(M层,类似domian/javabean层):

Java代码 

/**

* 用户表单类,用于填充数据

*/

package com.lh.forms;

import org.apache.struts.action.ActionForm;

public class UserForm extends ActionForm {

//在这里为了规范:定义属性名时应该和JSP页面的控件名称一样

//实际只需保证set和get方法和属性名有关联 set属性名

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;

}

}

、编写LoginAction,继承Action,对应UserForm表单。(C层,处理请求,类似mvc中servlet)

Java代码 

package com.lh.actions

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import  com.lh.forms.UserForm;

/**

* 登陆Action,用于处理登陆请求

*/

public class LoginAction extends Action{

//execute自动调用,

@Override

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

//将Form强转为UserForm

UserForm userForm = (UserForm)form;

String password = userForm.getPassword();

if("132".equals(password))

return mapping.findForward("OK");

else

return mapping.findForward("ON");

}

}

、在WEB-INF下新建一个名为config的文件夹,在config文件夹里面创建名为struts-config.xml文件(建立Action和ActionForm 的对应关系);

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>

<!-- name为表单名字,可以随意,建议取名:表单类名的小写 -->

<!-- type用于指定表单类的全路径 -->

<form-bean name="userForm" type="com.lh.forms.UserForm"></form-bean>

</form-beans>

<!-- 配置action -->

<action-mappings>

<!-- path:将来访问action的uri name必须和表单名相同,用于关联某个表单 type:指定action的全路径-->

<!-- scope:指定该action对应的表单对象的生命周期为request级别 ,默认为session-->

<action path="/login" name="userForm" scope="request" type="com.lh.actions.LoginAction">

<!-- 这里配置跳转关系 name:结果名称 path:转发页面-->

<forward name="ok" path="/WEB-INF/ok.jsp"></forward>

<forward name="error" path="/WEB-INF/error.jsp"></forward>

</action>

</action-mappings>

</struts-config>

、配置WEB-INF目录下的web.xml文件,配置struts入口

Xml代码 

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/config/struts-config.xml</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

、最后在WEB-INF目录下编写ok.jsp和error.jsp页面

Html代码

<body>  Oh_ my god!  </body>

时间: 2024-10-03 22:54:49

理解struts 在mvc中的角色的相关文章

理解ASP.NET MVC中的ActionResult

通常我们在一个ASP.NET MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类,因此实际返回的类型是该抽象类的子类. Ø ActionResult及其子类的UML图   有关ActionResult及其子类的UML图如下所示: 由于图片比较大,所以在浏览器中看起来可能比较小,也不太方便,大家可以点击这里下载大图,使用专业的图片浏览器打开来看. 下载大图 Ø ActionRes

理解ASP.NET MVC中的ModelBinder

模型绑定的本质 任何控制器方法的执行都受action invoker组件(下文用invoker代替)控制.对于每个Action方法的参数,这个invoker组件都会获取一个Model Binder Object(模型绑定器对象).Model Binder的职责包括为Action方法参数寻找一个可能的值(从HTTP请求上下文).每个参数都可以绑定到不同的Model Binder:但是大部分情况我们都使用的是默认模型绑定器-DefaultModelBinder(如果我们没有显式设置使用自定义的Mod

理解ASP.NET MVC中的Razor视图引擎

什么是 Razor ? Razor 是一种允许向网页中嵌入基于服务器的代码(C#)的标记语法,是微软针对ASP.NET MVC推出的模板引擎. C# 的主要 Razor 语法规则 Razor 代码封装于 @{ ... } 中 行内表达式(变量和函数)以 @ 开头 代码语句以分号结尾 字符串由引号包围 C# 代码对大小写敏感 C# 文件的扩展名是 .cshtml <!-- 单行代码块 --> @{ var myMessage = "Hello World"; } <!-

AspNet MVC中各种上下文理解

0  前言 AspNet MVC中比较重要的上下文,有如下: 核心的上下文有HttpContext(请求上下文),ControllerContext(控制器上下文) 过滤器有关有五个的上下文ActionExecutingContext,ActionExecutedContext,ResultExecutingContext,ResultExecutedContext,ExceptionContext 视图相关的上下文ViewContext 这些上下文之间的关系如下图所示 说明: 1.Contro

Asp.net MVC中Route的理解

在Asp.net MVC中,对于一个请求,是通过路由找到对应的Controller类中的对应Action,并与model进行交互,最后返回到view. 就是说Asp.net MVC是用Route来定义各种URL到实际处理程序之间的映射的. 在处理请求之前,在Global.asax.cs文件的Application_Start中注册路由 public class MvcApplication : System.Web.HttpApplication { protected void Applica

ASP.NET MVC中的控制器激活与反射之间的联系(帮助理解)

ASP.NET Mvc是ASP.NET的一个框架,同样也是基于管道的设计结构.HttpModule和HttpHandler是ASP.NET的两个重要组件,同样的在Mvc中也是非常重要的组件.在应用程序中的管道设计结构下实际上是由一系列的事件组合在一起的.这些事件可以有HttpModule来订阅,订阅的时机是在应用程序加载配置文件的时候,订阅web.config中httomodules配置的相关事件.而HttpHandler的作用就是最终的真正执行. 激活前准备首先要说的是路由系统一个Web应用程

转载 ASP.NET MVC中使用ASP.NET Identity - 新西兰程序员 - 博客园

转载原地址: http://blog.jobbole.com/90695/ 在之前的文章中,我为大家介绍了OWIN和Katana,有了对它们的基本了解后,才能更好的去学习ASP.NET Identity,因为它已经对OWIN 有了良好的集成. 在这篇文章中,我主要关注ASP.NET Identity的建立和使用,包括基础类的搭建和用户管理功能的实现-- http://myusermanagement.azurewebsites.net/Account/Login?ReturnUrl=%2F 点此

MVC中权限的知识点及具体实现代码

一:知识点部分 权限是做网页经常要涉及到的一个知识点,在使用MVC做权限设计时需要先了解以下知识: MVC中Url的执行是按照Controller->Action->View页面,但是我们经常需要在函数执行所指定的Action之前或者action方法之后处理一些逻辑,为了处理这些逻辑,ASP.NET MVC允许你创建action过滤器Filter,我们都知道在Action上使用的每一个 [Attribute]大都是自定义的Filter. mvc提供四种类型的Filter接口:IActionFi

在Spring MVC中使用Apache Shiro安全框架

我们在这里将对一个集成了Spring MVC+Hibernate+Apache Shiro的项目进行了一个简单说明.这个项目将展示如何在Spring MVC 中使用Apache Shiro来构建我们的安全框架. [TOC] 阅读文章前,您需要做以下准备: Maven 3环境Mysql-5.6+JDK1.7+git环境git.oschina.net帐号Apache Tomcat 7+您熟练掌握的编辑工具,推荐使用InterlliJ IDEA 14+开始项目地址git.oschina.net 项目地