SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。

在配置文件中配置视图解析器

<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

在配置文件中配置前端控制器

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:bean.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

SpringMVC流程

注解RequestMapping
添加在类上,表示请求URL的第一级目录;添加在方法上,表示请求URL的二级目录。
属性:
value:用于指定请求的URL。它和 path 属性的作用是一样的。
method:用于指定请求的方式。
params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。
headers:用于限制请求消息头的条件

自定义类型转换器
1.配置转换器的类,该类要实现接口Converter
2.在xml配置文件中在ConversionServiceFactoryBean加入转换类
3.开启转换类的使用

SpringMVC常用注解
1.@RequestParam表示要封装的名称
2.@RequestBody用于获取请求体内容
3.@PathVariable用于绑定url中的占位符
4.@RequestHeader用于获取请求消息头
5.@CookieValue用于把指定cookie名称的值传入控制器方法参数。
6.@ModelAttribute出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法。出现在参数上,获取指定的数据给参数赋值。
7.@SessionAttributes用于多次执行控制器方法间的参数共享。使用Model添加到request域中,使用ModelMap获取Session,使用SessionStatus删除。

响应不同的返回值
返回值是String时,会传到视图解析器
返回值是void时,也会传到视图解析器,搜寻默认的页面
返回值是ModelAndView时,可以使用ModelAndView对象的addObject方法添加对象到request域中,用setViewName方法设置跳转的页面。
返回值是String带有"forward""redirect"时,会自动解析,forward是转发,redirect是重定向
防止静态资源被过滤,需要在spring配置文件中配置mvc:resources
返回Ajax结果使用注解@ResponseBody

SpringMVC文件上传(需要commons-fileupload和commons-io支持)
1.配置文件解析器对象,id必须为multipartResolver

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760"></property>
    </bean>

2.配置上传文件表单

<form action="upload" method="post" enctype="multipart/form-data">
    上传文件:<input type="file" name="upload"><br/>
    <input type="submit" value="文件上传">
</form>

3.配置Servlet

//参数需要和name名称相同
@RequestMapping("/upload")
    public String uploadTest(HttpServletRequest request, MultipartFile upload){
        String path = request.getSession().getServletContext().getRealPath("/images/");
        File file=new File(path);
        if (!file.exists()){
            file.mkdirs();
        }
        String filename = upload.getOriginalFilename();
        try {
            upload.transferTo(new File(path,filename));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "success";
    }

跨服务器上传(需要Jersey-client和Jersey-core支持)

//创建客户端的对象
Client client = client.create();
//和图片服务器进行连接
WebResource webResource = client.resource(path + filename);
//上传文件
webResource.put(upload.getBytes());

SpringMVC异常处理
1.编写自定义异常类(做提示信息的)
2.编写异常处理器,要实现HandlerExceptionResolver接口
3.配置异常处理器(跳转到提示页面)

SpringMVC拦截器
1.编写拦截器类,实现HandlerInterceptor接口
2.配置拦截器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P_xuebuhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值