`
朝风一旭
  • 浏览: 2661 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

spring mvc 和struts2,struts的比较

阅读更多

                           第一讲
     我们先来讲讲mvc吧,spring mvc ,struts2,struts 都是mvc框架。 
    对于现有较成熟的Model-View-Control(MVC)框架而言,其解决的主要问题无外乎下
面几部分:
1.将Web页面中的输入元素封装为一个(请求)数据对象。
2.根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。
3.逻辑处理单元完成运算后,返回一个结果数据对象。
4.将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。

我们先来看看spring mvc 的操作过程。

  

    配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" id="WebApp_ID">
  <display-name>web-board-backend</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/service.xml, /WEB-INF/action-servlet.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>/jsp/login.jsp</welcome-file>
  </welcome-file-list>
  <session-config>
    <session-timeout>1440</session-timeout>
  </session-config>
</web-app>

     action-servlet

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
		<property name="prefix" value="/"/>
		<property name="suffix" value=".jsp"/>
	</bean>

	<bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

	<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="*">MessageController</prop>
			</props>
		</property>
	</bean>

	<bean id="MessageController" class="com.app.boardbackend.ui.html.MessageController">
		<property name="methodNameResolver">
			<bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
				<property name="mappings">
					<props>
						<prop key="list.do">list</prop>
						<prop key="delete.do">remove</prop>
                               </property>
                   </bean>
		</property>
		<property name="messageService">
			<ref bean="messageService"/>
		</property>
	</bean>
</beans>

     上面颜色的必须统一   

 servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">


	<bean id="messageDAO" class="com.app.boardbackend.common.dao.MessageDAOImpl"></bean>

	<bean id="messageService" class="com.downjoy.app.boardbackend.common.service.MessageServiceImpl">
		<property name="messageDAO" ref="messageDAO"/>
  </bean>

</beans>
 

      配置文件写好了

    上面的三个文件可以放到WEB-INF的目录下。

      写好配置文件后 我们就可以写java'代码了

package com.downjoy.app.boardbackend.ui.html;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.downjoy.app.boardbackend.common.exception.WebBoardBackendException;
import com.downjoy.app.boardbackend.common.service.MessageService;
import com.downjoy.app.boardbackend.common.to.CollectionTO;
import com.downjoy.app.boardbackend.common.to.MessageSearchCriteriaTO;
import com.downjoy.app.boardbackend.common.to.MessageTO;
import com.yupstudio.lib.webutil.WebStringUtil;
/**
 * 留言板后台Controller层
 *
 */
public class MessageController extends MultiActionController {

    private static final WebStringUtil webUtil=WebStringUtil.getInstance();

    private MessageService messageService;

    public MessageService getMessageService() {
        return messageService;
    }

    public void setMessageService(MessageService messageService) {
        this.messageService=messageService;
    }
    /**
     * 列出留言信息
     * @param request
     * @param response
     * @return ModelAndView
     * @throws WebBoardBackendException
     */
    public ModelAndView list(HttpServletRequest request, HttpServletResponse response) throws WebBoardBackendException {
        Map<String, Object> model=new HashMap<String, Object>();
        int pageNo=webUtil.getInt(request, "pageNum");
        int pageSize=webUtil.getInt(request, "numPerPage");
        String keyword=webUtil.getString(request, "keyword");
        MessageSearchCriteriaTO criteria=new MessageSearchCriteriaTO();
        criteria.setKeyword(keyword);
        criteria.setPageNo(pageNo);
        criteria.setPageSize(pageSize);
        CollectionTO<MessageTO> col=messageService.ListMessagesByCriteria(criteria);
        
        List<MessageTO> messages=null;
        int pageCount=0;
        if(col != null && col.size() != 0) {
            messages=col.getList();
            pageCount=col.getPageCnt();
            pageNo=pageNo > pageCount ? pageCount : pageNo;
        }
        model.put("messages", messages);
        model.put("pageNo", pageNo);
        model.put("pageSize", pageSize);
        return new ModelAndView("reply_list", "model", model);
    }
}

 

在webRoot 下有一个reply_list.jsp最终数据返回给这个jsp。

 

这是一个小列子,接下来根据这个例子分析,spring mvc的执行过程。

分享到:
评论
2 楼 朝风一旭 2012-09-06  
嗯 会讲的
1 楼 daichao1225 2012-09-06  
来点分页的讲解 啊

相关推荐

    spring webmvc struts 2.5 很难找的依赖包

    spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 ...

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    总结来说,Struts1、Struts2和Spring MVC各有优劣,选择哪个框架主要取决于项目需求、团队熟悉程度以及对框架特性的偏好。在现代Java Web开发中,Spring MVC因其灵活性和强大的功能,成为更受欢迎的选择。

    spring-webmvc-struts.jar

    spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包

    Spring+Spring MVC+Struts+hibernate开发摄影平台完整版系统

    接下来,Struts是另一款流行的MVC框架,虽然在Spring MVC广泛应用的现在,Struts的使用可能较少,但在本系统中,Struts可能被用来增强特定的控制器功能,或者作为Spring MVC的补充,提供额外的Action类和拦截器,以...

    spring-webmvc-struts.jar aspectjweaver.jar

    标题中的"spring-webmvc-struts.jar"和"aspectjweaver.jar"是两个重要的Java库文件,它们在Java Web开发中扮演着核心角色,特别是对于基于Spring框架的应用程序。现在让我们详细了解一下这两个库以及它们在实际开发...

    Spring3-MVC与Struts2.x比较.pdf

    Spring MVC 和 Struts2.x 是两个广泛使用的Java Web开发框架,它们都在模型-视图-控制器(MVC)架构中提供了强大的支持。Spring MVC 以其灵活性、高效性和可扩展性在近年来逐渐受到开发者青睐,尤其是在Spring 3.0...

    Struts和Spring两种MVC框架究竟有什么不同呢?

    Struts和Spring是Java Web开发中两种非常流行的MVC(Model-View-Controller)框架,它们都致力于解耦应用程序的业务逻辑和展示层,但各自有着不同的设计哲学和功能特性。 Struts是Apache软件基金会的一个开源项目,...

    ACCP 5.0 Y2 MVC和Struts2本书的选择题答案

    在IT行业中,MVC(Model-View-Controller)和Struts2是两种广泛使用的Web应用程序开发框架,尤其在Java平台上。ACCP(Advanced Certified Computer Professional)5.0 Y2是某培训机构的一个课程版本,该课程可能涵盖...

    Spring3-MVC与Struts2.x比较.docx

    Spring MVC 和 Struts2.x 是两个广泛使用的Java Web开发中的MVC框架,它们各自具有不同的特点和优势。这里我们将深入探讨这两个框架的核心组件、工作原理以及它们之间的对比。 首先,让我们了解一下Spring MVC。...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    标题中的"spring.jar"、"spring-webmvc-struts.jar"和"spring-webmvc.jar"都是Spring框架相关的Java库文件,通常以.jar结尾的文件是Java的归档文件,包含了类、资源和元数据,用于Java应用程序的运行。这些文件在...

    spring-webmvc-struts-2.5.6-sources.jar

    spring-webmvc-struts-2.5.6-sources

    MVC与Struts简介

    然而,随着新的技术如Spring MVC的出现,Struts2逐渐被许多开发者认为是过时的技术,因为它相对较重且配置较为繁琐,但作为一个历史性的技术,它对于理解现代Web框架的设计原理仍然具有重要意义。

    spring3+struts2+ibatis

    Spring3、Struts2和Ibatis的整合,构建了一个完整的MVC+持久层架构。Spring作为整个应用的调度中心,管理所有对象的生命周期,包括Struts2的Action和Ibatis的SqlSession。Struts2负责接收HTTP请求,调用Action执行...

    struts VS spring mvc

    2. **性能**:Spring MVC 在性能方面优于 Struts,这得益于其更轻量级的设计和更好的优化。 3. **易用性**:两者都有各自的优点。Struts 由于历史悠久,文档和教程丰富,对于初学者来说上手更容易;而 Spring MVC ...

Global site tag (gtag.js) - Google Analytics