spring-mvc

3 篇文章 0 订阅
2 篇文章 0 订阅

spring-mvc

package com.li.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.li.domain.User;
import com.li.domain.VO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.PushBuilder;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@Controller
public class UserController {

    //相当于请求转发   可设置为重定向
    @RequestMapping("/quick1")
    public String save1(){
        System.out.println("UserController save Running...");
        return "success.jsp";
    }

    @RequestMapping("/quick2")
    public ModelAndView save2(){
//        Model: 模型  封装数据
//        View: 视图 展示数据
        //设置模型视图
        ModelAndView modelAndView = new ModelAndView();
        //设置模型视图名称
        modelAndView.setViewName("success2.jsp");
        //设置模型视图数据
        modelAndView.addObject("username","li");
        return modelAndView;
    }


    @RequestMapping("/quick3")
    public ModelAndView save3(ModelAndView modelAndView){
        modelAndView.setViewName("success2.jsp");
        modelAndView.addObject("username","li");
        return modelAndView;
    }



    @RequestMapping("/quick4")
    public String save4(Model model){
        model.addAttribute("username","model");
        return "success2.jsp";
    }

    @RequestMapping("/quick5")

    public String save5(HttpServletRequest request){
        request.setAttribute("username","request");
        return "success2.jsp";
    }
    @RequestMapping("/quick6")
    public void save6(HttpServletResponse response) throws IOException {
        response.getWriter().println("response");

    }

    @RequestMapping("/quick7")
    @ResponseBody   //该注解用于告知spring-MVC不是要进行视图展示,而是要进行response数据会写到页面中
    public String save7(){
        return "response";
    }

    @RequestMapping("quick8")
    @ResponseBody
    public String save8(){
        //返回json格式字符串
        return "{\"username\":\"lisi\",\"age\":\"21\"}";
    }

    @RequestMapping("quick9")
    @ResponseBody
    public String save9() throws JsonProcessingException {
        User user = new User();
        user.setUsername("lisi");
        user.setAge(21);
        //使用json转换工具将一个java类转换成为json数据
        ObjectMapper objectMapper = new ObjectMapper();//使用Jackson
        String s = objectMapper.writeValueAsString(user);
        return s;
    }

    @RequestMapping("/quick10")
    @ResponseBody
    public User save10(){
        User user = new User();
        user.setUsername("wangwu");
        user.setAge(12);
        return user;
    }
//spring-mvc自带获取访问的数据username 和age   基本类型参数
    @RequestMapping("/quick11")
    @ResponseBody
    public String save11(String username,int age){
        System.out.println("username: "+username+" age: "+age);
        return "username: "+username+" age: "+age;
    }


//spring-mvc自带的将前端提交的参数封装到java类中
//    如:将前端username和age封装到user中
    @RequestMapping("/quick12")
    @ResponseBody
    public User save12(User user){
        System.out.println(user);
        return user;
    }

    //spring-mvc自带的将前端提交的参数封装到数组中  如stings数组
    @RequestMapping("/quick13")
    @ResponseBody
    public void save13(String[] strings){
        System.out.println(Arrays.asList(strings));
    }

    //提交的数据为集合
    @RequestMapping("/quick14")
    @ResponseBody
    public void save14(VO vo){
        System.out.println(vo);
    }
    @RequestMapping("/quick15")
    @ResponseBody
    public void save15(@RequestBody  List<User> userList){
        System.out.println(userList);
    }

    //参数绑定注解@RequestParam   前端提交的参数可以是name也可以是username也可以不提交
    @RequestMapping("/quick16")
    @ResponseBody                      //前端可提交的参数名称   前端可以不提交      默认参数值为lizhiwei
    public String save16(@RequestParam(value = "name",required = false,defaultValue = "LIZHIWEI") String username){
        System.out.println(username);
        return username;
    }


    //Restful风格请求参数    路径后面加上/参数 在方法中配置@PathVariable注解
    @RequestMapping("/quick17/{username}")
    @ResponseBody
    public String save17(@PathVariable("username") String username){
        System.out.println(username);

        return username;
    }

    @RequestMapping("/quick18")
    @ResponseBody
    public String save18(Date date){
        System.out.println(date);
        return date.toString();
    }

    @RequestMapping("/quick19")
    @ResponseBody
    public void save19(HttpServletRequest request, HttpServletResponse response, HttpSession session){
        System.out.println(request);
        System.out.println(response);
        System.out.println(session);

    }


    @RequestMapping("/quick20")
    @ResponseBody//获取请求头中的信息
    public void save20(@RequestHeader("User-Agent") String user_agent){
        System.out.println(user_agent);

    }


    @RequestMapping("/quick21")
    @ResponseBody//获取Cookie中的信息
    public void save21(@CookieValue("JSESSIONID") String jsessionid){
        System.out.println(jsessionid);

    }

    //文件上传   此处是单文件上传多文件类似
    @RequestMapping("/quick22")
    @ResponseBody
    public void save22(String username, MultipartFile uploadFile) throws IOException {
        System.out.println(username);
        System.out.println(uploadFile);
//        获取文件名称
        String filename = uploadFile.getOriginalFilename();
//        将文件存储到本地磁盘或服务器
        uploadFile.transferTo(new File("E:\\javaweb\\spring-mvcstu0815\\src\\main\\webapp\\"+filename));
    }
}


```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.li.controller">
<!--        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>-->
    </context:component-scan>


<!--    内部资源视图解析器配置-->
   <!-- <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <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>
&lt;!&ndash;                配置返回对象自动转换为json格式&ndash;&gt;
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
            </list>
        </property>
    </bean>-->
<!--    配置改语句则会自动将返回的类转换成为json  mvc的注解驱动-->
<mvc:annotation-driven conversion-service="conversionService"/><!--要在spring-mvc注解驱动处配置类型转换器,才会让mvc用我们自定义的类型转换器    -->

<!--    静态资源的访问,spring-mvc会默认地址类似quick1,加上下面的语句用于更改默认访问地址-->
    <mvc:resources mapping="/js/**" location="/js/"/>
<!--  这个也可以用于更改默认访问地址  <mvc:default-servlet-handler/>-->


<!--    配置自定义类型转换器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="com.li.converter.DateConverter"></bean>
            </list>
        </property>
    </bean>

<!--    配置文件上传解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="maxUploadSize" value="5000000"></property>
    </bean>
</beans>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值