Spring MVC学习笔记——Welcome
参考:
http://blog.csdn.net/hehexiaoyou/article/details/23747617
http://www.codingyun.com/article/47.html
1.在eclipse下建立一个动态web项目springmvc_hello,记得勾选web.xml的生成按钮

2.在生成的项目的WEB-INF的lib文件夹下面导jar包
要开发一个Welcome项目需要导两个包:
一个是springmvc的包,另一个是Apache的commonslogging的包
两个包的官方下载地址分别是
http://maven.springframework.org/release/org/springframework/spring/3.2.0.RELEASE/
和http://commons.apache.org/ (bin的那个包,不是源代码包)

3.整个springmvc运行的流程

请求--><1>Dispatcher servlet(controller控制器)--><2>HandlerMapping(这个在配置文件中写,可以通过这个找到url该给哪个具体的controller来处理)
--><3>controller(具体的控制器)--><4>Model and logical viewname(具体的控制器再将值传给dispatcher servlet)
--><5>view resolver(通过这来找到对应的视图)
--><6>view
4.按照上述的步骤:
1.在导包了之后,写web.xml,每一个应用有一个web.xml文件,发送请求之后,会在mapping里面寻找.html或者.jsp等,然后找到相应的hello,然后通过hello去Servlet的定义里面查找Servlet-name是hello的Servlet服务,即找到hello-servlet.xml(在配置文件web.xml写HandlerMapping)

web.xml启动Dispatcher Servlet,写web.xml的时候把生成时候里面的display-name和welcome-file-list删除后开始写
注意:<servlet-name>hello</servlet-name>和hello-servlet.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">
<!-- 配置DispatchServlet,截获特定的URL请求 -->
<!-- 默认自动加载/WEB-INF/simpleSpringMVC-servlet.xml -->
<!-- (即<servlet-name>-servlet.xml)的Spring配置文件,启动web层的Spring容器 -->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>
2.然后写hello-servlet.xml,这个文件是写springmvc的配置文件,这个就是具体的控制器,在这里如果请求是/hello.html,则可以找到HelloController这个类,在这个类中处理过后,又向控制器返回视图,然后控制器
在WEB-INF文件夹下面新建Spring Bean Configuration File文件,要建立这个文件必须安装spring的插件,然后选中beans context和mvc这三个选项
没有spring插件的话,从spring framework reference.html这个帮助文档中寻找例子

<?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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
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-3.1.xsd"> <!-- /hello.html对应控制器HelloController -->
<bean name="/hello.html" class="org.common.controller.HelloController"></bean>
<!-- InternalResourceViewResolver视图的映射关系,还有其他很多视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean> </beans>
3.在src文件夹下建包org.common.controller,然后建HelloController类
这个类必须继承org.springframework.web.servlet.mvc.AbstractController(注意是第二个,不是Portlet)
在类中做处理,然后返回视图给控制器

package org.common.controller; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController; public class HelloController extends AbstractController { @Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
// TODO 自动生成的方法存根
System.out.println("hello"); //可以输出一句话
return new ModelAndView("hello"); //返回一个视图hello,在hello-servelet.xml写对应的映射hello.jsp
} }
4.在WEB-INF文件夹下面的jsp文件夹里面的hello.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<h1>Welcome!!</h1>
</body>
</html>
最后访问 http://localhost:8080/SpringMVC_hello/hello.html

但是,上面使用的java文件中的handler mapping一般都不用
protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
一般使用的是defaultAnnotationHandleMapping
使用annotation的HelloWord,只需要在原来的hello-servlet.xml文件中加入
<context:component-scan base-package="org.common.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
去掉
<bean name="/hello.html" class="org.common.controller.HelloController"></bean>
1.hello-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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
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-3.1.xsd"> <!-- 使用defaultAnnotationHandleMapping -->
<context:component-scan base-package="org.common.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<!-- /hello.html对应控制器HelloController -->
<!-- <bean name="/hello.html" class="org.common.controller.HelloController"></bean>-->
<!-- InternalResourceViewResolver视图的映射关系,还有其他很多视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean> </beans>
接下来就能使用Annotation来配置控制器,完全修改HelloController.java文件,加上@Controller注入
2.HelloController.java文件
package org.common.controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class HelloController { //RequestMapping表示用哪一个url来对应
@RequestMapping({"/hello","/"})
public String hello(){
System.out.println("hello");
return "hello";
} @RequestMapping("/welcome")
public String welcome(){
System.out.println("welcome");
return "welcome";
} }
3.在jsp文件夹下面新建welcome.jsp文件

Spring MVC学习笔记——Welcome的更多相关文章
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...
- Spring MVC 学习笔记1 - First Helloworld by Eclipse【& - java web 开发Tips集锦】
Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...
- Spring MVC 学习笔记(整理)
SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...
- spring MVC学习笔记
为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平.你的一个决定会影响团队未来的几年.要考虑方面太多: 1.简单易用,以提高开发效率.使小部分的精力在框架上,大部 ...
随机推荐
- [Bundling and Minification ] 二、绑定的作用
本篇接上一篇[Bundling and Minification ] 一.如何绑定 Bundling的作用有二,一是合并文件减少资源请求的个数缩短资源请求的时间.二是自动更新到最新js或者css,当合 ...
- [转]设计模式之六大原则——开闭原则(OCP)
原文地址:http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html 开闭原则(Open Closed Principle)是Ja ...
- SVM与LR的区别以及SVM的优缺点
对于异常数据,SVM比LR更好 SVM的优缺点: 优点:1.提供非常精确的分类器 2.更少的过拟合(因为有L2正则化项0.5||w||2),对噪声数据更加鲁棒(因为损失函数的原因) 缺点:1.SVM是 ...
- 使用express4.X + jade + mongoose + underscore搭建个人电影网站
(-。-;), 周末过得真是快啊, 很久以前就看到imooc上有个搭建个人电影网站一期 ,二期的视频, 这两周宅家里撸玩没事干, 我也学着搭了一个, 这些东西都是基础, 只要花点时间很好学的, no ...
- C#-WinForm-弹窗提示框-如何知道用户点击的是哪个按钮?
MessageBox.Show() 有21个重载 常用的弹窗提示框 1.一个参数,弹窗只有一个选项 2.三个参数,第一个参数是设置弹窗消息框中的文字内容:第二个参数是设置弹窗标题栏中显示的文本:第三个 ...
- Java反编译插件JadClipse
Java反编译是很容易的,现在就介绍一个反编译插件,以后我们通过Ctrl+鼠标左键查看源码就容易得多了,不用再担心源码找不到了,配置过程很简单的. 准备: 1.下载JadClipse(jar文件,ec ...
- DFS经典题,reachable or not in a 2D maze
[[0, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1], [0, 1, 0, 0, 1, 0], ...
- 【BZOJ-2177】曼哈顿最小生成树 Kruskal + 树状数组
2177: 曼哈顿最小生成树 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 190 Solved: 77[Submit][Status][Discu ...
- 警告 “util.NativeCodeLoader: Unable to load native-hadoop library for your platform”
http://blog.csdn.net/sagaryu/article/details/52137989 我的是2.6.4,用上面链接提供的编译好的资源覆盖原来的就好了. 不管也没事. 就是因为系统 ...
- Jenkins实现生产环境部署文件的回滚操作(Windows)
由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具. 既然有回滚操作,那么就会有部署操作:要实现回滚,先要实现部署的操作,我在jenkins搭建了一 ...