java spring mvc 配置

来源:互联网 发布:淘宝宝贝搜索排名 编辑:程序博客网 时间:2024/04/26 01:10
        java spring mvc  是用于开发web网站的一门轻量级框架,目前使用的比较多,百度相关文档也比较全面。

        spring mvc 是spring框架的一个衍生。我是这么认为的。

        配置:首先我们在 /WEB-INF/这个目录下面新建一个web.xml文件,即是/WEB-INF/web.xml  创建这个文件后,tomcat 在启动运行的时候会自动载入解析这个文件。

        要使用spring mvc 那就得在项目中添加 spring mvc 的包。

web.xml

<!--声明文件类型是一个xml文件   版本1.0 编码utf-8-->

<?xml version="1.0" encoding="utf-8"?>

<!--所有的配置都包含在 web-app 标签下-->

<web-app>

    <!-- 静态资源不进入springmvc处理 -->
    <servlet-mapping>  
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.swf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>  
        <url-pattern>*.gif</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.jpg</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.png</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.js</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.html</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.xml</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.json</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>*.map</url-pattern>  
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.txt</url-pattern>
    </servlet-mapping>

    <!--项目名称-->
    <display-name>Index1</display-name>
    
    <!--当没有指定访问的具体路径时,默认访问以下文件-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
    </welcome-file-list>
    
    <!--如果项目中还需要使用到spring框架 就在这里添加spring 的监听-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--监听所有的请求-->
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    
    <!--配置全局变量,启动classpath 指向的就是src目录-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/xml/spring-server.xml</param-value>
    <context-param>

    <!--配置servlet-->

    <servlet>
        <!--声明该servlet的名称-->
        <servlet-name>SpringMvc1</servelt-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        
        <!--声明初始化变量-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/xml/spring-servlet.xml</param-value>
        </init-param>
        
        <!--是否在tomcat启动时实例化该类-->
        <on-load-startup>1</on-load-startup>
    <servlet>
    <servlet-mapping>
        <servlet-name>SpringMvc1</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!--session 有效时间-->
    <session-config>
        <session-timeout>
            20
        </session-timeout>
    </session-config>
</web-app>
在 src 目录下面创建spring.xml 包   在该包中添加spring-servlet.xml 和 spring-server.xml 这两个文件。
其中spring-servlet.xml 是用于解析浏览器请求(request) 以及 响应浏览器请求(response)的相关配置
spring-server.xml 是用于添加spring bean 的配置文件(如mysql配置)

spring-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: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.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"
>
    <!--添加需要扫描解析的包-->
    <context:component-scan base-package="web.app.controller" />
    <content:component-scan base-package="web.app.error" />
    
    <!--开启注解解析,这一步很重要哦,因为后面我们使用的是注解解析-->
    <mvc:annotation-driver />
    
    <!-- 不处理静态资源 如 css 、 js、 image等-->
    <mvc:default-servlet-handler />
    
    <!-- 配置内部资源视图解析器 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/view/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
    
    <!-- 支持上传文件 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8" />
        <property name="maxUploadSize" value="5400000" />
    </bean>
</beans>

在src 目录下面 我们新建 web.app.controller 包 和 web.app.error 包
web.app.controller包 用来对用户的请求进行解析
web.app.error包 用户来对程序运行中的各种错误进行处理

在web.app.controller 下新建一个IndexController.java 类
IndexController
package web.app.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.IOException;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("Index")
class IndexController
{
    @RequestMapping(value="index",method={RequestMethod.GET,RequestMethod.POST},produces="text/html;charset=utf-8")
    @ResponseBody
    public String hellWorld()
    {
        return "hello world";
    }
    
    @RequestMapping(value="index1",method={RequestMethod.GET,RequestMethod.POST})
    public void helloWorld1(HttpServletResponse response)
        throws IOException
    {
        //设置网页编码格式
        response.setCharacterEncoding("utf-8");
        //设置传输给浏览器的数据类型
        response.setContentType("text/html;charset=utf-8");
        respone.getWriter().println("hello world");
    }
}

@Controller  声明该类是一个controller (控制器)
@RequestMapping 请求映射 该类可以修饰类和方法,修饰给类 就如这里的http://xxxxxxxxxx/Index/ 修饰给方法 如index 就如这里的 http://xxxxxxxxxx/Index/index
@ResponseBody 的作用是对返回的结果不进行模版解析处理,而是直接返回给浏览器。如果不添加这个注解,就会在 bean internalResourceViewResolver 下配置的视图路径下找到该文件解析


@RequestMapping
value    :    注解的值
method   :    能够处理的请求 如RequestMethod.GET 能处理get请求,RequestMethod.POST  能处理post 请求
produces :    返回给浏览器的资源标识符,并且@ResponseBody会根据produces的值,转码成对应的字符编码




0 0