guanxf

我的博客:http://blog.sina.com.cn/17learning

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  71 随笔 :: 1 文章 :: 41 评论 :: 0 Trackbacks

#

1、首先安装wampserver。
2、鼠标右键wampserver托盘图标--->language---->chinese.
3、配置PHP: 鼠标左键wampserver托盘图标-->PHP--->php设置--->short Opn tag(设置PHP标签类似方法,重启服务器)。
4、配置apache的虚拟目录:
     鼠标左键wampserver托盘图标--->apache-->Alies目录---->添加一个alies目录。弹出一个控制台输入:Test----> 回车--->T:\WorkSpace\workespacePhp.必须在计算机上存在目录(T:\WorkSpace\workspacePhp\Test).
     如果想用http://127.0.0.1/直接访问test下的index.php.操作步骤如下:
       鼠标左键wampserver托盘图标--->apache-->Alies目录-->http://127.0.0.1/test/edit alies:删掉红色字体
        Alias /Test/ "T:/workSpace/workespacePhp/" 
  <Directory "T:/workSpace/workespacePhp/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>
5、配置Mysql:mysql  root默认密码为空,修改mysql的密码:
(1)、运行CMD:
(2)、cd到mysql的安装目录:(D:\DesigerFiles\wamp\bin\mysql\mysql5.5.8\bin)
(3)、mysqladmin -u root -p  password admin
  如果(3)不支持,则进入(4)。
 (4)、将D:\DesigerFiles\wamp\bin\mysql\mysql5.5.8\bin加入到环境遍历中。
  (5)、mysqladmin -u root password admin
 
6、如果不使用wampserver,配置方法如下:
  http://www.jb51.net/article/24691.htm
  http://wenku.baidu.com/view/c794f80102020740be1e9bb2.html

    
      
posted @ 2013-03-18 09:48 管先飞 阅读(481) | 评论 (0)编辑 收藏

Object data=getObject();
if(data instanceof String) {
  this.renderJson((String)data);
  }else {
  this.renderJson(data);
}
posted @ 2013-03-15 09:05 管先飞 阅读(6364) | 评论 (2)编辑 收藏

