
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
2、使用springmvc的过滤器encodingFilter com.cling.filter.EncodingFilter encodingFilter /*
web.xml
3、 1、json中的乱码处理方式一encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /*
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、导入依赖
2、创建实体类com.fasterxml.jackson.core jackson-databind2.9.1
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;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)