一直在用Servlet却从来没有深入去了解,有一天同事问在web.xml文件中 context-param 与 init-param 有啥区别?大家都知道在
web.xml里面可以定义两种参数:
1、application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
<context-param>
           <param-name>context/param</param-name>
           <param-value>avalible during application</param-value>
  </context-param>

2、servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:
<servlet>
    <servlet-name>MainServlet</servlet-name>
    <servlet-class>tk.hecks.controller.MainServlet</servlet-class>
    <init-param>
       <param-name>param1</param-name>
       <param-value>avalible in servlet init()</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
      Servlet的生命周期其实分为三个阶段:

  1、初始化阶段  调用init()方法

  2、响应客户请求阶段  调用service()方法

  3、终止阶段  调用destroy()方法

Servlet初始化阶段:

  在下列时刻Servlet容器装载Servlet:

    1、Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之间添加如下代码:

<loadon-startup>1</loadon-startup>

    2、在Servlet容器启动后,客户首次向Servlet发送请求

    3、Servlet类文件被更新后,重新装载Servlet

  Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
     其实首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet

        同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param 配置节可写在任意位置,因此真 正的加载顺序为:context-param -> listener -> filter -> servlet

        对于某类配置节而言,与它们出现的顺序是有关的。以 filter 为例,web.xml 中当然可以定义多个 filter,与 filter 相关的一个配置节是 filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping 配置节而言,filter-mapping 必须出现在 filter 之后,否则当解析到 filter-mapping 时,它所对应的 filter-name 还未定义。web 容器启动时初始化每个 filter 时,是按照 filter 配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。
    开发经理是个工作压力比较大的职位。作为“中间人”,你需要在管理层、客户、销售、开发人员等多种角色之间周旋。没人会注意你的工作做得有多好:一切都运转顺利,工作进展得波澜不惊,所有人都各得所需。但如果事情失败了,不论什么原因,可都是你的错。

要成为一名成功的开发经理,秘诀就是管理好期望,第一步就是确保所有人都理解你的职能。你和你工作相关的人,都要对开发经理的期许达成一致。

我看过很多开发经理的招聘信息,但我都不太赞同上面的描述。有一个要求深入了解大量编程语言和环境,还有一个要求66%的时间进行编程(为什么不直接写三分之二?),还有一些要求有PMO认证,类似的要求不一而足。我承认开发经理的职能是有点儿模糊不清,但像这样的招聘信息让我觉得发布这些职位的公司并没有真正思考过开发经理的职能。这种情况对公司和受雇的人来说都后患无穷。

作为开发经理,你要承担很多责任,但重要的是发布产品。你的目标是采取所有必要的措施,确保能把产品交付给客户或市场。要做到这一点,你需要确保开发团队能尽可能高效地工作,而且要确保他们有明确的目标(无论是短期的还是长期的),扫除阻碍他们工作的一切障碍。从最初的项目范围,到在客户网站上部署产品,每一步都是你的职责。你可以(而且应该)尽量把事情委派给下属去做,但你要检查事情是否和你预期的一样,如果不是可要自己投入。

项目范围界定

作为开发经理,你需要知道如何界定项目的范围。根据你所在组织的情况以及你和外部群组的协作方式,这可能是你工作的重要组成部分。如果你经常承担、负责第三方的项目,那你应该知道如何对RFP(需求建议书)作出回应,包括交付物、时间表和预算等。即便你只做内部项目,没有正式的文档系统,你也应该养成为每个项目写一份项目范围说明书的习惯。另外,如果你从事的是敏捷开发,这些文档就要随着项目的进展持续维护和更新。

“总置顶”项目

这是项目范围界定的一部分,但它应该单独说明一下。我听大家谈论过“总置顶”项目,这类项目不需要预算和时间表。这可是错误的!如果弄不清楚成本和交付物对这些“总置顶”项目有怎样的依赖,那可能会扼杀你的团队,因为这些“总置顶”项目会拖延进度、消耗其他工作需要的资源。你承担的每个项目至少都要有一个内部成本和一个交付物。你要和其他利益相关方一起协商你所承担的一切。
         二十多岁的年轻人平均18个月就会换一份工作。在三十多岁的时候——至少是那些继续努力做好自己的事业的人——也同样会频繁的更换工作,尽管比在二十多岁的时候更换的频率要慢一些。所以,如果你认为跳槽是不好的,你要改变一下你的想法了。跳槽者不是半途而废的人,事实上,他们会成为很好的同事和很好的员工,而且我相信他们都很满意他们的工作生活。
  
原因如下:
  
  1.跳槽者从职业生涯中收获到更多才智
  
  几乎所有的工作,早期的学习曲线都是明显上升的。过后,它会慢慢回落。因此,在做了两年同样的工作之后,你通常会觉得已经没有什么需要学习的了。这让我非常想知道,是什么能让那些做了二十几年同样工作的人保持大脑的活力。这也让我确定了,那些跳槽的人会了解更多东西。
  
  如果你经常换工作,那么你就一直需要去学习很多东西——你的学习曲线会一直保持上升势头。尤其是办公室技能以及具体的职业知识。这也同样适用于你的情商。你越是在阶层管理严格的公司里处理办公室的事宜,你就越会了解人们的想法,并且可以在工作中让人们觉得舒适。这就是一项很棒的办公室技能。
  
  2.跳槽者会有更稳定的事业
  
  很多公司没有给它的员工提供稳定的职位。那些会认为公司就该提供稳定的工作的人们,应该都是些年纪很大而且完全不与社会和其他人接触的人。公司会有裁员,雇佣合同工人和临时工等措施——实际上,这仅仅开始于上一代。在职业生涯中是否能得到稳定,是取决于你自己的。如果你还在指望某些公司可以提供稳定的工作给你,你要知道这是非常可怕的。但如果你有自信,相信自己的能力以及你对于事业的理解,那就不会有什么问题。你可以创造稳定的职业——只要做你自己就可以了。