文章开头就列举了那么多联系方式,难免会让大家感觉有点AD的意味,但是不容质疑的是,默默的确有那么丁点的表现欲^_^,虽然有时候过于细致会被人说婆妈,但是幸好这种细致对于编程来说,还是蛮有益的
    从默默自己向别人问怎么学PHP开始,到后来不少人又来问默默怎么学PHP,不管默默是新手,还是老鸟,似乎总是感觉摸不出一条清晰的脉络来,不过,默默既然学会了PHP,那么我走的这条路或多或少的有一定借鉴性。
    PHP的背景恐怕就不用默默赘言了,我相信大家选择一种语言,并不是看它的背景和悠久历史,更重要的是看它的实用性,华而不实的语言哪怕是再辉煌的历史,也毕将步向没落,可喜的是PHP经受住了考验,也因此,它确实是一种值得学习的语言。
    默默一直是听从别人的经验长大的,也因此在前辈们的经验里让默默少走了许多的弯路,更快的步入了正规,在此向那些我至尽不知道其名字的前辈们道声谢谢,在默默的眼里,帮助不分大小,只要是帮助,总会让默默的心里暖融融的,我想,前辈们帮助我,并不是为了得到我的一句谢谢,更多的是出于一种责任感和对默默的期望,所以我想,只有学好PHP,才能对得起前辈们的汗水。
    正如我所说的,默默也终于感觉到了一种责任感,默默不知道自己的经验到底能帮助新手多少,但是默默明白,现在到了履行责任的时候了,我有必要把自己的经验告诉给所有希望学好PHP的人,只有这样才能让中国的PHP不断的进步,不断的发展,在世界上占据一席之地。
    默默学习PHP的这段期间,感觉国内的PHP环境越来越成熟,规范也在逐渐的健全,PHPCHINA的成立,标志着与官方直接挂钩的PHP机构在中国正式落户了,在此献上迟到的掌声!
    好的,切入正题:
    我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
    默默的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。
    我先把我自己学习PHP的过程做一下概括(老鸟学PHP路线:php基础--》OOP--》smarty---》thinkPhp):
      (1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度
        (2)理解动态语言的概念,运做机制,熟悉PHP语法
        (3)学习如何将PHP与HTML结合起来完成简单动态页面
        (4)接触MYSQL,开始设计数据库程序
        (5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板
        (6)完成一个功能齐全的动态站点
        (7)学习smarty模版技术。
       (8)学习使用ThinkPHp的框架思想。

    我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。
    我先解释一下我的学习思路。
    首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。
    在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。
    HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西
    也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?
    OK,掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。
    我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,默默的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。
    那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。
    对于PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。
    书过三遍自然熟,这个简单的道理告诉我们,即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。
    在一段挣扎之后,聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。
    搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。
    高兴一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。
    头晕归头晕,目眩归目眩,你不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。
    在一番搏斗之后,你终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
    学会了PHP和数据库的你,无疑是左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!
    等到你发奋努力的学会了用PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。
    这个时候的你也许是这种状态:
        你会HTML吗?会,我能编好几个大表格排板的网页啦!
        你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!
        你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦
    那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。
    花了一段时间,你终于学会表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。
    但是,你可能瞅瞅东,看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?
    不要急,可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。
    再有条件的话,买本书看看吧,《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)
    巩固了自己的知识,熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-
    这个时候,你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧,让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。
    几天之后你再打开留言本,哎?哇,一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!
    你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。
    那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?
    恩,学!加紧学呀学,学会了这些之后,你又学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...
    总而言之,你绝对不会发现你全部都学会了,一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!
    我想通过我的一番YY,你也应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^
    看完之后你发现,罗嗦这么多,对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,默默你有没?
    我.......我没有,但是2分钟之内把你扁进医院里,我倒是有把握-_-
    学东西,永远不要妄想有速成这一说,告诉你了一个方式,但是缺少努力这一环节,那也是白搭。
但是有一点我可以给你保证的就是,你学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。
    不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。
    讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴,然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)
    另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学,也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起,没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。
(字数打多了,超过发帖限制,请在下面接着看^_^)

原文:http://www.xici.net/d96104995.htm有删改


posted @ 2013-03-14 14:06 管先飞 阅读(383) | 评论 (0)编辑 收藏

<script language="javascript">
   alert("欢迎相互加连接,请联系qq:54314720");
</script>
posted @ 2013-03-01 09:47 管先飞 阅读(189) | 评论 (0)编辑 收藏

   创建可执行的 JAR 文件包,制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法。
    Java 程序是由若干个 .class 文件组成的。这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给 CLASSPATH 环境变量或者 java 命令的 -cp 参数;运行时还要到控制台下去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 (.bat) 或者 Linux 的 Shell 程序。因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言。其实不然,如果开发者能够制作一个可执行的 JAR 文件包交给用户,那么用户使用起来就方便了。在 Windows 下
安装 JRE (Java Runtime Environment) 的时候,安装文件会将 .jar 文件映射给 javaw.exe 打开。那么,对于一个可执行的 JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 (.chm 文档默认是由hh.exe 打开的)。那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包。

创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:

jar cvfm test.jar manifest.mf test

这里 test.jar 和 manifest.mf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifest.mf。因为要创建可
执行的 JAR 文件包,光靠指定一个 manifest.mf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的
JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST。关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了
Main-Class 一项。这在 MANIFEST 中书写格式如下:

Main-Class: 可执行主类全名(包含包名)

例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类
(定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:

Main-Class: test.Test <回车>

这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且该
行以一个回车符结束即可。创建了 manifest.mf 文件之后,我们的目录结构变为:

==

|-- test

| `-- Test.class

`-- manifest.mf

这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包。也就是在目录树中使用“==”表
示的那个目录中,使用如下命令:

jar cvfm test.jar manifest.mf test

之后在“==”目录中创建了 test.jar,这个 test.jar 就是执行的 JAR 文件包。运行时只需要使用
java -jar test.jar 命令即可。

需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样。
而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包
之前可以使用 java <类名> 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH
正确的情况下)。

