- 浏览: 639630 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
liuche20083736:
非常好
从问题看本质: 研究TCP close_wait的内幕 -
xiaopohai85707:
优化算法与原来需求不符
过滤字符的性能调优?挤一挤还是有的 -
kmy_白衣:
生成的area图有时候 标签的数值和图标上看上去的数值不一致。 ...
OpenFlashChart2之恶心文档 -
tom&jerry:
大神,请教一个问题,按名称排序为何无效,用的2.4.3 XPA ...
深入浅出jackrabbit之十三 查询之AST和QT -
jd2bs:
改成精确匹配可以了< filter-mapping &g ...
细谈Ehcache页面缓存的使用
[size=medium]之前和大家讨论了struts2.0中struts.i18n.encoding参数的作用,但是由于自己的不严谨的态度使自己得出了片面得结论,在此表示道歉.当然我们程序员的目的只有一个,就是寻找真相.所以下面我会和大家一起来重新理解struts.i18n.encoding参数的含义.
下面我从一个例子来重新审视这个参数的作用.首先我们来做一个实验,看看改参数是否用在了请求流程,是否用在了返回流程.首先下载struts2.0所有的包,我们会得到一个blank的例子程序.
首先有三个返回类型:
接着定义action:
访问:
http://localhost:8080/demo/test!jsp.action
http://localhost:8080/demo/test!freemarker.action
http://localhost:8080/demo/test!velocity.action
看上去返回流的编码没有变化,都是iso-8859-1.
struts.i18n.encoding换成GBK之后,3个页面的requestEncoding:都变成了requestEncoding:GBK,也就是该参数确实用在了请求流程中.
而且response的encoding还是iso-8859-1,看到这个结果可能有人会产生疑惑,不是说这个参数可以用在返回流中的吗,为什么没有体现出来呢?
其实问题出在一个时间上,但是请大家看看HelloWorldAction里的代码,其实是有问题的,因为在check方法是在action里的方法里调用的.而这个时候没有执行到result,struts2.0会在result中会设置response的一些参数(如果需要设置的话),所以这个时候的response中的encoding其实不是response最终的encoding.如何才能看到response中最终的encoding呢,只有在result被执行之后.
于是下面我们写一个filter.如下:
然后在web.xml中配置在struts2的filter之前:
然后分别请求
http://localhost:8080/demo/test!jsp.action
http://localhost:8080/demo/test!freemarker.action
http://localhost:8080/demo/test!velocity.action
由此可见在freemarker和velocity中struts.i18n.encoding确实被用来作为response返回流中content-type的charset值.
那么为什么jsp不是这样的呢.
因为jsp并不是模板,而是一个类,在真正运行的时候,servlet容器会把jsp编译成一个类.我们的HelloWorld.jsp就变成了HelloWorld_jsp.java,在这个类中我们可以看到如下代码:
修改jsp中@page标签中的charset为GBK之后,控制台也输出了responseEncoding:GBK
这说明,在jsp中,返回流的参数是由jsp的@page标签指定的,而不是有truts.i18n.encoding指定的.
由此可见, struts.i18n.encoding确实用在了请求和返回两个阶段,而且在返回阶段不同的view技术可能使用或者不使用struts.i18n.encoding,freemarker和velocity会以该值作为返回流的charset,而jsp会以页面上的@page标签中的charset作为返回流的charset.
至于源代码,它们分别在VelocityResult,freemarkermanager,dispatcher, FilterDispatcher,大家有兴趣可以自行查看.
对于之前误导大家认为该参数只用在返回流程中,我向大家说一声对不起.从这件事情中我也学习到很多,尤其是态度上,之前做实验的时候发现这个参数用在一个地方,便认为它只会用在这个地方,但是事实上这种想法是不对的,它用在一个地方不代表不能用在另外一个地方.我们应该抱着更为严谨的态度去看待所有的问题,其实当时只要在源码里search “struts.i18n.encoding”这个字符串就会立刻得到完整的结论,但是正因为自己不严谨的态度导致之前作出了片面的结论.
最后共享一些我放在之前放在一边的座右铭:态度决定高度,所以不管做什么事情都要先端正自己的态度,希望能与大家共勉.
附,由于ahuaxuan水平有限,很有可能还是没有挖掘出更深层次的见解,希望您能多指正.
[/size]
设置后同样乱码的问题:
String value = request.getParameter("name");
System.out.println(request.getCharacterEncoding() + " \t " + value);
byte nameb[] = value.getBytes("iso8859_1");
String encode = new String(nameb,"utf-8");
System.out.println(encode);
用上面的方法, 第二行打印的是:utf-8 乱码
第五行打印的是正确的汉字。
可能是和上面引用的内容类似的问题。不过并没有使用StrutsPrepareAndExecuteFilter。
唯一特别的地方就是使用了sitemesh.并用Spring管理Action类。
有哪位朋友有类似的问题?有没有优雅的解决方案。
下面我从一个例子来重新审视这个参数的作用.首先我们来做一个实验,看看改参数是否用在了请求流程,是否用在了返回流程.首先下载struts2.0所有的包,我们会得到一个blank的例子程序.
首先有三个返回类型:
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="false" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.velocity.manager.classname" value="demo.DemoVelocityManager"/> <package name="/" namespace="/" extends="struts-default"> <action name="test" class="demo.HelloWorldAction"> <result name="jsp">helloworld.jsp</result> <result name="velocity" type="velocity">helloworld.vm</result> <result name="freemarker" type="freemarker">helloworld.ftl</result> </action> </package>
接着定义action:
/** * * @author ahuaxuan * @date 2008-6-8 * @version $id$ */ public class HelloWorldAction { private String requestEncoding; private String responseEncoding; public void check() { requestEncoding = ServletActionContext.getRequest().getCharacterEncoding(); responseEncoding = ServletActionContext.getResponse().getCharacterEncoding(); } public String doJsp() { check(); return "jsp"; } public String doVelocity() { check(); return "velocity"; } public String doFreemarker() { check(); return "freemarker"; } }
访问:
http://localhost:8080/demo/test!jsp.action
页面输出:Languages • requestEncoding:UTF-8 • responseEncoding:ISO-8859-1
http://localhost:8080/demo/test!freemarker.action
页面输出:Languages • requestEncoding:UTF-8 • responseEncoding:ISO-8859-1
http://localhost:8080/demo/test!velocity.action
页面输出:Languages • requestEncoding:UTF-8 • responseEncoding:ISO-8859-1
看上去返回流的编码没有变化,都是iso-8859-1.
struts.i18n.encoding换成GBK之后,3个页面的requestEncoding:都变成了requestEncoding:GBK,也就是该参数确实用在了请求流程中.
而且response的encoding还是iso-8859-1,看到这个结果可能有人会产生疑惑,不是说这个参数可以用在返回流中的吗,为什么没有体现出来呢?
其实问题出在一个时间上,但是请大家看看HelloWorldAction里的代码,其实是有问题的,因为在check方法是在action里的方法里调用的.而这个时候没有执行到result,struts2.0会在result中会设置response的一些参数(如果需要设置的话),所以这个时候的response中的encoding其实不是response最终的encoding.如何才能看到response中最终的encoding呢,只有在result被执行之后.
于是下面我们写一个filter.如下:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc) throws IOException, ServletException { fc.doFilter(req, res); System.out.println("responseEncoding : " + res.getCharacterEncoding()); }
然后在web.xml中配置在struts2的filter之前:
<filter-mapping> <filter-name>encode</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后分别请求
http://localhost:8080/demo/test!jsp.action
• 控制台输出: • responseEncoding:UTF-8
http://localhost:8080/demo/test!freemarker.action
控制台输出: • responseEncoding:GBK
http://localhost:8080/demo/test!velocity.action
控制台输出: • responseEncoding:GBK
由此可见在freemarker和velocity中struts.i18n.encoding确实被用来作为response返回流中content-type的charset值.
那么为什么jsp不是这样的呢.
因为jsp并不是模板,而是一个类,在真正运行的时候,servlet容器会把jsp编译成一个类.我们的HelloWorld.jsp就变成了HelloWorld_jsp.java,在这个类中我们可以看到如下代码:
try { _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html; charset=UTF-8"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext;
修改jsp中@page标签中的charset为GBK之后,控制台也输出了responseEncoding:GBK
这说明,在jsp中,返回流的参数是由jsp的@page标签指定的,而不是有truts.i18n.encoding指定的.
由此可见, struts.i18n.encoding确实用在了请求和返回两个阶段,而且在返回阶段不同的view技术可能使用或者不使用struts.i18n.encoding,freemarker和velocity会以该值作为返回流的charset,而jsp会以页面上的@page标签中的charset作为返回流的charset.
至于源代码,它们分别在VelocityResult,freemarkermanager,dispatcher, FilterDispatcher,大家有兴趣可以自行查看.
对于之前误导大家认为该参数只用在返回流程中,我向大家说一声对不起.从这件事情中我也学习到很多,尤其是态度上,之前做实验的时候发现这个参数用在一个地方,便认为它只会用在这个地方,但是事实上这种想法是不对的,它用在一个地方不代表不能用在另外一个地方.我们应该抱着更为严谨的态度去看待所有的问题,其实当时只要在源码里search “struts.i18n.encoding”这个字符串就会立刻得到完整的结论,但是正因为自己不严谨的态度导致之前作出了片面的结论.
最后共享一些我放在之前放在一边的座右铭:态度决定高度,所以不管做什么事情都要先端正自己的态度,希望能与大家共勉.
附,由于ahuaxuan水平有限,很有可能还是没有挖掘出更深层次的见解,希望您能多指正.
[/size]
评论
18 楼
only_java
2009-03-19
web.xml中配置在struts2的filter之前,这是为什么?我把filter放在struts2后面发现还是乱码,放在前面确是正确的!是因为放在前面首先才能把response.encoding设置为utf8?
17 楼
buddhist
2009-03-15
SunOne 写道
如果用StrutsPrepareAndExecuteFilter,struts.i18n.encoding就不一定起作用了。
StrutsPrepareAndExecuteFilter中:
如:
struts.i18n.encoding设置为UTF-8,jsp页面用UTF-8,jsp的form中提交一个中文如username,在action中看request.getParameter("username"),一样是乱码。
因此StrutsPrepareAndExecuteFilter前还是得加个CharacterEncodingFilter的,struts.i18n.encoding对request不起作用,虽然设置了。
StrutsPrepareAndExecuteFilter中:
//这一步已经取出了reuqest的所有parameter prepare.createActionContext(request, response); prepare.assignDispatcherToThread(); //虽然设置了request的encoding,但由于parameter已取出,action中request.getParameter()返回的是设置encoding之前的parameter的值 prepare.setEncodingAndLocale(request, response);
如:
struts.i18n.encoding设置为UTF-8,jsp页面用UTF-8,jsp的form中提交一个中文如username,在action中看request.getParameter("username"),一样是乱码。
因此StrutsPrepareAndExecuteFilter前还是得加个CharacterEncodingFilter的,struts.i18n.encoding对request不起作用,虽然设置了。
设置后同样乱码的问题:
String value = request.getParameter("name");
System.out.println(request.getCharacterEncoding() + " \t " + value);
byte nameb[] = value.getBytes("iso8859_1");
String encode = new String(nameb,"utf-8");
System.out.println(encode);
用上面的方法, 第二行打印的是:utf-8 乱码
第五行打印的是正确的汉字。
可能是和上面引用的内容类似的问题。不过并没有使用StrutsPrepareAndExecuteFilter。
唯一特别的地方就是使用了sitemesh.并用Spring管理Action类。
有哪位朋友有类似的问题?有没有优雅的解决方案。
16 楼
SunOne
2009-03-11
如果用StrutsPrepareAndExecuteFilter,struts.i18n.encoding就不一定起作用了。
StrutsPrepareAndExecuteFilter中:
如:
struts.i18n.encoding设置为UTF-8,jsp页面用UTF-8,jsp的form中提交一个中文如username,在action中看request.getParameter("username"),一样是乱码。
因此StrutsPrepareAndExecuteFilter前还是得加个CharacterEncodingFilter的,struts.i18n.encoding对request不起作用,虽然设置了。
StrutsPrepareAndExecuteFilter中:
//这一步已经取出了reuqest的所有parameter prepare.createActionContext(request, response); prepare.assignDispatcherToThread(); //虽然设置了request的encoding,但由于parameter已取出,action中request.getParameter()返回的是设置encoding之前的parameter的值 prepare.setEncodingAndLocale(request, response);
如:
struts.i18n.encoding设置为UTF-8,jsp页面用UTF-8,jsp的form中提交一个中文如username,在action中看request.getParameter("username"),一样是乱码。
因此StrutsPrepareAndExecuteFilter前还是得加个CharacterEncodingFilter的,struts.i18n.encoding对request不起作用,虽然设置了。
15 楼
qdoxford
2009-03-04
虚心的态度是学习的最好动力,lz真是难得。
14 楼
jerry8086
2009-01-21
我相信楼主写那篇文章,是站在纯技术的角度来讨论问题,但是后面跟贴的好多人进行人身攻击就有欠妥当了。看到楼主后面的声明和今天的这篇文章,我真的感到受益良多。楼主让我们感受到的不仅是你的渊博的知识,还有你对待知识的态度。
13 楼
wmj2003
2009-01-17
赞一个!!!
12 楼
mysyche
2008-12-31
这才是IT届真正的态度。
11 楼
nettang
2008-12-31
先顶下楼主的治学的态度,再慢慢看文章内容
10 楼
kyo100900
2008-12-30
终于完全想弄清楚,为什么 freemarket, velocity的页面从来不用指定编码的原因了。
9 楼
savegod
2008-12-30
用filter来指定字符集是比较常用的做法
8 楼
x03570227
2008-12-30
最近才研究struts2,因为平时都用的utf-8,所以没怎么出过问题,也没去研究过这个参数的具体作用,这次算是彻底搞清楚了,回头再自己动手去做下类似的实验
非常感谢LZ
非常感谢LZ
7 楼
wangbing9577
2008-12-29
很好很强大。学习中。谢谢
6 楼
wangbing9577
2008-12-29
很好很强大。学习中。谢谢
5 楼
ahuaxuan
2008-12-25
还有一种方法:就是jsp返回指定新的result:
不过这种方法貌似还没有你说的filter方法好,因为你的那种方法不仅可以使用于struts,任何使用jsp的场景应该都可以.
public class MyServletDispatcherResult extends StrutsResultSupport { public ServletDispatcherResult() { } public ServletDispatcherResult(String location) { super(location); } public void doExecute(String finalLocation, ActionInvocation invocation) throws Exception { if (log.isDebugEnabled()) log.debug((new StringBuilder()).append("Forwarding to location ") .append(finalLocation).toString()); PageContext pageContext = ServletActionContext.getPageContext(); if (pageContext != null) { pageContext.include(finalLocation); } else { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); //在这里设置content-type的charset也可以 RequestDispatcher dispatcher = request .getRequestDispatcher(finalLocation); if (dispatcher == null) { response.sendError(404, (new StringBuilder()) .append("result '").append(finalLocation).append( "' not found").toString()); return; } if (!response.isCommitted() && request .getAttribute("javax.servlet.include.servlet_path") == null) { request.setAttribute("struts.view_uri", finalLocation); request.setAttribute("struts.request_uri", request .getRequestURI()); dispatcher.forward(request, response); } else { dispatcher.include(request, response); } } } private static final long serialVersionUID = -1970659272360685627L; private static final Log log = LogFactory.getLog(org / apache / struts2 / dispatcher / ServletDispatcherResult); }接着在struts.xml里指定这个全局的result为jsp默认的result就可以了.
不过这种方法貌似还没有你说的filter方法好,因为你的那种方法不仅可以使用于struts,任何使用jsp的场景应该都可以.
4 楼
sutra
2008-12-25
那么对于jsp的话,我的所有jsp都是没有写<%@ page contentType...这个的,加了个filter
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
这样就好了。
不知道这样是不是最合适的解决方法。
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
这样就好了。
不知道这样是不是最合适的解决方法。
3 楼
downpour
2008-12-24
ahuaxuan针对这个问题的研究已经非常透彻了,这样的态度是非常好的。如果大家都本着实事求是的态度,无论是对于培训还是书籍,我想整个IT届会清净很多。
2 楼
1314520ln
2008-12-24
LZ,辛苦你了,真的很赞赏你的态度.
1 楼
庄表伟
2008-12-24
赞赏这样的态度!
发表评论
-
过滤字符的性能调优?挤一挤还是有的
2010-05-29 05:54 3610/* *auth ... -
Master-Slave,Spring,Hibernate,故事曲折离奇,情结跌宕起伏
2009-02-05 13:49 8684/** *作者:张荣华 *日期 ... -
关键字:查询,事务,粒度
2008-08-22 17:05 5139[size=medium]/** *作者: ... -
看看mina和memcached的联姻(适合不同语言客户端,高并发?)
2008-07-21 17:06 7984[size=medium]/** * 作者:张荣华 * 日 ... -
如何解决mysql的master-slave模式中ReplicationDriver的使用问题
2008-06-19 18:23 8220/** * 作者:张荣华 * 日期:2008-6-19 ... -
别装了,难道你们不想把properties直接注入到object中去(spring-plugin)?
2008-04-09 18:01 3651[size=small]/** *作者:张荣华(ahuaxu ... -
用jamon来监控你的sql执行效率
2008-02-25 15:48 3716/** *作者:张荣华 *日期:2008-2-25 ... -
java同msn的通信,大家想想用途吧
2007-11-24 17:14 2514程序员的生活真是单调,除了编程还是编程,工作日 ... -
EAI企业应用集成场景及解决方案
2007-09-21 18:21 3155/** *作者:张荣华(ahuaxuan) *2007-9 ... -
quartz和应用的集群问题
2007-08-21 18:36 12818之前看到很多关于quartz的讨论,尤其是关于quar ... -
优化程序之前,可用Jamon来监测你的Spring应用
2007-08-14 18:14 8125/** *作者:张荣华(ahuaxuan) *2007-8-1 ... -
请问责任链真的是一种设计模式吗
2007-07-26 18:12 9414坛子上讨论设计模式的也挺多的,但是关于这个责任链模式还没有人提 ... -
把ActiveMQ的控制台整合到你的web程序中
2007-07-19 12:06 8830在使用ActiveMQ的时候把ActiveMQ的控制台整 ... -
设计模式之:解剖观察者模式
2007-07-17 16:12 6867[size=9] 论坛上很多人都 ... -
java邮件:在简单和复杂之间的方案
2007-07-11 18:07 7584/** *作者:张荣华(ahuaxu ... -
强强连手, 在模板中分页,看Freemarker和displaytag的结合
2007-07-09 09:22 6927/** *作者:张荣华(ahuaxuan) *2007-0 ... -
解惑:在spring+hibernate中,只读事务是如何被优化的。
2007-06-28 18:22 7622/** *作者:张荣华(ahuaxuan) *2007- ... -
让webwork零配置 第二章(实现)(实例已放出,大家可以下载运行)
2007-06-25 09:23 5709/** *作者:张荣华(ahuaxuan) *2007-0 ... -
让webwork2零配置,第一章(主贴再次更新)
2007-06-18 15:41 13379/** *作者:张荣华(ahuaxuan) *2007-0 ... -
Spring声明式事务管理源码解读之事务提交
2007-06-11 09:19 7286/** *作者:张荣华(ahuaxuan) *2007-0 ...
相关推荐
《追风筝的人》是美籍阿富汗作家卡勒德·胡赛尼的一部小说,通过主人公阿米尔的人生历程,探讨了成见、勇气、救赎和友谊等深刻主题。小说揭示了社会成见如何像大山一样压在人们心头,阻碍个人的成长与自我实现。 第...
4. 词语搭配和选择是语文考试常见题目,涉及到词汇的语境运用和含义辨析,例如"契合"与"吻合"的区别,以及"偏见"和"成见"的选用。 5. 熟语运用考察学生对成语和俗语的理解,正确使用能增强语言表达效果,例如选项中...
7. 学习和适应:大一是适应新环境的关键期,通过参加学校活动和学习新知识,可以提升自己的综合素质,认识到自身的不足,并努力改进。 8. 工作能力和团队协作:在实际工作中展现出的规律思维、推断能力和团队合作...
成见是我们认识世界的过滤器,影响我们对新信息的接受和解释。 7. **成见作为屏蔽机制**:第七章提到,成见尽管可能限制视野,但也提供了一种心理舒适区,保护我们的自尊心和价值观,使得我们更容易接受符合既有...
成见 - 例句:Overcoming prejudice is crucial for building a more inclusive society. 12. **claim** [kleIm] *vt.* 声称;断言;对...提出要求;索取 *n.* 要求;认领;索赔;声称;断言 - 例句:She claimed...
徐剑通过不同的故事,如南院法师、北美狗鱼、秀才赶考等,强调改变思维定势和打破成见的必要性。 2. **终身学习的概念**:在21世纪,学习能力被视为最具价值的能力。未来竞争将更加注重学习能力,个人和组织都需要...
1. 增加文化敏感性:通过学习和了解不同文化的价值观、习俗和交际规则,提高对文化差异的认识。 2. 提高语言能力:学习并练习目标语言,以便更准确地表达和理解。 3. 跨文化训练:通过案例分析、模拟情境等方法,...
13. **认识小群体与小团队主义**:小群体可以提供归属感和安全感,但如果过度强调小群体利益,可能导致小团体主义,这时要坚守集体主义,不被小团体的成见所左右。 14. **美好集体的作用**:美好集体是精神家园,...
4. 领导者的自我反省:欧阳修在得知刘几的真实身份后,他并没有埋怨刘几的欺骗,而是自我反省,认识到自己的主观片面。这个态度对于领导者来说是非常宝贵的,只有不断地反思和学习,才能避免重复同样的错误,并成为...
8. 沟通误解的原因:沟通不畅可能导致误解,这可能源于信息不对称、背景差异或预先存在的成见。 9. 管理困惑的处理:对于表现下滑的员工,最好的方式是与其沟通,共同找出问题并寻求解决方案,而不是直接威胁解雇。...
1. 成见的理解:这道题考察的是对“成见”一词的理解,可能涉及心理学或社会学的知识,比如对偏见和刻板印象的认识。 2. 鲁迅《阿Q正传》分析:这部分内容是对鲁迅作品《阿Q正传》的解读,涉及文学鉴赏,特别是对...
9. **宽容的实践**:真正的宽容不仅是口头上说说,而是要在实际生活中体现,即使面对冲突也能放下成见,寻求和平解决。 10. **宽容与社会适应**:宽容的人更容易在社会中建立良好的人际关系,有利于个人的社会生存...
2. 汉字拼音和书写:题目涉及汉字的拼音,如“hàn”和“hɑn”,以及汉字书写,例如“绝”、“茂”和“袤”。 3. 成语应用:考察学生对成语的理解和使用,如“光明磊落”和“水落石出”。 4. 古诗文默写:要求...
6. “不局限于成见”的“成见”在此可能指的是“很久以来人们忽视信息素系统的存在”这一观点。 7. 这道题强调了量变引起质变的哲学原理,因为小问题如果不加注意,最终可能导致严重后果。 8. 文段说明了物种间相互...
3. 地域文化观念:唐代人们对地域差异有着深刻的认识,常以“塞北”与“江南”对比,前者象征恶劣的自然环境和人文环境,后者则是著名的“佳丽地”,具有优越的环境质量。唐代对于山东与关中的对立也有记载,反映了...
12. 成见的含义:在这里,“成见”指的是人们普遍接受但可能忽视或误解的观点,即信息素系统及其作用在很长一段时间内被忽视或轻视。 13. 狩猎运动的争议:狩猎可以作为野生动物管理的一种手段,但过度狩猎可能导致...
15. 成见定义:第十五题中的“成见”指的是人们长期形成的固定看法,此处可能是指人们对信息素系统的忽视或误解。 16. 理想化思考:第十六题中“比较理想化”可能是指人们对于理想状态的追求,也可能是在讨论过于...
3. “不局限于成见”的“成见”指的是普遍存在的固定观念或偏见。在这个例子中,可能是指人们对信息素系统存在和功能的认识,可能长期被忽视或误解。 4. 这个题目涉及商业策略和市场营销。"促销:利润:商城"的模式...
舆论学是一门研究公众意见、态度和情绪在社会中的表达、形成与发展,并对社会进程产生影响的学科。本复习提纲将重点解析几个关键概念,帮助我们理解舆论的本质和作用。 1. **舆论**:舆论是指公众对现实社会及其...
个人应认识到,个人利益与集体利益是相互依存的,不应相互拆台或指责,而是要协作以达成共同目标。 3. **小群体的形成与影响**:小群体往往基于共同的兴趣、目标或经历形成,如喜欢绘画的三位同学。这样的小群体...