工程配置

Hasor的Web支持是一个独立的框架,在使用它之前首先引入它。在您的项目中添加下面这个依赖,然后配置 web.xml 即可。

  1. <!-- 渲染器插件依赖 -->
  2. <dependency>
  3. <groupId>net.hasor</groupId>
  4. <artifactId>hasor-web</artifactId>
  5. <version>4.1.1</version>
  6. </dependency>

接下来配置 web.xml 配置文件:

  1. <!-- 框架启动 -->
  2. <listener>
  3. <listener-class>net.hasor.web.startup.RuntimeListener</listener-class>
  4. </listener>
  5. <!-- 全局拦截器 -->
  6. <filter>
  7. <filter-name>rootFilter</filter-name>
  8. <filter-class>net.hasor.web.startup.RuntimeFilter</filter-class>
  9. </filter>
  10. <filter-mapping>
  11. <filter-name>rootFilter</filter-name>
  12. <url-pattern>/*</url-pattern>
  13. </filter-mapping>
  14. <!-- (建议)启动模块 -->
  15. <context-param>
  16. <param-name>hasor-root-module</param-name>
  17. <param-value>com.xxx.you.project.StartModule</param-value>
  18. </context-param>
  19. <!-- (可选)如果有配置文件在这里指定 -->
  20. <context-param>
  21. <param-name>hasor-hconfig-name</param-name>
  22. <param-value>hasor-config.xml</param-value>
  23. </context-param>

最后创建包 “com.xxx.you.project” 并在包中新增一个类 “StartModule” 该类,内容如下:

  1. package com.xxx.you.project;
  2. public class StartModule extends WebModule {
  3. public void loadModule(WebApiBinder apiBinder) throws Throwable {
  4. System.out.println("You Project Start.");
  5. }
  6. }

启动您的的 Web 工程,如果控制台上看到 “You Project Start.” 则证明框架成功配置。

提示

配置项 hasor-root-module 可以在配置文件中进行等效配置,使用配置文件的好处是可以提供更丰富的配置。具体如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <config xmlns="http://www.hasor.net/sechma/main">
  3. <hasor>
  4. <!-- 项目所属包:减少类扫描范围 -->
  5. <loadPackages>com.xxx.you.project.*</loadPackages>
  6. <!-- 框架启动入口 -->
  7. <startup>com.xxx.you.project.StartModule</startup>
  8. </hasor>
  9. </config>

HelloWord

这里展示基于 MVC 使用 Hasor 接收一个 Web 请求然后交给 jsp 显示的例子。

首先创建请求处理器,一个请求处理器可以简单的只包含一个 execute 方法

  1. @MappingTo("/hello.jsp")public class HelloMessage { public void execute(Invoker invoker) { invoker.put("message", "this message form Project."); }}

然后在启动模块中注册控制器

  1. public class StartModule extends WebModule {
  2. public void loadModule(WebApiBinder apiBinder) throws Throwable {
  3. //设置请求响应编码
  4. apiBinder.setEncodingCharacter("utf-8", "utf-8");
  5. // 扫描所有带有 @MappingTo 特征类
  6. Set<Class<?>> aClass = apiBinder.findClass(MappingTo.class);
  7. // 配置控制器
  8. apiBinder.loadMappingTo(aClass);
  9. }
  10. }

最后创建 hello.jsp 文件,我们把 message 打印出来:

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Hello Word</title>
  5. </head>
  6. <body>
  7. ${message}
  8. </body>
  9. </html>

当上面的一切都做好之后,启动您的 web 工程,访问: http://localhost:8080/hello.jsp 即可得到结果。