用户登录
用户注册

分享至

struts中forwordname

  • 作者: 风一样的春丽酱
  • 来源: 51数据库
  • 2020-06-05

1. Struts1 中 forward 设置

“context relative ”没用过,只知道redirct redirct: 如果设置该属性设定为true,将导致ActionServlet调用HttpServletResponse方法来将结果返回给用户。

当设定为false时,调用的是RequestDispatcher.forward()方法返回结果。 关于这两种方法的区别是这样的,对于forward,是将用户的请求转递给forward的目标。

而对于redirect,所有的用户请求都将丢失。 所以设置 redirect="true" 的时候也能把上下文中的属性传到下个页面 不知道这样说你能不能明白。

2. struts底层怎样实现forward

当ActionServlet把request传给一个Action的时候,是读取/WEB-INF/struts-config文件,根据 中action的path属性找到action的地址,在创建一个Action之前,会调用RequestProcesser的ActionForward()方法,再internalModuleRelativeForward(),再doForward(),在doForward()中用:request.getRequestDispatch("address.jsp").forward(request,response)实现的。

3. 在Struts中,什么是forward的redirect

感觉你的问题问答莫名其妙的哎 简单的解释一下: 这个服务器跳转,即跳转后地址栏没变,其对象封装在RequestDispatcher中;而response.sendRedirect 这个客户端跳转,可以跳到任意一个页面,地址栏发生改变 这个方法封装在response 建议你把javaweb的九大内置对象看一下,包括request session application pageContext page response Exception config out 最常用的几个是:request session application response out 好好看一下,你就明白了 加油。

4. struts1 action中配多个forward有什么作用

在struts- config.xml中<forward name="error" path="/login.jsp"></forward>;默认的是转发处理,转发的特点:是使用同一个 request,而重定向的url地址会改变,而转发的url地址是不变的。重定向是从浏览器跳转的, 等于又发送了一个请求,因此使用的不是同一个request,所以他的 url地址会改变。在这想变为重定向,需要使用另一个属性:redirect="true",设置成true,就变成重定向了。

错误页面是网站发生错误了要跳转到的页面,所以应该使用重定向来实例。让地址也变到错误页面的地址。

<forward name="error" path="/error.jsp" redirect="true"></forward>

定义全局forward:

使用标签<global-forwards>;来定义全局forward:

<global-forwards>

<forward name="login" path="/login.jsp" redirect="true"/>

</global-forwards>

全局forward是都可以访问的,但是当需要使用forward时,struts自动按就近原则来选 择。当局部也有定义时,就按照局部的来转。

所以对以公共的内容,就可以定义到全局里,例如错误和登录处理等。

动态ActionForward:

静态ActionForward在运行期改不了,采用动态ActionForward,在运行期是可以 改动的。

String page = request.getParameter("page");

ActionForward af = new ActionForward("/page" + page + ".jsp?name=wenhq",true);

// true不使用转向,默认是false代表转向

return af;

静态的 ActionForward的url是不能加参数的,而使用动态的ActionForward,则可以加参数。

1、正确使用转发和重定向对于网站的url显示会显得更加友好.

2、适当的全局ActionForward 会配置方便很多。

3、善于使用动态ActionForward,也会给程序带来便利。

No related posts.

5. struts中的一条for语句,看不懂,请高手指教

":"前边是一个数据类型的变量,后边是一个集合(包含数组、list、map等都可以元素类型跟前边的数据类型一样就行了)。

例如:int[] a = int[10]; ----> for(int i:a)(i为a中的一个元素)

List<Integer> l = new ArrayList<Integer>();---->for(Integer i:l)(i为l中的一个元素)

Map<String,Integer> m=new HashMap<String,Integer>()

for(String s:m.keySet())(s为m中的一个key值)

for(Integer i:m.values())(i为m中的一个value值)。

这是JDK1.5的新特性挺好用的。

6. 请问struts中的actionform位置在哪里

ActionForm属于MVC层的M层,是在服务器端。

它是根据struts-config.xml配置文件

<form-beans/>;中<form-bean name="" type="" />

<action-mapping/>;中<action name="" />;标签相映射

把表单传来的request封装到一个ActionForm bean中去(并且ActionForm bean中有与业务逻辑无关的get,set方法)。

工作流程:

request-->ActionServlet-->ActionForm-->Action-->*.jsp

从客户端发过来的请求,会先通过struts-config.xml配置文件映射到ActionForm中,这时系统会检查内存中有没有ActionForm存在,如果没有,就new一个,并调用set方法,把request封装到ActionForm中去。然后把ActionForm传到Action类中去,系统调用其中的execute(ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse)

方法,从ActionForm对象中取得request的数据,转发到相应的Java bean中去进行操作,最后forward到*.jsp,生成html页面,发送回客户端。

转载请注明出处51数据库 » struts中forwordname

软件
前端设计
程序设计
Java相关