springmvc学习(一)helloworld实例

今天介绍的是springmvc的学习,越来越多的企业开始选择springmvc+mybatis来构建系统架构,在电商热门的今天,springmvc+mybatis已成为电商项目架构的很好搭配。Spring mvc和struts2都属于表现层的框架,spring mvc是Spring框架的一部分,较于struts2框架使用的更加广泛;mybatis和hibernate都属于持久层的框架,mybatis是对jdbc操作数据库的的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

首先建议eclipse安装一个springIDE,这个安装方式百度即可,安装的话就会有提示并且新建的时候能新建出配置文件

安装好以后,我们新建一个动态web项目,之后按照如下步骤来写

①配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID"
    version="3.0">

    <!-- 配置DispatcherServlet -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--配置DispatcherServlet的一个初始化参数,配置Springmvc的配置文件的位置和名称  -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <!-- 1代表项目加载的时候被创建,不是被访问的时候才被创建 -->
            <load-on-startup>1</load-on-startup>
        </servlet>
	<servlet-mapping>
	     <servlet-name>springDispatcherServlet</servlet-name>
	    <!-- 应答请求的地址,/代表可以应答所有请求 -->
	     <url-pattern>/</url-pattern>
	    </servlet-mapping>
</web-app>

其中,servlet-name可以随便写,我们命名是springDispatcherServlet,意思是spring的请求处理器,这个概念很重要。
这后的这些内容可看注释,学过servlet的人看明白应该没问题。

既然配置了请求处理器,那么就得有个请求的发起者,我在本例子中用的是index.jsp中的<a href="helloworld">hello world</a>把href的helloworld当成了一个请求的URL

②index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="helloworld">hello world</a>

</body>
</html>

当用户点击了这个超链接之后,springmvc先是通过web.xml中的springDispatcherServlet这个请求处理器把请求转到stringmvc.xml进行处理,

③stringmvc.xml,在src下面新建

<?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.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 配置自动扫描的包 -->
<context:component-scan base-package="com.bai.handler"></context:component-scan>
<!--配置视图解析器,就是如何把handler方法的返回值解析为实际的物理视图,就是return"success"怎么展现  -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

</beans>

可以看到上面先配置的是自动扫描的包,他需要扫描到具体类的具体方法,我们写了一个处理器的类HelloWorld,在包com.bai.handler下面

④处理器类

package com.bai.handler;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloWorld {
	/**
	 * @author peng
	 *1.使用@RequestMapping配置映射请求的url,这个url也就是index.jsp里面超链接的href的地址
	 *2。返回值会通过视图解析器解析为实际的物理视图,对于InternalResourceViewResolver视图解析器,会做如下的解析
	 *通过prefix+returnvalue+suffix这样的方式得到实际的物理视图,然后进行转发操作
	 *就是将请求转发到了
	 * /WEB-INF/views/success.jsp这个页面
	 */
	@RequestMapping("/helloworld")
	public String hello(){
		System.out.println("hello world");
		return "success";
	}

}

在这个类文件中,先写上@Controller 这个处理器的注释,然后是请求映射的地址@RequestMapping("/helloworld"),这个是下面的方法处理请求该地址的情况,我点击了超链接后,请求发送给/helloworld,那么走到stringmvc.xml中看到下面的hello()方法映射的地址就是该请求地址,那么这个方法就去处理这个请求,这个方法返回了字符串success
,返回了字符串还不行,需要映射到物理视图的层面,怎么映射呢?上面的stringmvc.xml配置文件中配置了视图解析器InternalResourceViewResolver

解析的方式就是      通过prefix+returnvalue+suffix这样的方式得到实际的物理视图,然后进行转发操作

此例子中返回的结果就是/WEB-INF/views/success.jsp,然后我只需要在新建views文件夹,新建success.jsp即可证明转发到了这个页面了

⑤success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
success page
</body>
</html>

下面就看一下浏览器中的结果

点击后的结果

地址栏未变,是服务器端的转发,成功。

项目的结构

项目需要的jar包

这是基于spring4.0版本的

补充一下:

还有一种web.xml配置文件中的写法

