标签:请求 对象 页面 Struts2 Action 接收 Servlet 属性
<属性驱动>:将需要用于接收的参数设置为Action的成员属性,仅作了解。
<域驱动>:在页面中利用生成的对象属性调用属性,例如:student.name,student.age,···
执行原理:程序运行时Struts2会在执行的Action中默认生成一个指定的空对象,该对象会被立即初始化(属性值全为默认空值),紧接着会按照先基本数据类型后引用数据类型的顺序执行实体的各setXXX(),最后返回填充数据的实体。
Tips:此时若页面中书写了<s:debug></s:debug>则在巡视执行顺序时会多出现一条获取整个对象属性的语句。
<模型驱动>:为请求Action类实现ModelDriven接口并指定对应的实体类泛型,生成返回对应实体的getModel()后即可在页面中直接获取对象的属性值,较为常用。
Tips:此过程会涉及到struts-default.xml中内置35个拦截器中默认开启的20个拦截器中的ModelDrivenInterceptor。
<集合数据接收>:在Action中定义泛型集合对象接收数据,其原理与域驱动的数据接收原理相同,仅作了解。
示例定义:private List students
示例获取:<s:property value=“students[0].name” /><s:property value=“students[0].age” />
<Action 与 Servlet>
* Action(对象多例):多用户并发进行Web访问时,系统会为每个用户创建一个RegisterAction实例以接收来自不同用户的数据,各用户间的数据各不相同且互不相干,这也说明了Action线程安全。
* Servlet(单例多线程):对于同一个业务Web容器只会创建一个Servlet实例(无法定义成员变量,可为Servlet添加一个自增的成员变量作为该Servlet的访问计数器),该实例允许多个请求(线程)共享,因此Servlet在多线程下并发访问不安全。
标签:请求,对象,页面,Struts2,Action,接收,Servlet,属性 来源: https://blog.csdn.net/qq_44965393/article/details/111933865
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。