【主要整合Hibernate技术】

分析的servlet

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

  <--------------------------------|

  request.setAttribute(“username”,username);

  //转发

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

  ---在jsp页面中  ${username}

  //重定向

  response.sendRiedirect();

  分析 struts2

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

  <------------------------------------------------------------------------------------|

  Action 要想把数据传递给jsp

  private String username;

  public String getUsername(){return username;}

  通过什么方式传递

  <result

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

  Jsp =---〉 ${username}

  Struts2中结果集类型

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

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

  3、 Result有两个属性:

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

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

  在下面找到struts-default.xml文件中,如下面所示:

  说明:

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

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

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

  Dispatcher类型

  (1)、 说明

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

  (2)、 例子

  页面参照:/manager/index.jsp

  Action参照:AdminAction

  配置文件:struts.xml

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

  第一种写法:

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

  第二种写法:

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

  <param name="location">/manager/index.jsp</param>

  </result></result>

  下面的图说明了location的来历:

  查看源码:

  }

  父类中:

  有一个属性并且提供了set方法

  }

  6.2.2 Redirect类型

  (1)、 说明

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

  redirectAction类型

  (1)、说明

  1、 把结果类型重新定向到action

  2、 可以接受两种参数

  a)  actionName: action的名字

  b)  namespace:命名空间

  第一种方式:

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

  第二种方式:

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

  <!--

  actionName:

  请求的action的路径

  namespace:

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

  -->

  <param    name="actionName">

  resulttype/redirectactionAction.action

  </param>

  </result>

  (2)、 例子

  第一种方式:

  <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>

  请求的路径

  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>

  Action名称的搜索顺序

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

  2.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3;

  3.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,则转步骤4;

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

  Action原型  struts2

  Prototype 原型     每次请求都会创建一个新的XP系统下载Action对象

  Servlet

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

  Servlet的生命周期

  创建---init---service---destory

posted on 2013-08-02 09:30  潇洒kman  阅读(166)  评论(0编辑  收藏  举报