struts2和servlet区别

主要整合Hibernate技术

1、分析的servlet

   客户端--->web容器-->web.xml-->servlet来处理 ----->model-->数据库

   web.xml返回信息)

1//转发

request.setAttribute(“username”,username);(存入)

request. getRequestDispatcher (“manager/index.jps”).forward(request,response);

然后在jsp页面中使用  ${username}显示

2//重定向

response.sendRiedirect();

2、分析 struts2

客户端----->web容器--->web.xml-->struts2过滤器--->struts.xml--->Action--->model--->数据库

Action返回信息  Action 要想把数据传递给jsp

3Struts2中结果集类型

1)每个action方法都返回一个String类型的值,struts一次请求返回什么值是由这个值确定的。

2)在配置文件中,每一个action元素的配置都必须有result元素,每一个result对应一个action的返回值。

3Result有两个属性:

name:结果的名字,和action中的返回值一样,默认值为success;

type:响应结果类型,默认值为dispatcher.   

4)说明:

1、  从上述可以看出总共10种类型

2、  默认类型为ServletDispatcherResult即转发。

3、  结果类型可以是这10种结果类型的任意一种。

4、主要介绍几种类型:

1Dispatcher类型是最常用的结果类型,也是struts框架默认的结果类型。

在配置文件中,可以有两种写法:

第一种:

<result type=”dispatcher”name=”success”>/manager/index.jsp</result>

第二种:

<result name=”success”type=”dispatcher”>

<param name=”location”>/manager/index.jsp</param></result>

2Redirect类型属于重定向。如果用redirect类型,则在reuqest作用域的值不能传递到前台。

3redirectAction类型把结果类型重新定向到action可以接受两种参数

actionName: action的名字

namespace:命名空间

例子

第一种方式:

<result name="success" type="redirectAction">resulttype/redirectactionAction.action</result>

第二种方式:

<result name="success"type="redirectAction">

       <!-- actionName:请求的action的路径

       namespace:如果不写,默认就是请求的action的路径,如果写,路径将被重新赋值-->

       <paramname="actionName">

              resulttype/redirectactionAction.action

       </param>

</result>

 

 

请求的路径

http://localhost:8080/project/csdn/csdn/delete.action?name=aa

 

Namespace=”csdn/csdn/”

<package name=”ss” namespace=”/csdn/csdn”>

       <action=”delete”>

</package>

<package name=”test” namespace=”/csdn”>

<action=”delete”>

</package>

<package name=”sss” namespace=””>

   <action=”delete”>

</package>

 

5Action名称的搜索顺序

1)、获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action

2).首先寻找namespace/path1/path2/path3package,如果存在这个package,则在这个package中寻找名字为testaction,如果不存在这个package则转步骤3

3).寻找namespace/path1/path2package,如果存在这个package,则在这个package中寻找名字为testaction,如果不存在这个package,则转步骤4

4).寻找namespace/path1package,如果存在这个package,则在这个package中寻找名字为testaction,如果仍然不存在这个package,就去默认的namaspacepackage下面去找名字为testaction(默认的命名空间为空字符串""),如果还是找不到,页面提示找不到action

 

Action原型  struts2

Prototype 原型    每次请求都会创建一个新的Action对象    

Singleton 原型    当第一次请求时,创建servlet对象之后每次都使用该对象即可。

 

Servlet的生命周期:创建---init---service---destory

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Struts2和Spring MVC都是Java Web开发框架,它们各自有其特点和适用场景: 1. Struts2 (Struts 2): - Struts 2 是基于ActionServlet的传统MVC架构,它采用了拦截器(Interceptor)的概念,提供了声明式事务管理和事件驱动模型。 - 它使用标签库(TagLib)进行视图数据绑定,支持自定义标签和插件。 - 动态结果(Dynamic Result)使得控制流程更为灵活,但可能对初学者的学习曲线有一定影响。 - 适合于大型企业级应用,特别是那些已经采用遗留Struts 1项目的项目升级。 2. Spring MVC: - Spring MVC 是Spring框架的一部分,是基于Java配置和依赖注入(DI)的MVC模式。 - 它的核心组件包括控制器(Controller)、模型(Model)和视图(View),使用RESTful风格的URL设计更现代。 - Spring MVC 强调轻量级和松耦合,提供强大的AOP支持和事务管理。 - 使用Thymeleaf、Freemarker或JSP等模板引擎处理视图。 - 更适合于需要复杂业务逻辑和依赖管理的现代Web应用开发。 主要区别: - **设计哲学**:Struts2强调传统的MVC,而Spring MVC则更加现代化,注重DI和Java配置。 - **学习曲线**:Spring MVC的学习曲线相对较陡,因为其依赖Spring框架,而Struts2则相对独立。 - **灵活性**:Spring MVC的灵活性更高,如控制器可以单独配置和测试,而Struts2中Action和配置关联紧密。 - **社区支持**:Spring框架的生态系统庞大,Spring MVC社区活跃,资源丰富。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值