posted @ 2013-03-01 09:26 管先飞 阅读(385) | 评论 (0)编辑 收藏

配置环境变量: 

添加三个系统变量: 

1、JAVA_HOME: C:\JDK  实际JDK的位置

2、TOMCAT_HOME(或CATALINA_HOME): C:\Tomcat

3、CLASSPATH: %JAVA_HOME%\lib;%TOMCAT_HOME%\lib

4、path(编辑path时多个用";"隔开):C:\Program Files\Java\jdk1.6.0_16\bin(JDK的bin中)

              

机器上有CLASSPATH用分号隔开,然后加在后面。

 

Tomcat的环境变量就配置完毕了,下面检验Tomcat是否能够运行:

 

在控制台中转到C:\Tomcat\bin这个目录,运行startup,然后回出现一个窗口,连跳一大串东西,最后表示Server已经运行

 

在浏览器中输入http://localhost:8080,出现欢迎界面,则表示Tomcat没问题了

 

然后和上面一样,写入你的第一个Servlet

 

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet

{

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException

{

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<html><head><title>");

out.println("This is my first Servlet");

out.println("</title></head><body>");

out.println("<h1>Hello,World!</h1>");

out.println("</body></html>");

 

}

}

 

然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servlet.*

 

那么就是应该把C:\Tomcat\common\lib里面的servlet-api.jar(根据实际来看)文件拷贝到C:\JDK\jre\lib\ext中,再次编译

 

然后在Tomcat目录里面的C:\Tomcat\webapps\myweb(目录名可任意)里面按如下的文件结构:

 

 

myweb\WEB-INF\web.xml

myweb\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class文件放在这个里面)

 

Servlet必须使用C:\Tomcat\webapps\myweb\WEB-INF这个目录下面的web.xml文件进行注册,用记事本打开这个web.xml文件,在里面加入

 

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

 

这样的结构

 

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>

表示指定包含的servlet类.

 

 

而以下的结构

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

表示指定HelloServlet应当映射到哪一种URL模式。

 

 

在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/myweb/HelloWorld

posted @ 2013-03-01 09:15 管先飞 阅读(1950) | 评论 (0)编辑 收藏

我使用的是proxool连接池连接sql server2005数据库,控制台报:签名信息和同一包里面的另外一个类得签名信息不匹配
Caused by: java.lang.SecurityException: class "com.microsoft.sqlserver.jdbc.ISQLServerStatement$$FastClassByProxool$$3407f37e"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
... 54 more

解决方法:
    用的JDBC包版本为:sqljdbc_3.0.1301.101_chs中的,下载连接:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599
    拷贝老项目中的一个sqljdbc.jar问题解决,求高手解答下原因。sqljdbc.jar下载连接》可用的包
posted @ 2013-01-30 01:35 管先飞 阅读(1988) | 评论 (1)编辑 收藏

     摘要: 在xp操作系统中将下面代码保存为:*.regWindows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones]"IndexMapping"=hex(7):34,00,30,00,39,00,00,00,34,00,00,00,31,00,30...  阅读全文
posted @ 2013-01-04 18:32 管先飞 阅读(743) | 评论 (0)编辑 收藏

set Axis_Lib=F:\webservice\axis1.4
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% 
set Axis_Servlet=http://xx.xx.xx.xx/services/ctcc_ema_wbs?wsdl
%Java_Cmd%  org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true %Axis_Servlet% 
posted @ 2012-12-09 22:11 管先飞 阅读(301) | 评论 (0)编辑 收藏

1、客服登录:客服有客服ID,单位ID:
   WorkerVO workerVO = (WorkerVO) req.getSession().getAttribute("workerVO");
