首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > MyJavaServer的帐号注册Java测试题
【标  题】:MyJavaServer的帐号注册Java测试题
【关键字】:MyJavaServer,Java
【来  源】:http://blog.csdn.net/leafxx/archive/2006/10/02/1317960.aspx

MyJavaServer的帐号注册Java测试题

最近一直在找免费的j2ee空间,发现MyJavaServer很不错,免费并且支持java5.0
有趣的是注册必须要先完成一道java测试题,他的在线编译和测试用例运行比较有意思
,题目不难

Signup Challenge

Master a simple Java programming challenge (STATUS: NOT PASSED)

As the principal engineer of an HTTP web server, you are responsible for implementing the request processing subsystem of the server.
An incoming request for a specific resource, identified by an URI, must be dispatched to the appropriate handler according to the server configuration which maps URIs to request handlers. 'HandlerFactory.getHandler' must be implemented:
public class HandlerFactory
{
public String getHandler(String[] config, String requestUri)
{
}
}

The string array 'config' contains URI patterns and handler names. Two consecutive values form a key-value pair comprised of URI pattern and handler. 'requestUri' represents an incoming request, the URI to match against the configured handlers. 'getHandler' must return the correct handler for a given URI as a string value.

An URI pattern never contains wildcards and represents the start of an URI string, a prefix. Matching must be implemented accordingly. The handler with the longest matching URI pattern wins if more than one pattern matches. If no handler can be found, "mKgVEAQ" must be returned.

Example input:

  String[] config: { "/", "MainServlet", "/nav", "NavigationServlet" }
  String requestUri: "/nav/test"

  Correct result: "NavigationServlet"

In this example, the configuration contains a mapping of "/" to "MainServlet" and "/nav" to "NavigationServlet". In the case of an incoming URI "/nav/test.nav", "NavigationServlet" is the correct choice because its pattern is longer than that of "MainServlet".

把代码贴到题目下面的文本编辑框里,后台会自动编译并测试,如果运行通过,则开放注册,否则给出错误提示
--------------------------------
这里给出我的实现:

按照TDD,先写测试用例
import org.junit.Test;

public class HandlerFactoryTest {
    private HandlerFactory handlerFactory = new HandlerFactory();

    @Test
    public void testGetHandler() {
        String[] pattern = { "/", "MainServlet", "/nav", "NavServlet",
                "/nav/filter", "FilterServlet" };
        assertEquals("MainServlet", handlerFactory.getHandler(pattern, "/"));
        assertEquals("NavServlet", handlerFactory.getHandler(pattern, "/nav"));
        assertEquals("NavServlet", handlerFactory.getHandler(pattern, "/nav/"));
        assertEquals("FilterServlet", handlerFactory.getHandler(pattern,
                "/nav/filter"));
        assertEquals("myqPnW", handlerFactory.getHandler(pattern, "n/filter"));
        assertEquals("myqPnW", handlerFactory.getHandler(pattern, "nomapping"));

        assertEquals("TestServlet2", handlerFactory.getHandler(new String[] {
                "/test2", "TestServlet2", "/test", "TestServlet" }, "/test2/"));
    }
}
 
下面是实现:
public class HandlerFactory {
    public static final String NO_MAPPING = "myqPnW";
   
    public String getHandler(String[] config, String requestUri) {
        String mappingServlet = NO_MAPPING;
        int preMappingLength = 0;
        for (int i = 0; i < config.length; i = i + 2) {
            String pattern = config[i];
            if (requestUri.startsWith(pattern) && pattern.length() > preMappingLength) {
                mappingServlet = config[i + 1];
                preMappingLength = pattern.length();
            }
        }
        return mappingServlet;
    }
}
Java学习笔记——中文字符初步解决方案(稍微更新了下):【上一篇】
RMI的安全问题:【下一篇】
【相关文章】
  • Java学习笔记——中文字符初步解决方案(稍微更新了下)
  • Java变量类型间的相互转换
  • EasyJWeb作为一个快速Java Web MVC框架,其设计目标不尽是要简化软件开发人员的代码书写工作,更是要能方便...
  • 嵌入式Linux和Java 技术——天生的合作者
  • JAVA入門須知!!!!!!!!
  • UML for Java Programmers中文共享版
  • junit in java 真正的测试用例实战!
  • Java开发的IDE工具及下载地址
  • 用Javascript从地址栏中读取查询参数
  • javascript写的图片转换
  • 【随机文章】
  • PhotoImpact制作电影胶片
  • ESFramework介绍之(20)―― 插件自动升级
  • 们需要在Autoexec.bat文件中设置path
  • 了解WEB页面工具语言XML(三)支持工具
  • 《TCP/IP详解,卷2:实现》读书笔记-以太网和IP
  • JDK不兼容异常(class file has wrong version 49.0, should be 48.0)及解决方法
  • DBF文件转为MDB文件的方法
  • 键盘侦听器的综合应用
  • JSP语法-
  • Directshow开发的一些基本概念和技巧
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.