Eclipse
springmvc
maven
Tomcat
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我的版本1.8.0_131
下载地址:http://tomcat.apache.org/download-80.cgi
这里我选择的是8.5.14
版本,apache-tomcat-8.5.14.tar.gz,下载完之后解压到随意目录,如D:/Tomcat
下载地址:https://www.eclipse.org/downloads/eclipse-packages/
选择 Eclipse IDE for Java EE Developers
,主要做web开发用。
下载完后在安装过程中也选择Jave EE Develops(如果选择第一个,你会发现创建project中没有Dynamic Web Project工程等选项,所以务必要选对版本), 如图:
File -> New -> Maven Project
选择默认的工作空间目录就好
选择webapp项目骨架
设置项目名称及包名
新建工程完之后,出现错误提示:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
根据提示是还没配置http服务器,先创建一个Tomcat服务器
点击错误提示选项卡中的Servers
, 点击创建新服务链接
搜索Tomcat,选择Tomcat 8.5 Server
,Next下一步
选择Tomcat解压目录,如上面提到的D:/Tomcat。下面是我本机Tomcat的目录,JRE选择自己安装的。一般先安装Java,后安装eclipse,这里会列出已安装的Java版本。如果没有可选择的JRE,则点击installed JREs...
手动添加Java安装目录。
选择自己创建的项目mvc,finish完成Server创建
接下来配置Java build path
,右键点击项目 -> Build Path -> Configuire Build Path...
在Java build path窗口,选择Libraries
选项卡,添加刚才创建的Tomcat Server,点击Add Library
-> Server Runtime
-> 选择Apache Tomcat v8.5
, finish完成。
JRE System Library
默认不是我们自己安装的JDK,需要编辑修改,点击右边Edit
,选择第三个Workspace default JRE
,Finish完成退出
最后点击Apply
-> OK
,完成配置更改。
这时候再看项目目录,错误红叉消失,Java Resources
目录自动增加了src/main/java
,src/test/java
包的默认资源目录。运行Run
,熟悉的Hello World。Maven Project配置第一步成功!
maven通过pom.xml管理着各种包的依赖,相当于php的composer.json
配置spring的pom.xml如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.mark</groupId>
<artifactId>mvc</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mvc Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
<build>
<finalName>mvc</finalName>
</build>
</project>
这里主要指定Tomcat的URL拦截规则,指定使用springmvc的DispatcherServlet。同时装入spring配置文件/WEB-INF/mvc-servlet.xml
。
DispatcherServlet
是前置控制器,拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理。
位置:/src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd"
version="2.5" >
<!-- 区分项目名称,防止默认重名 -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>mvc</param-value>
</context-param>
<!-- Spring的log4j监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- 默认配置文件/WEB-INF/applicationContext.xml -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 字符集 过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring view分发器 -->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
这是springmvc的配置文件。
<context:component-scan>
主要指定了要遍历的package包名为cn.mark.mvc.controller
,这个在新建controller文件时要对应这个package名称。InternalResourceViewResolver
是视图解析器,以下指定视图文件目录为/WEB-INF/views
,后缀名.jsp
<mvc:annotation-driven />
是注解配置,这个允许你在controller类里加上如@controller
、@RequestMapping
注解来告诉springmvc这个类可以接收用户请求并指定URL地址映射。
位置:/src/main/webapp/WEB-INF/mvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<mvc:annotation-driven />
<context:component-scan base-package="cn.mark.mvc.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
在启动Web容器时,自动装配Spring applicationContext.xml的配置信息,这里可以初始化一些bean,如Hibernate、DataSource等。这里我们先什么也不做。
位置:/src/main/webapp/WEB-INF/applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
</beans>
输入cn.mark.mvc.controller
,这个是与mvc-servlet.xml
配置中要扫描的package对应的。
输入控制器名称TestController
创建完之后,复制以下示例代码到TestController.java
package cn.mark.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping(value="test")
public void test(Model model){
model.addAttribute("ddc", "邓莫尔, 你好! 我是Spring!");
//System.out.println("test.jsp");
}
}
在/WEB-INF目录下新建文件夹views,新建/WEB-INF/views/test.jsp文件,文件名对应控制器上的RequestMapping的value值,复制示例代码:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SpringMVC测试页面</title>
</head>
<body>
<c:out value="${ddc}"></c:out>
</body>
</html>
运行Run
,访问URL:http://localhost:8080/mvc/test
后续会介绍如何配置数据库、Hibernate以及web前端框架,如GWT、SmartGWT、ExtGWT、Vaadin等,正在学习中,待我学成归来,与大家一起分享~