if(workerVO==null){
workerVO = new WorkerVO();
String workerid = req.getParameter("workerid"); //单位ID
String userid = req.getParameter("userid"); //用户ID
if(!StringUtil.isBlank(workerid)){
boolean b = WorkerLogService.getWorker(workerid, workerVO); //获取单位信息
if(b){ //登陆成功
workerVO.setStartDate((new Date()).getTime());
if(!StringUtil.isBlank(userid)){
DeptService deptService = new DeptService();
OrgUserVO userVO = deptService.getOrgUser(userid); //获取用户信息
workerVO.setUserId(userid);
if(userVO!=null){
workerVO.setUserName(userVO.getUserName());
}
}
//1. get map
// key-userkey  value-workersMap   workersMap<String,Map> ------String 为单位id,
//--- Map为客服人员集合,Map<String,Object> ,key为客服Id, value为客服人员对象
//(客服人员ID,客服人员姓名,单位id ,单位名称 ,状态(1在线、2忙碌、3离线),在线——1在咨询中,2空闲,如果状态是不在线:值为0)。
super.init(config);  
ServletContext application=this.getServletContext();  //得到Application对象
Map<String,Map> workersMap = (Map)application.getAttribute("workersKey");
if(workersMap == null){ //判断Map是否为空
//初始化
Map<String,Map> workerMap = new Hashtable<String,Map>();
Map<String,Object> childWorkerMap = new Hashtable<String, Object>();
WorkerOnlineVO onlineWorker=new WorkerOnlineVO();
onlineWorker.setDeptId(workerVO.getDeptNo().toString());//单位Id
onlineWorker.setDeptName(workerVO.getDeptName());
onlineWorker.setWorkerUserId(workerVO.getUserId());
onlineWorker.setWorkerUserName(workerVO.getUserName());
onlineWorker.setState("1");
onlineWorker.setConsultate("2");
childWorkerMap.put(workerVO.getUserId(), onlineWorker);
workerMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
application.setAttribute("workersKey", workerMap);
}else{
Map<String,Object> childWorkerMap=workersMap.get(workerVO.getDeptNo());
WorkerOnlineVO workerOnline=(WorkerOnlineVO) childWorkerMap.get(workerVO.getUserId());
if(workerOnline==null){
WorkerOnlineVO onlineWorker=new WorkerOnlineVO();
onlineWorker.setDeptId(workerVO.getDeptNo().toString());
onlineWorker.setDeptName(workerVO.getDeptName());
onlineWorker.setWorkerUserId(workerVO.getUserId());
onlineWorker.setWorkerUserName(workerVO.getUserName());
onlineWorker.setState("1");
onlineWorker.setConsultate("2");
childWorkerMap.put(workerVO.getUserId(), onlineWorker);
workersMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
//application.setAttribute("workersKey", workersMap);
}else{
workerOnline.setState("1");
workerOnline.setConsultate("2");
childWorkerMap.put(workerVO.getUserId(), workerOnline);
workersMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
// application.setAttribute("workersKey", workersMap);
}
}
req.getSession().setAttribute("workerVO", workerVO);
OnlineStatusVO.WORKER_QUESTER_MAP.put(workerid, new ArrayList<QuesterVO>());
OnlineStatusVO.WORKER_VO_MAP.put(workerid, workerVO);
req.getRequestDispatcher("../worker.jsp").forward(req, res);
}else{
res.sendRedirect("../worker_index.jsp?flag=1");
}
}else if(!StringUtil.isBlank(userid)){
if("1".equals(userid)){
workerVO.setId("0");
workerVO.setDeptName("技术支持");
workerVO.setDeptNo("0");
workerVO.setState("1");
workerVO.setUserId(userid);
req.getSession().setAttribute("workerVO", workerVO);
OnlineStatusVO.WORKER_QUESTER_MAP.put("0", new ArrayList<QuesterVO>());
OnlineStatusVO.WORKER_VO_MAP.put("0", workerVO);
req.getRequestDispatcher("../worker.jsp").forward(req, res);
}
}else{
res.sendRedirect("../worker_index.jsp?flag=1");
}
}else{ //workerVO != null
if(StringUtil.isBlank(OnlineStatusVO.WORKER_QUESTER_MAP.get(workerVO.getId()))){
OnlineStatusVO.WORKER_QUESTER_MAP.put(workerVO.getId(), new ArrayList<QuesterVO>());
}
if(StringUtil.isBlank(OnlineStatusVO.WORKER_VO_MAP.get(workerVO.getId()))){
System.out.println("===OnlineStatusVO.WORKER_VO_MAP.get======");
OnlineStatusVO.WORKER_VO_MAP.put(workerVO.getId(), workerVO);
}
req.getRequestDispatcher("../worker.jsp").forward(req, res);
}

