SpringMVC之乱码解决

 

restFul风格:

SpringMVC之乱码解决_第1张图片

SpringMVC之乱码解决_第2张图片

请求参数和参数回显:

SpringMVC之乱码解决_第3张图片

SpringMVC之乱码解决_第4张图片

 SpringMVC之乱码解决_第5张图片

model--modelMap--linkedhashmap

model是精简版

SpringMVC之乱码解决_第6张图片

转发和重定向:

SpringMVC之乱码解决_第7张图片

中文乱码解决:web.xml中加入下面这是spring为我们提供的过滤器


        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
       
            encoding
            utf-8
       

   

   
        encodingFilter
        /*
   

JSON:

前后端分离时代,后端部署接口,提供数据:

JSON是一种轻量级的数据交换格式,目前使用特别广泛。

采用完全独立于编程语言的文本格式来存储好表示数据。

JSON键值对是用来保存javascript对象的一种方式,

Ajax:

    $("#btn-create-order").click(function() {
                $.ajax({
                    url: "/orders/create",
                    data: $("#form-create-order").serialize(),
                    type: "POST",
                    dataType: "JSON",
                    success: function(json) {
                        if (json.state == 200) {
                            alert("创建订单成功!");
                            console.log(json.data);
                        } else {
                            alert("创建订单失败!" + json.message);
                        }
                    },
                    error: function(xhr) {
                        alert("您的登录信息已经过期,请重新登录!HTTP响应码:" + xhr.status);
                        location.href = "login.html";
                    }
                });
            });

拦截器:

是springmvc框架自己的,只会拦截控制器方法,

实现拦截器:

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

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class TestInterceptor implements HandlerInterceptor {
    @Override
    public void afterCompletion(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        System.out.println("afterCompletion方法在控制器的处理请求方法执行完成后执行,即视图渲染结束之后执行");

    }

    @Override
    public void postHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle方法在控制器的处理请求方法调用之后,解析视图之前执行");
    }

    @Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle方法在控制器的处理请求方法调用之后,解析视图之前执行");
        return false;
    }
}

拦截器配置:



   
   
   
       
       
       
       
       
       
   

   
       
       
       
       
   


--------------------------------------------------

ssm注解记录:

spring常用注解:

@Component注解
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注,
属性:value --- 用于指定bean的id。如果不写该属性,id的默认值是当前类名,且首字母改为小写。
@Reposityory(dao层)
@Service(业务层)
@Controller(控制层),
这4个的功能是一样的,都表示将某个类祖册到bean中,装配bean,

@AutoWired:自动装配,放在一个类中的“类属性“”变量上面,如果不能识别,
加上@Qualifier(value=""),也可以放在set方法上面
@Bean:用于把当前方法的返回值作为bean对象存入Spring的IOC容器中。
@Configuration,指定当前类是一个配置类,作用和xml配置文件相同
@ComponentScan(basePackages = "com.zhagn"),配置注解要扫描的包
@PropertySource("classpath:JdbcConfig.properties"):加载配置文件
@MapperScan("com.cy.store.mapper")注解,以配置接口文件的位置。
@Aspect//标注这是一个切面
@Before   After  Around

springmvc注解:

@Controller
控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中使用@Controller ,就无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式:

    (1)在SpringMVC 的配置文件中定义MyController 的bean 对象。
    (2)在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。



< context:component-scan base-package = "com.host.app.web" /
@RequestMapping
@RequestMapping的作用是建立请求URL和处理方法之间的对应关系

@RequestMapping可以作用在方法和类上

    作用在类上:第一级的访问目录
    作用在方法上:第二级的访问目录

@RequestMapping的属性

    path-指定请求路径的URL
    value属性和path属性是一样的
    mthod 指定该方法的请求方式
    params 指定限制请求参数的条件
    headers 发送的请求中必须包含的请求头
@ResponseBody//这样他就不会走视图解析器,直接返回一个字符串

作用:@ResponseBody注解通常使用在控制层的方法上,用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过Response响应给客户端。

@RequestBody:注解实现接收 http 请求的 json 数据,将 json 转换为 java 对象。


@Autowired

作用:spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。

正常情况下,你在userService里面要做一个userDao的setter/getter方法,但如果你用了@Autowired,你就不需要写getter/setter方法了,只需要在UserService的实现类中声明即可,之所以不用写,秘诀就在于java的“反射机制”


@Repository

小结:

springmvc:是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,,通过把模型,视图,控制器分离,将web层进行解耦,把复杂的web应用,分成逻辑清晰的几部分,简化开发,

你可能感兴趣的:(springMvc,java)