SpringMVC 的 URL 处理映射可以通过以下三种方式来实现:
- 注解方式
- XML 配置方式
- 接口方式
接下来我们将对这三种方式进行详细的讲解,并且提供两个示例供您参考。
1. 注解方式
注解方式是 SpringMVC 使用最广泛的一种 URL 处理映射方式。通过在 Controller 的方法上添加相应的注解来指定 URL 映射规则。
以下是一个 @RequestMapping 注解的示例:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/login")
public String login() {
return "login";
}
}
在这个例子中,我们在 UserController
类上使用了 @RequestMapping
注解来指定了该 Controller 的 URL 前缀,即 /user
。同时,在这个类的 login
方法上也使用了 @RequestMapping
注解,指定了该方法的 URL 地址为 /login
。因此,访问 http://localhost:8080/user/login
就可以进入 login
方法。
除了 @RequestMapping
注解,SpringMVC 还提供了一些其他的注解,如 @GetMapping
、@PostMapping
等,它们用来更加方便地指定 GET 或 POST 请求的 URL 映射规则,使用时只需要将 @RequestMapping
替换为相应的注解即可。
以下是一个 @GetMapping 注解的示例:
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping("/world")
public String world() {
return "Hello, world!";
}
}
这个例子中,我们在 HelloController
类上使用了 @RequestMapping
注解来指定了该 Controller 的 URL 前缀,即 /hello
。同时,在这个类的 world
方法上使用了 @GetMapping
注解,指定了该方法的 URL 地址为 /world
,且该方法只响应 GET 请求。因此,访问 http://localhost:8080/hello/world
就可以访问到 world
方法。
2. XML 配置方式
除了注解方式外,SpringMVC 还支持通过 XML 文件来配置 URL 映射规则。
以下是一个 XML 配置文件的示例:
<!-- applicationContext.xml -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/user/login">loginController</prop>
</props>
</property>
</bean>
<bean id="loginController" class="com.example.LoginController" />
在这个例子中,我们使用 SimpleUrlHandlerMapping
类来配置 URL 映射规则。其中,/user/login
是 URL 地址,loginController
是对应的 Controller 类。即访问 /user/login
时,会调用 LoginController
类的相应方法来处理请求。
3. 接口方式
除了注解方式和 XML 配置方式,SpringMVC 还支持通过实现 RequestMappingHandlerMapping
接口来自定义 URL 映射规则。
以下是一个自定义映射器的示例:
@Service
public class CustomMappingHandlerMapping extends RequestMappingHandlerMapping {
@Override
protected HandlerMethod lookupHandlerMethod(String lookupPath, HttpServletRequest request) throws Exception {
HandlerMethod handlerMethod = super.lookupHandlerMethod(lookupPath, request);
if (handlerMethod == null && lookupPath.startsWith("/custom/")) {
handlerMethod = new HandlerMethod(new CustomController(), "handleCustomRequest");
}
return handlerMethod;
}
}
在这个例子中,我们继承了 RequestMappingHandlerMapping
类,并重写了其 lookupHandlerMethod
方法来实现自定义的 URL 映射规则。具体来说,当 SpringMVC 找不到对应的 Controller 方法时,如果 URL 地址以 /custom/
开头,就会调用 CustomController
类的 handleCustomRequest
方法来处理请求。
两个示例分别演示了注解方式和 XML 配置方式,如果您需要了解更多有关 SpringMVC URL 映射的内容,可以参考官方文档:https://docs.spring.io/spring-framework/docs/5.3.12/reference/html/web.html#mvc-handlermapping。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springmvc url处理映射的三种方式集合 - Python技术站