1、咨询者咨询:单位ID:
String workerId = req.getParameter("workerId"); //单位ID
String outmsg = "";
if(StringUtil.isBlank(workerId)){
Log.error("---单位Id为空------");
}else{
super.init(config);  
ServletContext application=this.getServletContext();  
Map<String,Map> workersMap = (Map)application.getAttribute("workersKey");
if(workersMap==null){ //如果workersMap为空
outmsg="请电话咨询,电话号码为:XXXXX";
}else{
Map<String,WorkerOnlineVO> childWorkerMap =workersMap.get(workerId);
if(childWorkerMap==null){
outmsg="请电话咨询,电话号码为:XXXXX";
}else{
//boolean flagTel=false; //无客服人员在线
 String  workerUserIdTemp="";
  Set<String> key = childWorkerMap.keySet();
  for (Iterator it = key.iterator(); it.hasNext();) {
WorkerOnlineVO workerOnlineVo =childWorkerMap.get((String)it.next()); 
//状态(1在线、2忙碌、3离线),在线——1在咨询中,2空闲,如果状态是不在线:值为0
//安排人员的优先级:在线 --空闲  》在线--咨询中 ,其他条件不符合。
if(workerOnlineVo.getState().equals("1")&& workerOnlineVo.getConsultate().equals("2")){
//在线 --空闲  ------------优先级最高
workerUserIdTemp=workerOnlineVo.getWorkerUserId();
break;
else if(workerOnlineVo.getState().equals("1")&& workerOnlineVo.getConsultate().equals("1")){
//在线--咨询中
if(workerUserIdTemp.equals("")){
workerUserIdTemp=workerOnlineVo.getWorkerUserId();
}
}
       }
if(workerUserIdTemp.equals("")){
outmsg="请电话咨询,电话号码为:XXXXX";
}else{
WorkerOnlineVO workerOnlineVo = childWorkerMap.get(workerUserIdTemp);
workerOnlineVo.setState("1");
workerOnlineVo.setConsultate("1");
childWorkerMap.put(workerOnlineVo.getWorkerUserId(), workerOnlineVo);
workersMap.put(workerId, childWorkerMap); //和原来的Map一样
//application.setAttribute("workersKey", workersMap);
outmsg = "您好,请问有什么可以帮助您的吗?";
QuesterVO questerVO = (QuesterVO) req.getSession().getAttribute("questerVO");
if(questerVO==null || !workerId.equals(questerVO.getWorkerId())){
OnlineStatusVO.WORKER_USER.put("workerUser", workerOnlineVo);
questerVO = QuesterLogService.getQuester(workerId); //必须使用人id
questerVO.setWorkerUserId(workerOnlineVo.getWorkerUserId());
req.getSession().setAttribute("questerVO", questerVO);
OnlineStatusVO.WORKER_QUESTER_MAP.get(workerId).add(questerVO);
OnlineStatusVO.QUESTER_VO_MAP.put(questerVO.getId(), questerVO);
req.setAttribute("workerOnlineVo", workerOnlineVo);
}
}
req.setAttribute("outmsg", outmsg);
req.getRequestDispatcher("/quester.jsp").forward(req, res);
}
}
}

3、中间类:
public class OnlineStatusVO {
public static Map<String,WorkerVO> WORKER_VO_MAP = new HashMap<String,WorkerVO>();
public static Map<String,QuesterVO> QUESTER_VO_MAP = new HashMap<String,QuesterVO>();
public static Map<String, List<QuesterVO>> WORKER_QUESTER_MAP = new HashMap<String, List<QuesterVO>>();
public static Map<String, WorkerOnlineVO> WORKER_USER = new HashMap<String, WorkerOnlineVO>();
}
posted @ 2012-11-25 16:00 管先飞 阅读(2352) | 评论 (11)编辑 收藏

仅列出标题
共7页: 上一页 1 2 3 4 5 6 7 下一页