
SpringMVC的步骤描述


• (1) 前端控制器:调用其他组件
(2) 处理器映射器:进行地址解析并且返回对应的执行链条(例如执行请求前面还有很多过滤器之类的)
(3) 处理器适配器:被前端控制器调用,帮我们执行处理器
(4) 处理器:自己写的controller
(5) 视图解析器:解析传进来的ModelAndView


Spring-mvc.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
<!-- 注意要替换命名空间-->
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- controller的组件扫描-->
<context:component-scan base-package="com.Itheima.controller">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 配置内部资源视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- /jsp/success.jsp-->
<property name="prefix" value="/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置处理器适配器-->
<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">-->
<!-- <property name="messageConverters">-->
<!-- <list>-->
<!-- <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>-->
<!-- </list>-->
<!-- </property>-->
<!-- </bean>-->
<!-- 这句话可以替代上面的 -->
<mvc:annotation-driven/>
</beans>
相关类的实现
package com.Itheima.controller;
import com.Itheima.domain.User;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
@RequestMapping("/user")
public class UserController {
// 访问地址:http://localhost:8080/user/quick
@RequestMapping(value = "/quick",method = RequestMethod.GET,params = {"username"})
public ModelAndView user(HttpServletRequest request) {
// model 模型 用来封装数据
// view 视图 用来展示数据
ModelAndView mv = new ModelAndView();
// 设置模型数据
mv.addObject("username","itcast");
// 设置视图名称
mv.setViewName("success");
return mv;
}
@RequestMapping(value = "/quick2")
public ModelAndView user2(ModelAndView modelAndView) {
// 自动根据形参 创造了实参
// 设置模型数据
modelAndView.addObject("username","itcast");
// 设置视图名称
modelAndView.setViewName("success");
return modelAndView;
}
@RequestMapping(value = "/quick3")
public String user3(Model model) {
model.addAttribute("username","博学谷");
return "success";
}
// 这种方法知道就可以 不重点
@RequestMapping(value = "/quick4",method = RequestMethod.GET,params = {"username"})
public String user4(HttpServletRequest request) {
request.setAttribute("username","坂田盐焗鸡");
return "success";
}
/*
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>success! ${username}</h1>
</body>
</html>
*/
@RequestMapping(value = "/quick5")
@ResponseBody
public String user5() {
return "你好呀,这里直接返回字符串";
}
@RequestMapping(value = "/quick6")
@ResponseBody
public String user6() {
// 使用json转换工具将对象直接转换为json的字符串
return "你好呀,这里直接返回字符串";
}
@RequestMapping(value = "/quick7")
@ResponseBody
public String user7() {
// 使用json转换工具将对象直接转换为json的字符串
return "{\"username\":\"zhangsan\",\"age\":18}";
}
@RequestMapping(value = "/quick8")
@ResponseBody
public String user8() throws JsonProcessingException {
User user = new User();
user.setName("zhangsan");
user.setAge(18);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
return json;
}
@RequestMapping(value = "/quick9")
@ResponseBody
public User user9() {
User user = new User();
user.setName("lisi");
user.setAge(18);
// 期待的是Springmvc可以自动的将user转换成json的字符串
// 需要在Spring-mvc里面做配置 配置处理器适配器
return user;
}
}

629

被折叠的 条评论
为什么被折叠?



