博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scope=“prototype”和scope=“session”
阅读量:5103 次
发布时间:2019-06-13

本文共 674 字,大约阅读时间需要 2 分钟。

1.struts2为每个线程提供一个action实例,多线程访问时不会出现问题。当使用spring管理struts2的action实例对象时,scope必须配置为prototype或者session,若配置为singleton则多线程访问时会出现问题,例如actionMessage,fieldError等信息会累加,多用户访问时有的用户访问到的是另一个用户的数据。 

2.scope=“prototype”是为每个请求提供一个action实例(与struts2的机制是一样的)。 
scope=“session”是为每个会话提供一个action实例。 
3.通常使用prototype,即让spring容器为每个请求提供一个action实例,好处是服务器端不用维护用户状态信息,否则使用session服务器端必须存储状态信息,用户多时占用服务器端内存过多。使用prototype时,必须自己在客户端维护用户的状态,每次访问服务端时将相应状态信息提交给服务器。 
例如scope=“prototype”时,页面一般< input name="id" type="hidden" value="${id}"/>用来存储用户的id信息,访问action时提交到server端供action中函数使用。而使用scope=“session”时,页面不必使用hidden的对象隐藏id信息,只要服务端获取过用户的id,action中的id属性即会保存这个信息。

转载于:https://www.cnblogs.com/Bruce3555/p/5710241.html

你可能感兴趣的文章
java类的定义
查看>>
ADO.NET 【攻击及防御】
查看>>
程序员vim的最终解决方案
查看>>
数据库
查看>>
Android Studio 常用快捷键
查看>>
Oracle分配内存的基本单位:Granule(粒度)
查看>>
NetOps Defined
查看>>
谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
查看>>
struts
查看>>
Linux测试磁盘能力
查看>>
License制作
查看>>
springboot中spring.profiles.active来引入多个properties文件 & Springboot获取容器中对象
查看>>
算法导论chapter2-2.1 Insertion sort
查看>>
VUE 注册验证码页面实例
查看>>
Linux下如何查找sqlnet.ora 和listener.ora 和tnsnames.ora 配置文件的目录
查看>>
Java知识系统回顾整理01基础03变量04类型转换
查看>>
object 整理中..... 顶级页面
查看>>
通过管道实现文件的拷贝
查看>>
Android 简单登陆 涉及 Button CheckBox TextView EditText简单应用
查看>>
回溯算法解迷宫问题(java版)
查看>>