SpringMVC Hello World 实例
2019独角兽企业重金招聘Python工程师标准>>>
环境的准备
安装JDK
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 选择 JDK7u80
安装JDK
配置 JAVE_HOME CLASSPATH PATH 环境变量
安装tomcat
- 下载地址:http://tomcat.apache.org/download-80.cgi
- 解压到规划的目录
安装eclipse for j2ee
- 下载地址:http://www.eclipse.org/downloads/
- 选择Eclipse IDE for Java EE Developers
- 解压到规划目录
下载spring-framework
- 下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
- 选择版本4.1.8.RELEASE
- 解压到规划目录
下载依赖包
下载commons-logging,地址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
下载log4j,地址:http://logging.apache.org/log4j/1.2/download.html
配置开发环境
- 启动eclipse
- 配置tomcate。windows-->preferences-->server-->runtime environments。add tomcat,安装地址为tomcat8的解压目录,jre选择jre7
开发Hello World
新建web工程
- 新建 Dynamic Web Project
target runtime 选择 Apache Tomcat v8.0
Dynamic web module version 选择 3.1。注意 tomcat7,不支持高版本
Configuration 选择 Tomcat v8.0
- 添加 source folder
- 配置 web module
勾选 Generate web.xml deployment descriptor
添加工程内容
- 添加依赖包
将spring-framework的包拷贝到WebContent/WEB_INF/lib下。
将commons-logging的包拷贝到WebContent/WEB_INF/lib下。
将log4j的包拷贝到WebContent/WEB_INF/lib下。
- 修改web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID" version="3.1"><display-name>SpringMVC</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
- 添加servlet 在WebContent/WEB_INF下添加 SpringMVC-servlet.xml文件,内容如下:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"><context:component-scan base-package="com.tutorialspoint" /><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean></beans>
- 添加jsp文件 在WebContent/WEB_INF/jsp下添加 hello.jsp,内容如下:
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head><title>Hello World</title>
</head>
<body><h2>${message}</h2>
</body>
</html>
- 添加controller 在src下添加class文件:HelloController.java,内容如下:
package org.springtest;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.ModelMap;@Controller
public class HelloController{@RequestMapping(value = "/hello", method = RequestMethod.GET)public String printHello(ModelMap model) {model.addAttribute("message", "Hello Spring MVC Framework World!");return "hello";}
}
运行工程
- 新建tomcat server 在servers视图中新建一个server
直接点击finish
- 配置tomcat server
选择server,然后右键,可以看到有 open start stop restart等操作
- 运行spring工程
右键web porject, Run As --> Run on Server.
在eclipse的浏览器,或者本机的浏览器地址栏输入:http://localhost:808/SpringMVC/hello 就可以看到输出的内容
调试
当修改了java的内容后,等上几秒钟就会重新编译,并且推送到tomcat目录下,刷新页面就可以看到变化。
常见问题
访问tomcat 404
是因为在servers视图中创建了server,但是没有配置使用tocat的安装目录导致。
解决方法:在servers视图删除server,并新建,新建后 勾选 “server location” 下的 “use tomcat installation”,并保存
如果“server locations”下为灰色,则删除server后重建,或者多删除几次。
spring工程无法启动
表现为tomcat无法启动
启动spring工程报错,异常信息如下:
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMVC]]at java.util.concurrent.FutureTask.report(Unknown Source)at java.util.concurrent.FutureTask.get(Unknown Source)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)at java.util.concurrent.FutureTask.run(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMVC]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)... 6 more
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;at java.lang.Class.getDeclaredFields0(Native Method)at java.lang.Class.privateGetDeclaredFields(Unknown Source)at java.lang.Class.getDeclaredFields(Unknown Source)at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:256)at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:132)at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:334)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5066)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 6 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Logat org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)... 20 more
观察日志可以看出,是由于缺少了 common-logging 和 log4j的包
访问spring工程报404
访问地址: http://localhost:8080/SpringMVC/hello 报404 是由于在servers视图,没有勾选 “server options” 下的 “publish module contexts to separate XML files”,并保存。
解决办法:勾选“publish module contexts to separate XML files”
转载于:https://my.oschina.net/u/583362/blog/523367
SpringMVC Hello World 实例相关推荐
- java spring hiberate_Spring+SpringMVC+Hibernate整合实例讲解
使用Maven构建项目,用pom.xml引入相应jar,配置以下文件 创建spring.xml: xmlns="http://www.springframework.org/schema/b ...
- SpringMVC +Hibernate 学习实例
做了好久经的spring+hibernate 只是用spring管理hibernate,但一直没有研究SpringMVC +Hibetate,所以 最近有时间 准备用springMVC + Sprin ...
- springmvc与mysql实例_Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+MySql的搭建实例,文章写得很详细,有代码有图片,最后也带有运行的效果. 一.准备工作 1. 首先创建一个 ...
- springmvc简述及实例
一.简述 springmvc是spring的一个模块,一个"小弟",用于web开发,可理解为servlet的升级版 所以了解springmvc必须先了解之前的开发模式 ------ ...
- Springmvc的helloworld实例
1. 新建package Src->new->other->package 输入包名:org.tgb.web.controller 点击"finish" 2 ...
- java+springmvc+vo,springmvc+mybatis的实例详解
前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十三)--SpringMVC入门程序(二) 1.需求 使用springmvc和mybatis完成商品列表查询. 2.整合思路 ...
- SpringMVC 登录验证实例
1.pom.xml中加入SpringMVC的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=& ...
- [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.
前言: 今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二 ...
- springmvc过滤器简单实例
自定义过滤器 package com.ssm.student.filter;import java.io.IOException; import java.io.PrintWriter;import ...
最新文章
- ASP.NET MVC 控制器激活(一)
- 学习C语言必须知道的理论知识(第二章-算法)
- 我的第一个python web开发框架(3)——怎么开始?
- 大数据与智能算法(二-应用级技术)-SMU在线学习笔记
- java 实现气泡 源码分析_冒泡排序算法原理及JAVA实现代码
- [转载] Java静态绑定与动态绑定
- Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)
- MEF(可扩展框架)使用总结
- AOP (面向切面编程)
- 【毕业答辩】你的论文答辩PPT准备好了吗?
- python写鼠标宏_最全Pycharm教程(24)——Pycharm编辑器功能之宏定义
- 全国大学生数学建模竞赛论文格式规范
- 关于Lua的下载以及wlua、luac等文件的解释
- 继谷歌之后 雅虎退出中国音乐市场
- 在线二进制取余计算机,二进制转十进制和十六进制计算器
- 轻松入门腾讯云COS部署 + 配置CDN
- LMS自适应波束形成算法(MATLAB)
- 数字资产支付行业研究报告 | TokenInsight
- 视频转文字怎么操作?快把这些方法收好
- 首批最佳骑行路线揭晓
热门文章
- DCMTK:DSRTree和DSRTreeNodeCursor类的测试程序
- OpenCV SURF FLANN匹配的实例(附完整代码)
- OpenCV简单的过滤器平滑的实例(附完整代码)
- Qt Creator分析CPU使用率
- C++smallest circle 获取外接给定点集的最小圆的中心和半径算法(附完整源码)
- C++求最小公倍數LCM的实现算法(附完整源码)
- c语言实现队列queue(附完整源码)
- C++将“引用”作为函数返回值类型的格式、好处和注意事项?
- QT的QRadioButton类的使用
- 上海浦东新区计算机学校排名2015,2015年上海市浦东新区初级中学最新排名