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的值,转码成对应的字符编码
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的值,转码成对应的字符编码