美文网首页
myeclipse进行springmvc配置 32位 win10

myeclipse进行springmvc配置 32位 win10

作者: elite_kai | 来源:发表于2017-10-12 16:34 被阅读64次

    最近自己一直在学习java,了解了springmvc,并自己动手进行了配置,在网上搜了很多,也尝试了很多次,终于成功了,目前还不知道具体的原理是什么,但是可以成功的运行。我的理解是,先实现功能然后再去理解原理O(∩_∩)O
    首先我们要对项目进行配置
    向WebRoot/WEB-INF/lib这个文件夹中拖入springmvc的jar包,拖入之后要看下build path 中的Libraries中是否有刚才拖入的springmvc的jar包
    下面附上springmvc的jar包https://github.com/elite-kai/java
    如果想要返回json格式的数据,则需要向WebRoot/WEB-INF/lib这个文件夹中拖入jackson的jar包
    下面说下步骤

    在web.xml中的代码如下

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://JAVA.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <!--configure the setting of springmvcDispatcherServlet and configure the mapping-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        
        <!--处理从页面传递中文到后台而出现的中文乱码问题-->  
        <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>  
        </filter>  
        <filter-mapping>  
            <filter-name>encodingFilter</filter-name>  
            <url-pattern>/*</url-pattern>  
        </filter-mapping>     
        
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:springmvc-servlet.xml</param-value>
          </init-param>
          <!-- <load-on-startup>1</load-on-startup> -->
    </servlet> 
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    </web-app>
    

    springmvc-servlet.xml 中的代码

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xmlns:mvc="http://www.springframework.org/schema/mvc"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans    
                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
                            http://www.springframework.org/schema/context    
                            http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                            http://www.springframework.org/schema/mvc    
                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
        <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->  
        <context:component-scan base-package="com.springmvc.controller" />  
        <mvc:default-servlet-handler />  
        <!-- if you use annotation you must configure following setting -->  
        <mvc:annotation-driven />  
        <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
            <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->  
            <!-- value="/WEB-INF/jsp/  这个地方的jsp代表的是文件夹,把一个jsp文件放入到jsp文件夹中,然后可以访问,value=".jsp" /应该代表的时候访问的文件的类型吧,具体我没有尝试,可以用html的文件尝试一下 -->  
            <property name="prefix" value="/WEB-INF/views/" />
    <!-- value=""之所以这么写,我自己进行了尝试,这样写可以用于返回其他类型的文件,如果你写的是.jsp。则只能访问jsp文件。这么写的话访问html文件是没有问题的   -->
            <property name="suffix" value="" />
        </bean>  
    
         <!-- 配置返回json格式数据-->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            <property name="messageConverters">
                <list>
                    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                        <property name="supportedMediaTypes">
                            <list>
                                <value>text/html; charset=UTF-8</value>
                                <value>application/json;charset=UTF-8</value>
                            </list>
                        </property>
                    </bean>
                    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                        <property name="supportedMediaTypes">
                            <list>
                                <value>text/html; charset=UTF-8</value>
                                <value>application/json;charset=UTF-8</value>
                            </list>
                        </property>
                    </bean>
                </list>
            </property>
        </bean>
        
    </beans>   
    

    controller中的代码

    package com.springmvc.controllers;
    
    import java.io.IOException;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.springmvc.model.UserModel;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    @RequestMapping("/pages")
    public class EnterController {
        //访问地址是http://localhost:8080/SpringMVC/pages/hello
        @RequestMapping("hello")
        public void hello() {
            System.out.println("进来了");
        }
        
        //访问地址是http://localhost:8080/SpringMVC/pages/index
        @RequestMapping("/index")
        public String index() {
            System.out.println("成功加载index");
            return "index.jsp";
        }
        
        @RequestMapping("/login")
        public String toHtml() {
            return "Login.html";
        }
        
        //这个其实是不成功的,因为myht.jsp文件没有放在views文件夹,而是放在了jsp文件夹
        //可以设置访问多个文件夹,我看到网上有实现的,目前本人还没有去尝试
        @RequestMapping("/myht")
        public String myht() {
            System.out.println("成功加载index");
            return "myht";
        }
        
        
        @RequestMapping(value="/userInfo", method=RequestMethod.GET)
        @ResponseBody
        public String userInfo() throws IOException {
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("key1", "value1");
            
            
            UserModel model = new UserModel();
            model.name = "tom";
            model.age = 30;
            
            ArrayList<Object> arrayList = new ArrayList<Object>();
            arrayList.add("arr1");
            arrayList.add("arr2");
            arrayList.add(1);
            arrayList.add(map);
            arrayList.add(model);
            
            ObjectMapper objectMapper = new ObjectMapper();
            String jsonString=objectMapper.writeValueAsString(model);
    
            return jsonString;
        }
    }
    

    下面是我的项目图


    捕获.PNG

    1>SpringMVC是项目名称
    2>com.springmvc.controllers是包名
    3>jackson.jar、springmvc.jar等在lib文件夹中
    4>views放置页面文件

    注意

    本篇文章只是介绍了配置springmvc和返回json数据,前面很多的配置信息并没有介绍,大家需要自己百度
    1> java环境的配置
    2>tomcat的配置
    3>@Controller、@RequestMapping("/pages")注解功能
    4>如何创建web工程

    相关文章

      网友评论

          本文标题:myeclipse进行springmvc配置 32位 win10

          本文链接:https://www.haomeiwen.com/subject/gjweextx.html