栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC

springmvc实现

web.xml




    
        springmvc
        org.springframework.web.servlet.DispatcherServlet

        
            contextConfigLocation
             classpath:springmvc-servlet.xml
        
    



    
        springmvc
        /
    


resource下的springmvc-servlet.xml





    

    

    
        
        
    

    

HelloController.java

package com.cling.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
//业务处理
        String rs = "HelloSpringMVC";
        mv.addObject("msg",rs);
//返回视图
        mv.setViewName("test");
        return mv;
    }
}

test.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${msg}



2、使用注解实现

web.xml



    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
             classpath:springmvc-servlet.xml
        
        1
    
    
        springmvc
        /
    

springmvc-servlet.xml


    

    

    

    

    
        
        
    

HelloController.java

package com.cling.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

//相当于在xml中注册
@Controller
//匹配请求路径
@RequestMapping("/hello")
public class HelloController {
//    匹配请求的路径,是上面路径的一个子路径
    @RequestMapping("/h1")
    public String hello(Model model){
//        数据的封装
        model.addAttribute("msg","HelloSpringMVC");
//        返回视图层的页面名字
        return "test";
    }
}

test.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${msg}


3、RestFul风格

RestFul.java

@Controller
public class RestFul {
    @GetMapping("/add/{a}/{b}")
    public String test(@PathVariable int a, @PathVariable int b, Model model){
        int rs = a + b;
        model.addAttribute("msg","result:"+rs);
        return "test";
    }
}
4、乱码问题 1、可以使用自己写的过滤器

EncodingFilter.java

package com.cling.filter;

import javax.servlet.*;
import java.io.IOException;

public class EncodingFilter implements Filter {
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf8");
        servletResponse.setCharacterEncoding("utf8");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    public void destroy() {

    }
}

web.xml

    
        encodingFilter
        com.cling.filter.EncodingFilter
    
    
        encodingFilter
        /*
    
2、使用springmvc的过滤器

web.xml

    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        /*
    

3、 1、json中的乱码处理方式一

JsonController .java

@Controller
public class JsonController {
    @ResponseBody
    @GetMapping(value = "/j1",produces = "application/json;charset=utf-8")		//设置utf-8
    public String json1() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        User user = new User("cling",12,"男");
        String str = mapper.writevalueAsString(user);
        return str;
    }
}
2、json乱码处理方式二

springmvc-servlet.xml

    
    
        
            
            
                
            
            
            
                
            
        
    
5、Jackson的使用 1、导入依赖
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.1
        
2、创建实体类

User.java

package com.cling.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private String name;
    private int age;
    private String sex;
}

3、Jackson的使用 1、将对象转为json字符串

JsonController.java

package com.cling.controller;

import com.cling.pojo.User;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


//@RestController,类上使用这个注解,下面的所有方法都是返回接送字符串
@Controller
public class JsonController {
    //@ResponseBody注解使它直接返回一个Jason到当前的页面,而不用跳转试图
    @ResponseBody
    //使用原生的方式解决json乱码
    @RequestMapping(value = "/j1",produces = "application/json;charset=utf-8")
    public String json1() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        User user = new User("cling",12,"男");
        String str = mapper.writevalueAsString(user);
        return str;
    }
}
2、链表转json
    @ResponseBody
    @RequestMapping("/t2")
    public String json2() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        ArrayList userList = new ArrayList();
        User user = new User("cling",12,"男");
        User user1 = new User("cling1",12,"男");
        User user2 = new User("cling2",12,"男");
        User user3 = new User("cling3",12,"男");
        userList.add(user);
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        String str = mapper.writevalueAsString(userList);
        return str;
    }
3、时间转json(需要先把时间戳转为标准的格式)
   @ResponseBody
    @RequestMapping("/t3")
    public String json3() throws JsonProcessingException {
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-hh HH:mm:ss");
        String timeOut = simpleDateFormat.format(date);
        ObjectMapper mapper = new ObjectMapper();
        String str = mapper.writevalueAsString(timeOut);
        return str;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号