从零开始spring-mvc到hello-world
2017-02-19 00:12
411 查看
jdk: 1.8
eclipse java ee: 4.6
tomcat: 8.5
spring 4.3.6
想用spring-mvc开发web应用有两种方式:
1. new project->Dynamic Web Project
2. new project->Maven Project
两种有什么区别呢?
主要就再于处理依赖方面,一种是手动自己搞定,一种是自动搞定而且还可以复用,网上的多数文章都是第一种。
第一种 创建工程后 要自己去 spring.io 官网 去下载 spring-framework 这个zip 包,解压后(自己看文档或者看别人的文章或者自己瞎琢磨),在一堆 jar 包中找到那些用于 spring-mvc web 开发的 jar 包 ,复制-〉粘贴到 项目目录
这个目录下。spring-mvc 这个东西是没有单独的可下载的 都在 spring-framework 这个主包中。相省点事的可以直接下载 spring-boot 这个是个独立的 project 可单独下载这个是专门用于 web 开发的。是不是挺麻烦,就是嘛!
第二种 用maven 来自动管理依赖
运行一下这个命令 没有自己去安装
File->Maven Project
开发webapp就不要去勾选上面的
点击
在这个界面选择
点击
在这个界面有三个选项需要添写
Group id(包名): com.example.demo
Artifact id(项目名):app02
Version 默认就好
Package: 会随着 Group id 变化 当然也可以自己设定
设定好就可以
生成的目录结构
这个
此时的目录结构
现在需要 maven 来帮助搞定spring-mvc 框架依赖 修改 pom.xml
如果你官网狂了半天,找了半天肯定是找不到 因为 spring-mvc 不是独立 project 存在的。官网 spring-framework 工程给出的 maven 依赖包的设置是
官方给的这个maven依赖包设置主要是针对 spring framework 基本核心 jar 包。
嗯 所以无所谓 spring-mvc 是不是独产工程 ,spring 整个框架都是模块化的,spring-mvc也是一个独立的模块,maven会自动帮你处理好所需其它它依赖的模块。
接下来需要配置
这里此时主要是配置
servlet调度器,其实就相当动态语言框架单入口一样,根据 url 中的地址去调用并实例化相应的类,spring中的
初始化
当初始时会调用
如果配置了
配置
这个配置文件是需要被
新建一个控制器类
这是注解方式。
展示一下完整的项目结构:
运行:
项目右键 Run As->Run on Server 选择你已经配置好的tomcat服务器,在eclipse中就可以看到 服务器启动状况与程序运行情况,
eclipse 自带的浏览器或者你本机浏览器
http://localhost:8080/app02/hello/
注1:tomcat 下载安装完后,eclipse 设置 server->runtime environments 配置添加你已经安装的 tomcat ,把eclipse 与 tomcat 关联起来,编写与调试程序会非常方便 你的代码文件有任何改 eclipse 都会让 tomcat 自动 reload.
终于写完了,这篇文章应该是网络最直白最明了的 spring-mvc 入门文章了吧.
eclipse java ee: 4.6
tomcat: 8.5
spring 4.3.6
想用spring-mvc开发web应用有两种方式:
1. new project->Dynamic Web Project
2. new project->Maven Project
两种有什么区别呢?
主要就再于处理依赖方面,一种是手动自己搞定,一种是自动搞定而且还可以复用,网上的多数文章都是第一种。
第一种 创建工程后 要自己去 spring.io 官网 去下载 spring-framework 这个zip 包,解压后(自己看文档或者看别人的文章或者自己瞎琢磨),在一堆 jar 包中找到那些用于 spring-mvc web 开发的 jar 包 ,复制-〉粘贴到 项目目录
WEB-INF/lib
这个目录下。spring-mvc 这个东西是没有单独的可下载的 都在 spring-framework 这个主包中。相省点事的可以直接下载 spring-boot 这个是个独立的 project 可单独下载这个是专门用于 web 开发的。是不是挺麻烦,就是嘛!
第二种 用maven 来自动管理依赖
which mvn
运行一下这个命令 没有自己去安装
brew install maven 其它的系统自己的脑补吧
File->Maven Project
开发webapp就不要去勾选上面的
create a simple project因为勾选的话创造的就是普通java类项目会缺少用于webapp开发的一些
比如 特定的文件夹 webapp WEB-INF web.xml等等 当然如果你要说你要自已动手丰衣足食也可以,不过 一些内容 一些设置你也要自己动手搞了,搞不明白的还要去网上搜文章,不累吗?
点击
next
在这个界面选择
结尾是 -webapp这个选项,就是创建的 web项目。
点击
next
在这个界面有三个选项需要添写
Group id(包名): com.example.demo
Artifact id(项目名):app02
Version 默认就好
Package: 会随着 Group id 变化 当然也可以自己设定
设定好就可以
finish
生成的目录结构
这个
红叉不要紧,为工程 添加
tomcat类库即可
在项目右键
library这个选项卡 点击
add library选择
Server runtime
选择你本机安装的tomcat 博主安装的是最新版 8.5ok
此时的目录结构
红叉已消失
现在需要 maven 来帮助搞定spring-mvc 框架依赖 修改 pom.xml
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.6.RELEASE</version> </dependency>
如果你官网狂了半天,找了半天肯定是找不到 因为 spring-mvc 不是独立 project 存在的。官网 spring-framework 工程给出的 maven 依赖包的设置是
........ <artifactId>spring-context</artifactId> .......
spring-context.jar 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。
spring-context.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar
官方给的这个maven依赖包设置主要是针对 spring framework 基本核心 jar 包。
嗯 所以无所谓 spring-mvc 是不是独产工程 ,spring 整个框架都是模块化的,spring-mvc也是一个独立的模块,maven会自动帮你处理好所需其它它依赖的模块。
接下来需要配置
部署描述符(web.xml)
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>app02</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/app02-servlet.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>app02</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
这里此时主要是配置
org.springframework.web.servlet.DispatcherServlet
servlet调度器,其实就相当动态语言框架单入口一样,根据 url 中的地址去调用并实例化相应的类,spring中的
DispatcherServlet开箱即用相当方便
<servlet-name>app02</servlet-name>servlet-name 随便命名
<load-on-startup>1</load-on-startup>值为
1确定在加载时
初始化
org.springframework.web.servlet.DispatcherServlet
servlet调度器
当初始时会调用
DispatcherServlet
init方法然后去默认的目录
/WEB-INF中查找一个
<servlet-name>命名的xml文件 这里是
app02-servlet.xml这个形式的文件名是
约定的 xx-servlet.xml。
如果配置了
<init-param>这个参数
DispatcherServlet调度器会去
<param-value>配置的路径中查找。
<servlet-mapping>这里配置是把url地址路径 映射到
<servlet-name>app02</servlet-name>只对没有反缀名的url路径
http://xx/xx/xx/xx/起作用, 如果是有后缀名的url路径
http://xx/xx/xx/xx.css|js|png等等将不会起作用 其实本就不应该起作用,不然你怎么看
css js png这些文件。
配置
app02-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" 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.xsd"> <context:component-scan base-package="org.example.controller"></context:component-scan> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
这个配置文件是需要被
DispatcherServlet读取调用的 并告诉
servlet调度器如何查找你的
控制器类
beans xmlns这些属性是必需加的,日后会随着需要
xmlns也会跟着再多加几条。
<context:component-scan base-package="org.example.controller">这个配置就是告诉 spring 里哪个包里找你自己编写的控制器类,
mvc嘛model controller 肯定是分包存储的。
bean id="viewResolver"这个配置主要是减少编写代码时读取
view时的工作量 比如 一个view文件是 hello.jsp 在控制器类中 直接
return hello返回view就可以了。
新建一个控制器类
HelloWorld.java
package org.example.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/hello") public class HelloWorld { @RequestMapping(method = RequestMethod.GET) public String say(){ System.out.println("hello world!!! running"); return "hello"; } }
这是注解方式。
展示一下完整的项目结构:
运行:
项目右键 Run As->Run on Server 选择你已经配置好的tomcat服务器,在eclipse中就可以看到 服务器启动状况与程序运行情况,
hello world即刻出现在了你的眼前.
eclipse 自带的浏览器或者你本机浏览器
http://localhost:8080/app02/hello/
注1:tomcat 下载安装完后,eclipse 设置 server->runtime environments 配置添加你已经安装的 tomcat ,把eclipse 与 tomcat 关联起来,编写与调试程序会非常方便 你的代码文件有任何改 eclipse 都会让 tomcat 自动 reload.
终于写完了,这篇文章应该是网络最直白最明了的 spring-mvc 入门文章了吧.
相关文章推荐
- Spring 3 MVC hello world example
- spring mvc helloworld
- spring mvc Hello World
- spring mvc HelloWorld
- Maven+SpringMVC整合之helloworld
- Spring MVC Helloworld
- Spring 3 MVC hello world example – Annotation
- Maven+SpringMVC整合之helloworld
- Spring 3 MVC: Create Hello World Application In Spring 3.0 MVC(reprint)
- Spring MVC Hello World Example
- Spring 3 MVC Framework Based Hello World Web Application Example Using Maven, Eclipse IDE And Tomcat
- Maven+SpringMVC整合之helloworld
- Maven+SpringMVC整合之helloworld
- Gradle – Spring 4 MVC Hello World Example
- Spring 3 MVC hello world example
- spring mvc helloworld
- Spring 3 MVC: Create Hello World application in Spring 3.0 MVC
- Spring 3 MVC: Create Hello World Application In Spring 3.0 MVC
- springmvc + freemarker 实现hello-world
- Spring3MVC:Create Hello World application in Spring 3.0 MVC