具体内容请看上面的注释,结构稍有改变

大致流程

有不对的地方,欢迎批评指正。

时间: 2024-10-26 00:57:20

springmvc学习(一)helloworld实例的相关文章

SpringMVC学习简单HelloWorld实例

首先还是从一个简单的Hello World项目说起: 我机器的开发环境为: Ubuntu12.04(不同操作系统对本系列项目没有影响): 开发工具:Eclipse For JavaEE: 数据库:MySql5.5.35; 运行环境:TomCat V7.0: JDK:JDK 1.7.0_45: 项目工程为:Dynamic Web Project: 一.项目依赖的jar包: 1.Spring框架依赖的jar包: 日志:commons-logging-1.1.3.jar: JSTL支持:jakarta

Spring-MVC入门(一):入门实例 (重点学习)

1.MVC :Model-View-Control 框架性质的C 层要完成的主要工作:封装web 请求为一个数据对象.调用业务逻辑层来处理数据对象.返回处理数据结果及相应的视图给用户. 2. 简要概述springmvc Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用了一种被称为Front Controller 的模式(后面对此模式有简要说明). Spring 的C 层框架使用了后端控制器来.映射处理器和视图解析器来共同完成

SpringMVC之HelloWorld实例

1.1 Helloworld实例的操作步骤  1. 加入jar包 2. 配置dispatcherServlet 3. 加入Spring配置文件 4. 编写请求处理器 并表示为处理器 5. 编写视图 1.2 具体步骤 1)加入Jar包 2)配置dispatcherServlet的代码(web.xml文件) 1 <!-- 配置dispatcherServlet --> 2 <servlet> 3 <servlet-name>helloworld</servlet-na

史上最全的SpringMVC学习笔记

SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet> <servlet-name>springmvc</servlet

springMVC+Hibernate3+spring3整合实例,附带基本权限功能及CURD例子

实例说明: 1.本实例的架子是在2012年为了真实项目的开发搭建的,目前已经在此架子上做了几个中小项目.分为两个不同的版本,一个是Hibernate版本,一个是ibatis版本. 2.本实例是一个SSH的完整的架子,包括了基本的权限管理及CURD的例子.权限管理包括用户管理,菜单管理,角色管理,权限分配等.CURD的例子包括了基本的CURD以及分页功能,可以做为代码复制的例子,只专为新手学习编写的. 3..在本实例的架子上已经开发了几个中小项目,系统技术架构为springMVC+Hibernat

SpringMVC学习系列(9) 之 实现注解式权限验证

对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现.但借助于Spring MVC中的action拦截器我们可以实现注解式的权限验证. 一.首先介绍一下action拦截器: HandlerInterceptor是Spring MVC为我们提供的拦截器接口,来让我们实现自己的处理逻辑,HandlerInterceptor 的内容如下: public interface Handl

springmvc学习总结(二) -- maven+springmvc+spring+mybatis+mysql详细搭建整合过程讲解

@[email protected] 写在最前 之前分享过下面这几篇: mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上)(附demo和搭建过程遇到的问题解决方法) mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下) springmvc学习笔记(一) -- 从零搭建,基础入门 这一篇,在这些练习的基础上,将它们整合在一起! 搭建步骤如下 一.新建maven项目,配置环境,测试是否配置成

SpringMVC学习资料

一.SpringMVC 1.helloworld 1.导包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.spr

SpringMVC学习系列

SpringMVC学习系列(1) 之 初识SpringMVC SpringMVC学习系列(2) 之 经典的HelloWorld实现 SpringMVC学习系列(3) 之 URL请求到Action的映射规则SpringMVC学习系列(4) 之 数据绑定-1 SpringMVC学习系列(5) 之 数据绑定-2 SpringMVC学习系列(6) 之 数据验证 SpringMVC学习系列(7) 之 格式化显示 SpringMVC学习系列(8) 之 国际化 SpringMVC学习系列(9) 之 实现注解式

(转)SpringMVC学习总结

Marvel_Will 博客园 首页 新随笔 联系 订阅 管理 SpringMVC学习总结1 转自:http://www.cnblogs.com/sunniest/p/4555801.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and conf