springmvc的知识点总结
一、控制器
1. 控制器是Spring MVC框架中的核心组件,它负责接收请求并处理用户的输入。在Spring MVC中,控制器通常以注解@Controller标记,并通过@RequestMapping注解来指定处理请求的URL。
2. 一个简单的控制器可以像下面这样定义:
```java
@Controller
public class HomeController {
@RequestMapping("/")
public String home() {
return "index";
}
}
```
在这个例子中,HomeController类使用@Controller标记为一个控制器,并使用@RequestMapping("/")注解来指定处理根路径("/")的请求。该方法返回一个String类型的视图名称,Spring MVC将根据这个名称来查对应的视图。
3. 控制器方法还可以接收请求参数以及路径变量。例如:
```java
@RequestMapping("/user/{id}")
public String getUser(@PathVariable("id") long userId, Model model) {
User user = UserById(userId);
model.addAttribute("user", user);
return "user";
}
```
在这个例子中,@PathVariable注解用于绑定路径变量到方法的参数中。
二、视图解析
1. Spring MVC使用视图解析器来将控制器返回的视图名称解析成实际的视图。在Spring MVC的配置文件中,可以配置多个视图解析器,并按顺序来尝试解析视图名称。
2. 一个典型的视图解析器配置如下:
```xml
<beans xmlns="/schema/beans"
springmvc考试选择题 xmlns:context="/schema/context"
xmlns:mvc="/schema/mvc"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd
/schema/context
/schema/context/spring-context.xsd
/schema/mvc
/schema/mvc/spring-mvc.xsd">
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
```
在这个例子中,配置了一个InternalResourceViewResolver视图解析器,它会将控制器返回的视图名称解析为/WEB-INF/views/下的JSP文件。
三、数据绑定和验证
1. Spring MVC提供了数据绑定和验证的功能,能够将请求参数绑定到控制器方法的参数中,并进行验证。
2. 数据绑定和验证涉及到三个重要的组件:数据绑定器(DataBinder)、验证器(Validator)和校验结果(BindingResult)。
3. 数据绑定器(DataBinder)负责进行数据绑定和类型转换,例如将请求参数中的字符串转换成整数或日期类型。在控制器方法的参数中,可以使用@ModelAttribute来标记需要进行数据绑定的对象。
4. 验证器(Validator)负责对绑定的对象进行验证,确保数据的合法性。在控制器方法的参数中,可以使用@Valid来指定需要进行验证的对象,并使用BindingResult来获取验证结果。
5. 一个简单的数据绑定和验证的例子如下:
```java
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute @Valid User user, BindingResult result) {
if (result.hasErrors()) {
return "addUser";
}
userService.addUser(user);
return "redirect:/user/list";
}
}
```
在这个例子中,User类是需要进行数据绑定和验证的对象。@Valid注解用于指定需要进行验证的对象,BindingResult用于获取校验结果。
四、
1. 是Spring MVC中的一个重要组件,它可以在请求被处理前或处理后对请求进行预处理或后处理。通常用于实现一些通用的功能,例如权限验证、日志记录、性能监控等。
2. 在Spring MVC中,可以通过实现HandlerInterceptor接口来定义一个,并在配置文件中进行注册。
3. 一个简单的示例:
```java
public class AuthInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (!checkAuth(request)) {
response.sendRedirect("/login");
return false;
}
return true;
}
}
```
在这个例子中,AuthInterceptor类实现了HandlerInterceptor接口,并在preHandle方法中进行权限验证。如果没有通过权限验证,就重定向到登录页。
以上就是一些Spring MVC的重要知识点的总结。Spring MVC是一个功能强大且灵活的框架,提供了很多特性来帮助开发人员构建可维护和高效的Web应用程序。希望本文能够帮助您更好地理解Spring MVC框架。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论