Tags:
         wampserver集成在安装完后默认是没有开启伪静态的,所以有时把某些网站源码放进去时如果源码里包含.htaccess文件的话,可能使用者出现500错误,这一般是因为不支持伪静态造成的,解决这个问题也是很简单的,就几步。那么我来分享一下wamp集成环境开启rewrite伪静态的方法:

第一步:打开wamp安装目录里的bin文件夹,找到Apache安装目录下的conf目录中的httpd.conf这个文件(比如我的是:F:\wamp\bin\apache\Apache2.2.11\conf),搜索找到,“LoadModule rewrite_module modules/mod_rewrite.so”,找到这一行,去掉前面的“#”;
第二步:找到“AllowOverride None”改为“AllowOverride All”,好像有两个位置,都改了算了…;
第三步:重启apache
第四步:现在,就可以使用.htaccess文件实现伪静态等功能了
至此就完成了wamp集成环境开启rewrite伪静态!
        很多年一直在用腾讯康盛的产品,自然少不了单点登陆,最近重新研究了下ucenter的机制,其实它的基本原理就一句话:跨域设置用户信息。下面只对用户登陆做比较详细说明,其他注册、PM等操作其实原理差不多。

用户登陆


此处操作调用了uc_client下client.php的 uc_user_login($username, $password);

此函数又调用了call_user_func(UC_API_FUNC, 'user', 'login', array())

call_user_func回调UC_API_FUNC, 此处为uc_api_mysql函数,即调用 uc_api_mysql函数,后面的'user', 'login', array()是参数。而uc_api_mysql的实质是调用uc_client的controller下的user控制器,然后执行onlogin方法。

该方法则是判断用户提交信息是否正确,然后返回对应uc_member表的uid。

总结:

uchome的用户登陆主要通过uc_client进行操作,判断用户信息是否正确,最终返回对应于uc表的uid, 供单点登陆用。
整合自己应用的时候可以不必这么复杂,登陆完全可以走自己的模式,只是要返回下uc表的uid,供单点登陆用即可。
         本博客未来会陆续更新一些Discuz! 商业模版和插件,但 Discuz!  程序在更新到2.0以上后,增加了对插件的版本检测,在安装时,可能会出现:“对不起,您安装的不是正版应用,安装程序无法继续执行”的提示,要解决这个其实挺容易的,找到以下文件:
/source/function/function_cloudaddons.php
  
  找到文件中的cloudaddons_validator这个处理过程,将中间提示部份注释掉,改为像以下这样即可大功告成。。



以上为网络流传的解决办法,如果大家也到同样的问题不妨试试。
Tags: , ,
      其实好习惯谁都想坚持,但无奈90%的人因为缺乏意志力而无法坚持。心理学家总结出的5个增强意志力妙招,不妨一试。
  多考虑长期后果,不贪图短期快乐。哥伦比亚大学一项新研究发现,点香烟之前,与考虑短期快感的人相比,考虑吸烟长期危害的人更能抵挡住香烟的诱惑。耶鲁大学医学院心理学教授赫蒂表示,人们可以利用“思考未来”模式,增强意志力。

  转移视线。心理学家麦戈尼格尔建议,当恶习袭来时,轻握拳头能将注意力转移到握拳动作及感觉上。

  确立切实可行的小目标。大量研究表明,接受较小改变(如坐直身体等)的人在自控力测试中成绩更好。目标较小,实现的可能性就越大。麦戈尼格尔建议,将自己制定的目标减半,有助于提高意志力。

  不饿肚子,不剥夺睡眠。佛罗里达州立大学研究人员发现,与吃饱肚子的人相比,由于不吃饭而导致低血糖的人,在自控力测试中得分更低。每晚睡眠不足6小时的人,也有同样的糟糕表现。

  坚持3周时间。一种新习惯的养成必须通过大约21天的过渡期,这样大脑才能将新习惯视为日常活动。另外,偶尔一次未能坚持并不代表计划失败。

对于装的vps服务器,首先我们需要对其进行一些基本设置才能放网站:
1.在D盘的目录下新建一个文件夹wwwroot,记住一定要在D盘,C盘是系统盘

2.打开IIS,新建站点,输入主机头,主机头就是新建网站要绑定的域名,注意不要带http://
80端口,网站的主目录就是在D盘的  wwwroot 勾选允许佚名访问网站(主机头的设置也可以在 网站-高级中)
主目录-配置-选项-启用父路径
主目录-纯脚本

3.serv-u -新建域
用户-新建用户-添加目录
目录访问里-勾选下
本地FTP服务-自动

4.php安装
解压PHP5
拷贝到C盘根目录下
拷贝PHP5目录下的libmysql.dll 和 php5ts.dll文件到c:\windows\system32下
打开C:\PHP5下的extensions文件夹全选,拷贝到c:\windows\system32下
拷贝PHP.INI到c:\windows下
拷贝PHP5目录下的libmysql.dll到c:\windows下
打开c:\windows下的PHP.INI文件,查找session 找到session.save_path="c:\sessions"
在C盘建立sessions文件夹
分页: 6/46 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]