• 注册
当前位置:1313e > 默认分类 >正文

【SSH 基金会】SSH框架--struts进一步的详细解释(两)


继上篇博客        

既然我们知道了不使用struts给我们带来这么多弊端,那么以下我们来看看struts是怎样封装的。怎么解决我们出现的问题的?

 

先来说一下struts的基本流程,帮助大家理解以下的代码:

 

 Struts基本简要流程例如以下:

     1、client浏览器发出HTTP请求。

     2、依据web.xml配置。该请求被FilterDispatcher接收。

     3、依据struts.xml配置。找到须要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。

     4、Action调用业务逻辑组件处理业务逻辑,这一步包括表单验证。

     5、Action运行完成,依据struts.xml中的配置找到相应的返回结果result,并跳转到相应页面。

     6、返回HTTP响应到client浏览器。

 

演示样例分析(使用struts

 

配置文件web.xml

struts2org.apache.struts2.dispatcher.FilterDispatcherstruts2/*	

add.jsp

<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
加入页面

Struts.xml


show.jsp			success.jsperror.jsp

GradeAction.java


public class GradeAction {private Grade grade;private List gradeList;public Grade getGrade() {return grade;}public void setGrade(Grade grade) {this.grade = grade;}public List getGradeList() {return gradeList;}public void setGradeList(List gradeList) {this.gradeList = gradeList;}public String execute() throws Exception{GradeDao gradeDao=new GradeDao();gradeDao.insertGrade(grade);ArrayList gradeList = (ArrayList) gradeDao.listGrade();this.setGradeList(gradeList);return "show";}

单纯的看,这两套代码(结合上篇博客来看),从代码量上来看,都是完毕相同的加入功能,使用struts后,明显代码量降低了很多。并且每一个操作完毕后的跳转页都配置到了配置文件里,这样给我们系统的维护带来了极大的便利。它相当于从界面到action传递的过程中,是以对象的方式传递的,就不须要我们像之前的操作那样一个字段一个字段的去获取。

 

当然另一点,就是struts是怎样解决servlet过多的问题的?


Struts.xml


 /success.jsp/error.jsp/success.jsp/error.jsp

public class UserManagerAction extends ActionSupport {private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String addUser(){System.out.println("---------AddUser()-------");return "success";}public String modifyUser(){System.out.println("---------ModifyUser()-------");return "success";}public String delUser(){System.out.println("---------DelUser()-------");return "success";}
}

servlet的关系

 

     前面我们说对于Model 2模型来说。Servlet过多,转向频繁。流程。配置等不易集中管理,那么strutsServlet有什么关系?它怎么就能解决Servlet的这些问题呢?

 

     能够说Struts2本质还是一个Servlet。仅仅是对Servlet进一步的封装罢了

   

     对于解决这个问题来说:

     打个例如:做Web项目,好比建房子。

     Servlet好比木材。用一根根的木材搭,也可盖起房子。仅仅是速度慢而已。

     Struts2好比是用木材做好的一个房子大概结构,要建房子时,仅仅需把它拿过来,再往其里面添砖加瓦,修修补补,就能非常快盖好房子,这要比直接使用Servlet要快得多

 

 

以上仅仅是我对struts的简单理解,用一句话概括,struts就是将某些功能进行提取,然后做了一个封装。能让我们更好的使用(框架)。

当然对于它的优势还须要我们在以后做项目的过程中慢慢体会!





版权声明:本文博客原创文章。博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/mfrbuaa/p/4640750.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录