入门案例使用步骤
- 导入坐标。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
- 在web.xml中配置核心控制器DispatcherServlet
- 在springMVC.xml中配置spring注解扫描的包,视图解析器,springMVC框架注解的支持
- 编写Servlet,使用@Controller注解,在方法上使用@RequestMapping配置路径
- 编写jsp访问Servlet
常用注解
- RequestParam:绑定请求参数
- RequestBody:获取请求体内容
- PathVaribale:绑定url中的占位符
- RequestHeader:获取请求头
- CookieValue:给参数绑定cookie
- ModelAttribute:出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法。 出现在参数上,获取指定的数据给参数赋值。
- SessionAttribute
响应数据
- 返回值为ModelAndView
ModelAndView mv = new ModelAndView();
mv.addObject("username", "张三");
mv.setViewName("success");
- 转发:forward:/…/…
注意不以“/”开头表示当前路径下 - 重定向:redirect:
同转发,不以“/”开头表示当前路径下 - List item
文件上传
- 传统上传方式
需要的jar包commons-fileupload.jar,commons-io.jar
需要自己编写代码获取ServletFileUpload对象,解析请求体,得到上传文件项。最后写入服务器
- springMVC上传方式
需要的jar包commons-fileupload.jar,commons-io.jar
配置文件解析器对象,要求id名称必须是multipartResolver
< bean id=“multipartResolver” class=“org.springframework.web.multipart.commons.CommonsMultipartResolver”>
< property name=“maxUploadSize” value=“10485760”/>
< /bean >
可直接获得上传文件项,需要注意Controller中的方法的参数名必须与jsp表单中文件项的name属性值相同。
- springMVC跨服务器上传
需要的jar包commons-fileupload.jar,commons-io.jar,jersey-core.jar,jersey-client.jar
// 创建客户端对象
Client client = Client.create();
// 连接图片服务器
WebResource webResource = client.resource(path+filename);
// 上传文件
webResource.put(upload.getBytes());
异常处理
- 编写自定义异常类
- 编写异常处理器实现HandlerExceptionResolver接口
- 在resources下的springMVC.xml中配置异常处理器
配置异常处理器
< bean id=“sysExceptionResolver” class=“cn.itcast.exception.SysExceptionResolver”/>
拦截器设置
拦截器说明:拦截器是SpringMVC框架独有的,只会对控制器中的方法进行拦截。
- 编写拦截器实现HandlerInterceptor接口
- 配置拦截器
配置拦截器
< mvc:interceptors>
< mvc:interceptor>< mvc:mapping path="/user/*"/>
哪些方法不进行拦截
< mvc:exclude-mapping path=""/>
注册拦截器对象
< bean class=“cn.itcast.demo1.MyInterceptor1”/>
< /mvc:interceptor>
< /mvc:interceptors>
补充
- ModelAndView对象中的数据是存到request域中
- @RequestBody 接收json格式的参数。若前端的参数为json格式,必须用此注解接收。
- @ResponseBody 返回值直接用json格式传给前端。