• springMVC学习笔记二


    六、springmvc的注解

    xml的配置→注解

    1、新建一个配置文件还是在config下

    新建springAnnotation-servlet.xml

    web.xml 修改初始化为<param-value>classpath*:config/springAnnotation-servlet.xml</param-value>

    springAnnotation-servlet.xml 加入一个扫描包。扫描包下的所有类

    <context:component-scan base-package="com.tgb.web.controller.annotation"></context:component-scan>

    继续添加。上面为注解扫描包,下面为开启注解。

    spring webmvc下的目录mvc下的annotation下的两个类。注解

    <!-- 根据url去匹配类,类去匹配方法 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
        <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
        

    2、 src下的java类

    package com.tgb.web.controller.annotation;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;
    
    @Controller
    public class UserController {
        @RequestMapping(value="/user/addUser",method=RequestMethod.GET)    
        public ModelAndView addUser(){
            String result="this is the addUser function";
            return new ModelAndView("/jquery","result",result);
        }
        @RequestMapping(value="/user/delUser",method=RequestMethod.GET)
        public ModelAndView delUser(){
            String result ="this is delUser------";
            return new ModelAndView("/jquery","result",result);
        }
        @RequestMapping(value="/user/toUser",method=RequestMethod.GET)
        public ModelAndView toUser(){
            return new ModelAndView("/jquery");
        }
    }

    3、jquery里的表单里面的get方法要对应上面的method=RequestMethod.GET 。如果表单修改为post请求,就会请求不到资源。

    http://localhost:8080/springMVC1/user/toUser toUser→jquery界面→点击按钮→表单到/springMVC1/user/addUser 这个界面,返回出一行字符串

    七、sprigmvc注解优化

    1、配置优化 

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
        <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>

    修改为 

        <!-- 开启注解 -->
        
        <mvc:annotation-driven/>

    2、请求类型优化

    修改成@RequestMapping(value="/user2")

    3、继续优化

    修改成@RequestMapping("/user2")

    4、修改ModeAndView。把ModeAndView修改成String

    5、传递参数

    方法修改为public String addUser(HttpServletRequest request)

    request.setAttribute("result", result); 这样传递数据

    八、springmvc参数传递

    1、新建一个DataController

    package com.tgb.web.controller.annotation;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("/user/data")
    public class DataController {
        
        @RequestMapping("/addUser")
        public String addUser(String userName,String age,HttpServletRequest request){
            
            String result ="this is addUser------优化版";
            request.setAttribute("userName", userName);
            request.setAttribute("age", age);
            
            return "/userManager";
        }
        
        @RequestMapping("/delUser")
        public String delUser(HttpServletRequest request){
            String result ="this is delUser------优化版";
            request.setAttribute("result", result);
            return "/jquery";
        }
        @RequestMapping("/toUser")
        public String toUser(HttpServletRequest request){
            return "/addUser";
        }
    }

     见源码。

    有了以前的注解开启。

    http://localhost:8080/springMVC1/user/data/toUser →返回到一个addUser.jsp界面,然后表单到controller里面 保存数据,传递数据到userManager.jsp

    3、表单中姓名乱码。

     addUser.jsp里面为charset=UTF-8编码。

    提交到服务器,修改tomcat的config下的

     <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />

    修改为

        <Connector URIEcoding="UTF-8" port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />

     GET方法请求,然后修改tomct里面的编码也为UTF-8.所以姓名也不会乱码了

    POST方法,依然乱码

    4、在web.xml修改一下拦截

     添加如下【其中filter就是spring web jar包下的web下的filter下的CharacterEncodingFilter】

         <filter>
            <filter-name>encodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <!-- encoding filter for jsp page -->
        <filter-mapping>
            <filter-name>encodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      
  • 相关阅读:
    vue proxy代理理解
    css样式鲜为人知的属性
    vue中实现元素选中互斥
    站长统计加载慢解决方法
    微信图片预览接口
    移动端兼容问题
    请求头和响应头
    清除缓存方法
    屏幕适配及rem
    清除多个定时器
  • 原文地址:https://www.cnblogs.com/bluewelkin/p/3996971.html
Copyright © 2020-2023  润新知