`
thh_r
  • 浏览: 12717 次
社区版块
存档分类
最新评论

【转】在搜狐原来是这样用Struts的,我们引以为戒吧!

阅读更多

本文来自光速网,转载请注明出处!

我是一个搜狐的老用户了,很早以前就注册了Sohu的邮箱,所以很特殊的享有用ThunderBird客户端直连搜狐SMTP的服务(新注册的用户已经不 行了,包括163……)。今天突然发现邮件不能正常收了,以为是长时间不登陆搜狐,用户被停用了,所以就上搜狐了一下,结果发现搜狐的passport是 用Java做的,所以很好奇,就多试验了一下看做的如何(我本身是一个Java程序员,写BS的程序居多,所以对此比较感兴趣。)。结果让我很伤心。搜狐 在我的心里一直是一个很崇敬的公司,没想到做的应用却如此的差,真不知道他们应用上线是否经过测试。

      搜狐的passport是用Struts2做的,应用服务器应该是Resin。这点从下面的截图就能看见。我请求了一个根本不存在的action,没想到他们竟然没有做处理。直接一个标准的Java异常呈现在眼前,不但对最终用户十分不友好,而且将自己网站使用的技术框架完全暴漏给别人(好在我不是一个喜欢搞破坏的人)。其实这个问题处理很简单,只要在struts.xml里配置:

<package name="struts-default-action" extends="struts-interceptor">

    <default-action-ref name="defaulHandle"/>

    <action name="*****" class="*****"/>

</package>
 

加一个默认的action处理类就可以。搜狐这么强的公司的技术竟然不知道!!!可悲!

搜狐的错误截图:

下载 (148.75 KB)
搜狐的passport错误
2 分钟前



      最可笑的还不止如此。看异常就可以看出来,搜狐的技术对Struts一点也不了解。错误的页面给了一段描述:

 

You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set:

  struts.devMode=false

in your WEB-INF/classes/struts.properties file.

 

这句说的是什么,我想用过Struts2的大部分人都知道,搜狐的基于Struts2的应用竟然还开着调试模式……只要将struts.properties文件中的struts.devMode设置为false即可,否则性能会打折扣,真不知他们是不知道还是故意的?

       其实类似的错误我在百度也遇到过,我本身也是做互联网应用的,我们公司也有类似的问题。其实这已经是互联网公司的通病了,大家为了项目能快速上线,很多应 用根本没有经历过严格的测试就退出来,原计划3个月的项目,非要压缩到2个月,恨不得一个月完成上线。这样做的本意是为了用新的东西拉拢网友,但是面对问 题多多的服务,到底吓跑的网友多还是拉拢的网友多?做为服务提供商的我们真的应该好好思考这个问题了,不要拿自己的声誉不当回事,不要拿网友不当回事。

分享到:
评论
8 楼 ramus 2009-05-08  
越大的公司,返回作出来的产品 就越差...他们有本钱重新来过,他们为了敢进度,胡搞..

这样的大公司数不胜数...而我所在的湖南某知名上市企业同样如此
7 楼 thh_r 2009-05-08  
搜狐的速度还挺快,已经解决404问题。希望以后能多注意类似的细节。
6 楼 phenom 2009-05-08  
一个问题把搜狐都 鄙下去了.也不简单.中国的IT就是这样,能写点程序就是程序员了.
5 楼 minima 2009-05-08  
唉,国内的it什么时候才能走上正轨啊!
4 楼 ldg_2 2009-05-07  
第一个:xiaoyu说的有道理,配置一个全局的404错误页面为好。
第二个,没什么好说的,调试环境和开发环境应该分清楚。
3 楼 xiaoyu 2009-05-07  
第一种方法解决不存在的URL对SEO不友好(struts的拦截器也不能拦截其它的资源请求)。 还是直接返回一个404错误的页面更好一点

第二个如果是这样设置为true, 那么多次出错, 可能会导致内存溢出
2 楼 xiaozhi19820323 2009-05-07  
的确不怎么样,这个小问题我想会有很多人都在犯
1 楼 snipercc 2009-05-07  
.....这个情况确实是比较尴尬

相关推荐

    struts配置!!!!!!!!!!!!!!!!!

    DOCTYPE&gt;`声明了DTD(Document Type Definition),这里指定了使用的是Struts 1.3版本的DTD。 - `&lt;struts-config&gt;`标签是根元素,里面可以包含各种子元素,如`&lt;action-mappings&gt;`等。 ##### 3. action类 Action类...

    struts1.2详细解释!!!

    Struts 1.2 是一个经典的Java Web框架,主要用于构建MVC(Model-View-Controller)架构的应用程序。本文将详细解析Struts框架的核心概念及其工作流程。 首先,Struts框架的主要目标是分离表现层(View)、控制层...

    struts2学习笔记!

    在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    Struts2实例 国际化 类型转换 struts标签

    这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...

    HTML标签转STRUTS标签

    在实际操作中,使用`HtmlTagChange`这样的工具可以极大地提升开发效率,减少手动修改的工作量。工具可能会提供一个用户友好的界面,用户只需导入HTML文件,然后点击“转换”按钮,即可完成转换过程。转换完成后,...

    转:struts1与struts2的区别

    值得注意的是,在Struts2中,Action接口并不是必需的,任何包含`execute`标记的POJO(Plain Old Java Object)对象都可以作为Action对象使用。 #### 2. 线程安全模式的不同 - **Struts1**: Struts1中的Action采用...

    Struts2 ConverterType类型转换 案例源码

    2. 注册转换器:为了让Struts2知道使用哪个转换器,我们需要在struts.xml配置文件中声明我们的自定义转换器。可以使用`&lt;conversion-property&gt;`标签将转换器与特定的类型或类属性关联起来。 ```xml ...

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    struts2上传必备jar包,避免出现struts2的升级漏洞!自己吃亏后分享

    这个bug是由Struts2上传文件后return SUCCESS后报的错误: java.lang.AbstractMethodError: be.telio.mediastore.ui.upload.GarryMultiPartRequest.cleanUp()V at org.apache.struts2.dispatcher.multipart....

    用struts写的计算器项目

    在"用Struts写的计算器项目"中,我们可以深入理解Struts框架的核心概念和工作流程。 首先,让我们来看看Struts框架的基础。Struts是一个开源项目,由Apache软件基金会维护。它的主要目的是解决JSP应用程序中的代码...

    struts2jar包

    在使用Struts2进行开发之前,我们需要先将Struts2的jar包引入到项目中,这样才能利用其提供的API和服务。 Struts2的核心jar包通常包括以下几个部分: 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的...

    struts案例!

    Struts 是一个开源的Java Web框架,由Apache软件基金会维护,它主要被用来构建基于MVC(Model-View-Controller)设计模式的Web应用程序。在本案例中,“struts案例!”是一个教学示例,旨在帮助开发者理解Struts框架...

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    Struts1和Struts2的区别和对比

    Struts1和Struts2是两个非常著名的Java Web框架,它们在设计模式、可测试性、输入处理和表现层等方面存在显著的区别。 首先,Action类的设计有所不同。在Struts1中,Action类需要继承一个抽象基类,这限制了Action...

    Struts2类型转换(一)----常规类型,自定义类型,错误处理

    这时,我们可以实现`org.apache.struts2.util.TypeConverter`接口,并在Action类或整个包上使用`@ResultType`注解进行注册。这样,当Struts2遇到匹配的类型时,就会调用我们自定义的转换器进行转换。同时,也可以...

    struts2控制组件

    struts2控制组件!

    Struts2视频教程

    Struts2内置了对OGNL的支持,可以方便地在JSP页面中使用OGNL表达式获取模型数据。 - **标签库**:Struts2提供了丰富的标签库,可以帮助开发者快速构建表单和页面元素,提高开发效率。 - **拦截器**:拦截器是Struts2...

    struts1和struts2的jar包

    Struts是Apache软件基金会下的一个开源项目,主要提供MVC(Model-View-Controller...尽管Struts2在许多方面进行了改进,但Struts1仍有许多项目在使用,理解这两个框架的差异和使用方法对于Java Web开发者来说非常重要。

    struts2-scan_struts2-scan_struts2scan_scan_struts2漏洞_

    在使用"struts2-scan.py"这个Python脚本时,你需要确保你有相应的环境支持Python运行,并且对目标Struts2应用有一定的访问权限。通常,这个脚本会遍历一系列的漏洞测试用例,针对每个可能的漏洞进行探测。扫描完成后...

Global site tag (gtag.js) - Google Analytics