天才!
我需要制作一个类似于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. ...
答案 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。