ssh框架跳转404_框架篇引导学习(一)

40e510204c6ee58a071283fdd1d2ab06.gif

ebfd6d65e0044a75e15085c1f2cf9ae1.png

一、Struts1的运行原理

在启动时通过前端总控制器ActionServlet加载struts-config.xml并进行解析,当用户在jsp页面发送请求被struts1的核心控制器ActionServlet接收,ActionServlet在用户请求时将请求参数放到对应的ActionForm对象中的成员变量中,然后ActionServlet则会根据struts-config.xml中的映射关系找到相应的Action中的方法,将对应的ActionForm一并传给这个Action中的方法里,然后执行相应的业务逻辑操作,最后就根据ActionMapping的findforward方法返回一个ActionForward,之后在struts-config.xml中找到与之对应的forward标签,根据它的配置路径找到对应的jsp页面。

二、Struts2的运行原理

1、tomcat 启动的时候会加载 web.xml 、核心控制器 FilterDispatcher 会加载并解析 struts.xml

2、客户端会发送一个请求到 action 、FilterDispatcher  会根据后缀名进行拦截

3、FilterDispatcher根据 struts.xml  的配置文件信息 找到 某个action 对应的某个类里的指定方法

4、执行相关的业务逻辑最后返回 一个String

5、里配置 name的属性值与返回的String 进行匹配,跳转到指定的jsp 页面

三、Spring MVC运行原理

整个处理过程从一个HTTP请求开始:

1.Tomcat在启动时加载解析web.xml,找到spring mvc的前端总控制器DispatcherServlet,并且通过DispatcherServlet来加载相关的配置文件信息。

2.DispatcherServlet接收到客户端请求,找到对应HandlerMapping,根据映射规则,找到对应的处理器(Handler)。

3.调用相应处理器中的处理方法,处理该请求后,会返回一个ModelAndView。

4.DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将要显示的数据传给对应的视图,最后显示给用户。

四、Struts1.x与Struts2.x的区别

Struts 2以WebWork为核心,

采用拦截器的机制来处理用户的请求,struts1严重依赖于servletAPI,

属于侵入性框架,struts2不严重依赖于servletAPI,属于非侵入型框架。

线程模型方面:

Struts1的Action是单实例的,

一个Action的实例处理所有的请求。

Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象),

没有线程安全方面的问题

封装请求参数:

Struts1中强制使用ActionForm对象封装请求的参数。

Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。

struts1的前端总控制器(核心总控制器)为ActionServlet,

struts2的前端总控制器(核心总控制器)为FilterDispather

五、Spring MVC、struts1和struts2区别

1.spring mvc 单例 非线程安全

  struts1单例 非线程安全

  struts2线程安全对每个请求都产生一个实例

2.spring mvc的入口是servlet,而struts2是filter

  spring 的前端总控制器为 DispatcherServlet

  struts2 的前端总控制器为 FilterDispatcher

  struts1 的前端总控制器为 actionServlet

3. 参数传递:struts是在接受参数的时候,

可以用属性来接受参数,这就说明参数是让多个方法共享的。

springmvc 用方法来接受参数

4.spring mvc是基于方法的设计,而sturts是基于类

六、Struts2中result中的type类型

1.dispatcher:它是默认的,用来转向页面,通常处理JSP

2.redirect:将用户重定向到一个已配置好的URL

3.redirectAction:将用户重定向到一个已定义好的action

4.chain:将action和另外一个action链接起来

5.freemarker:呈现Freemarker模板

6.httpheader:返回一个已配置好的HTTP头信息响应

7.stream:向浏览器发送InputSream对象对下载的内容和图片非常有用

8.velocity:呈现Velocity模板

9.xslt:该XML可以通过XSL模板进行转换

10.plaintext:显示原始文件内容,例如文件源代码

七、Struts2标签

首先需要引用

1.判断标签 后面可跟

2.迭代标签

3.引入标签 可以把一个JSP页面或者servlet引入一个页面中

4.输出标签

5.标签赋予变量一个特定范围内的值

6. 表单标签

7.文本域标签

8.下拉标签

9.声明一个url的路径

最常用的是:

判断

循环

输出

八、SSI整合

1、Action继承于Actionsupport

2、引入struts-spring-plugin.jar包,从而完成struts和spring的整合

3、在struts2的action中注入service,保证service的名字和配置文件中的一致,并生成get,set方法

4、Dao层继承于SqlMapClientDaoSupport

5、在dao层的配置文件中注入sqlMapClient

九、SSH整合

1、Action继承于ActionSupport

2、引入struts-spring-plugin.jar包,从而完成struts和spring的整合

3、在struts2的action中注入service,保证service的名字和配置文件中的一致,并生成get,set方法

4、Dao层继承于hibernateDaoSupport

5、在dao层的配置文件中注入sessionFactory

Hibernate中的两大配置文件:

*.hbm.xml:主键生成策略,映射关系,一对多,一对一的关系

Hibernate.cfg.xml:方言(用哪个数据库),数据库连接信息,包含*.hbm.xml内容,映射文件,也可以配事务

十、Spring MVC整合

1.首先,要在web.xml里面配置SpringMVC的核心控制器,DispatcherServlet,对指定的后缀请求进行拦截。

2.Controller层要加 @Controller注解,表明该类是MVC的控制层。

3.创建Service接口,给接口加上注解 @Component或者 @Service 表明这是Service业务处理层。

4.在Controller层声明Service变量(属性),给变量(属性) 加上 @Autowired注解,通过自动绑定机制将Service注入到Controller。 (:@Autowired默认是ByType,如果想根据属性名注入,那么就再加上注解 @Resource(name="属性名"))。

5.在Controller层的方法上加上注解 @RequestMapping("requestAddress") 表明该方法的请求地址。

6.Dao层要加上注解 @Repository 表明这是数据库持久层。

7.同样将dao实例注入到service层中。

8.配置视图解析器 "InternalResourceViewResolver",对处理后的跳转进行统一配置。

欢迎关注“Java引导者”,我们分享最有价值的Java干货文章,助力您成为有思想的Java开发工程师!

cda14bf9d79f0a25f6cf7b05fc010fd8.gif

b824b9b47f4013c1678886fde933dbe5.png你点的每个好看,我都认真当成了喜欢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值