zoukankan      html  css  js  c++  java
  • springmvcの神总结のreadme

    ********李守宏springmvc********
    3.==
    --springmvc一个controller实现多个方法
    ----继承MultiActionController
    ----配置spring-servlet的bean
    5==静态文件的访问
    ----<!-- 静态资源访问 -->
        <mvc:resources location="/image/" mapping="/image/**"></mvc:resources>
    6注解启用访问
    -->开起注解    spring2-3以后会被代替
        <!-- 开起注解使用注解 -->
        <context:component-scan base-package="com.tgb.controller"></context:component-scan>
        <!--找方法,找类 ,注解扫描包 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
        <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
    7注解配置优化
    -->    <!-- 注解优化,mvc的配置,以上2.0,3.0会被取代 -->
        <!-- 开起注解 -->
        <mvc:annotation-driven/>
        0.0:url重复会报错,貌似是我白天的错误,注意唯一标识
    -->类上也可以使用注解
        @Controller
        @RequestMapping(value="/user2")
        public class User2Controller {
    -->method=.post/.get去掉,可一省掉很多麻烦
    -->value="/user" value也可以省去
        @RequestMapping("/addUser")
    -->modelandview 也可以省掉
    8springmvc参数传递
    -->springmvc会自动匹配到后台和jspname一样的值并传递
    -->鉴于每次都要使用request,我可以建一个基类,里面提供request,哈哈哈
    -->web.xml强制编码格式
    9->通过实体类的get set传递值,前台name和实体类中必须一致
    9json ajax 传递数据
        $(function(){
            $("#add").click(function(){
                var userName=$("#userName").attr("value");
                var age=$("#age").attr("value");
                var user={userName:userName,age:age}
            
                $.ajax({
                    url:"/springmvc/user/data/addUser",
                    type:"post",
                    data:user,
                    success:function(data){
                        alert("userName--->"+data.userName+"age--->"+data.age);
                    }
                });
            });
        });
    注意,会因为相对路径问题出错,可以右击图片属性查看地址看了解,见识啊
    10-json传递数据到页面
    使用printWriter 打印
        String result = "{"userName":" "+ user.getUserName()+"","age":""+user.getAge()+""}";
            PrintWriter out = response.getWriter();;
            //设置http相应类型
            response.setContentType("application/json");
            out.write(result);
    11-文件上传
    -->导入io和upload的jar包
    -->enctype属性规定发送到服务器之前应该如何对表单数据进行编码
    -->上传文件时form必须加enctype="enctype="multipart/form-data"
    -->配置xml
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">   
              <property name="maxUploadSize"><value>100000</value></property> 
              <property name="defaultEncoding"><value>UTF-8</value></property>
              <property name="maxInMemorySize" value="40960"></property> 
        </bean> 
    -->文件上传必须采用post方式 
        get方式是用url提交,文件自然不是url
    12上传文件优化,不推荐使用springmvc的上传,推荐使用jquery的上传,可以再客户端使用,减少web的压力
    spring通过对servlet的httpservletrequest接口进行扩展,时期能够很好的处理文件上传,扩展后的几口名为
    interface MultipartHtpServletRequest extends HttpServletRequest{
        public MultipartFile getFile(String name);
        public Map getFileMap();
        public Iterator getFileNames();
    }
    @RequestMapping("upload2")
        public String upload2(HttpServletRequest request,HttpServletResponse response) throws Exception, IOException{
            //定义解析器,实例化,解析springmvc的上下文
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
            //解析request,判断是否为Multipart类型数据
            if(multipartResolver.isMultipart(request)){
            //是则定义springmvc封装好的request
            MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)(request);
            //拿文件,迭代器,封装好的
            Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
                while(iterator.hasNext()){
                    //如果有根据迭代器中的下一个名字获取文件,MultipartFile是springmvc封装好的文件类
                    MultipartFile file = multipartHttpServletRequest.getFile((String)iterator.next());
                    if(file!=null){
                        String fileName = "demoUpload"+file.getOriginalFilename();
                        String path = "D:/"+fileName;
                        //创建一个本地关联路径的文件对象
                        File localFile = new File(path);
                        //将文件对象写到指定(本地)文件上,springmvc提供的方法
                        file.transferTo(localFile);
                        //还可以拿到输入流,就可以拿到数据or文件
                        file.getInputStream();
                    }
                    
                }
            }
            return "success";
        }
    13springmvc和spring集成
    -->web.xml中的启动顺序
        <context-param>->listener-filter-servlet
        <!-- Struts2的action由Spring来负责进行实例化 spring+struts2集成的关键点  -->
        <constant name="struts.objectFactory" value="spring" />
    ->1:添加jar包,spring和springmvc用jar包类似
      2:配置web.xml文件
  • 相关阅读:
    自考新教材-p145_5
    自考新教材-p144_4
    自考新教材-p144_3
    自考新教材-p143_2
    自考新教材-p142_3(1)
    【SQL server】安装和配置
    【,net】发布网站问题
    【LR】关于宽带与比特之间的关系
    【LR】录制测试脚本中的基本菜单
    【LR】安装LR11后遇到的问题
  • 原文地址:https://www.cnblogs.com/tingbogiu/p/5794434.html
Copyright © 2011-2022 走看看