没有与URL对应的真实文件的网页?

时间:2016-12-27 01:23:14

标签: url url-rewriting url-routing

天才!

我需要制作一个类似于DBpedia(http://dbpedia.org)的演示页面。

来自不同网址的两个页面,

http://dbpedia.org/page/Barack_Obama
http://dbpedia.org/page/Lionel_Messi

显示不同的内容。

我真的不能认为DBpedia对所有个体实体都有百万页(例如Barack Obama和Lionel Messi)。

我该如何处理此类网址请求?

我对GET请求有点了解,但上面的示例网址似乎不使用GET方法。

提前谢谢!

PS。请教我这个过程。类似的东西:
1.用户在浏览器上输入URL 2. ...

2 个答案:

答案 0 :(得分:0)

访问http://dbpedia.org/page/Barack_Obama时,您的浏览器 发送GET请求,例如:

import test

服务器(dbpedia.org)接收此GET请求,然后决定要执行的操作。 从外部来看,你无法知道(肯定) 服务器如何做某事。两种常见的情况是:

  • Static web page:服务器上某处存在一个文件。 URL路径通常映射到服务器的文件系统,但not necessarily就是这种情况。

  • Dynamic web page:即时生成的文件。内容通常来自数据库,但情况不一定如此。

答案 1 :(得分:0)

在尝试了一些解决方案后,我现在正在使用Spring Web MVC框架。

也许在unor的回答中提到了动态网页解决方案。

@Controller 
public class SimpleDisplayController {

    @RequestMapping("/page/{symbolicName:[!-z]+}")
    public String displayEntity(HttpServletRequest hsr, Model model) {

        String reqPath = (String) hsr.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
        String entityLb = reqPath.substring(reqPath.lastIndexOf("/"));        

        model.addAttribute("label", entityLb);

        return "entity";

    }

}

我可以使用正则表达式获取请求,如第4行所示: @RequestMapping(" / page / {symbolicName:[! - z] +}")

上面的函数返回字符串' entity'这是用作模板的HTML文件的名称。

以下代码是示例HTML模板的正文部分。

<body>
    <p th:text="'About entity ' + ${label} + '...'" />
</body>

因为我添加了一个带有键&#39;标签的属性&#39;在上面的控制器中,模板可以处理$ {label}。

在示例HTML模板中,th:text是Spring支持的Thymeleaf(用于制作XML / XHTML / HTML5模板的Java库)的snytax。