`
huibin
  • 浏览: 750638 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

最简单的Spring MVC入门示例

阅读更多
应一位朋友的要求,写一个最简单的spring示例,使用spring的MVC,并应用了spring的依赖注入,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务管理,远程调用,代理等这些功能)

  spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解。

  首先,要在web.xml中配置DispatcherServlet,它是作为Spring MVC的前端控制器.必须在web.xml中配置好,如下

<servlet>
<servlet-name>ntx</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

  实际上,spring的配置文件可以分切到多个xml文件,我们这个简单的示例就把它配置到ntx.xml中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans
default-autowire="no"
default-lazy-init="false"
default-dependency-check="none"


<bean id="loginService" class="ntx.service.serviceimpl.LoginServiceImpl"/>

<bean id="loginController" class="ntx.controller.LoginController">
<property name="loginService">
<ref bean="loginService"/>
</property>
<property name="gotoUrl">
<value>/showResult.jsp</value>
</property>
</bean>

<bean id="SimpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/userLogin.do">loginController</prop>
</props>
</property>
</bean>
</beans>

  配置好上面的这些后,要在WEB-INF下要建立ntx-servlet.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
 <property name="prefix"><value></value></property>
 <property name="suffix"><value></value></property>
</bean>
</beans>

  接下来,要指明哪些请求将交给spring的DispatcherServlet来处理,所以在web.xml中添加<servlet-mapping>

<servlet-mapping>
 <servlet-name>ntx</servlet-name>
 <url-pattern>*.do</url-pattern>
</servlet-mapping>

  为了能正确载入DispatcherServlet等配置文件,我们要在web.xml中配置一个上下文载入器ContextLoaderListener或者ContextLoaderServlet,我们这里为了兼容版本较低的Serlvet容器(实际上我采用的2.4),采用第二种:

<servlet>
 <servlet-name>context</servlet-name>
 <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
 <load-on-startup>100</load-on-startup>
</servlet>

  这样就全部配置完毕了,当然,上面的ntx.xml是我在项目完成以后才配置完成的,这里不再多讲,有bean元素的配置大家可以参考有关资料理解,很容易理解的,下面再给出完整的web.xml配置以及java<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/ntx.xml</param-value>
</context-param>
<servlet>
 <servlet-name>ntx</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
 <servlet-name>context</servlet-name>
 <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
 <load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>ntx</servlet-name>
 <url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

  根据ntx.xml知道,总共有三个java文件,LoginController.java是控制器,继承了最简单的Controller(实际上spring有很多控制器供我们选择),接下来是一个简单控制器的源码:

/** *//**
* program NtxSpring
* date 2006-9-27
* @author 张逸轩
*/
package ntx.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import ntx.service.LoginService;

/** *//**@spring.bean id="loginController"
* @spring.property name="gotoUrl" value="/showResult.jsp"
* @spring.property name="loginService" ref="loginService"
*/

/** *//**
* 作用描述:spring示例
*
* 说明:spring示例,以上的spring标签方便使用xdoclet生成spring配置文件
*
* @author 张逸轩
* Copyright(c)2006 cleverfox
*/
public class LoginController implements Controller...{

private LoginService loginService ;
private String gotoUrl;
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception ...{
 String userName = request.getParameter("userName");
 this.getUserInfo(request, userName);
 return new ModelAndView(this.getGotoUrl());
}

private void getUserInfo(HttpServletRequest request,String userName)...{
 String userInfo = loginService.getUserInfo(userName);
 request.setAttribute("userInfo", userInfo);
}

public String getGotoUrl() ...{
 return gotoUrl;
}
public void setGotoUrl(String gotoUrl) ...{
 this.gotoUrl = gotoUrl;
}
public LoginService getLoginService() ...{
 return loginService;
}
public void setLoginService(LoginService loginService) ...{
 this.loginService = loginService;
}

}

  还有service层的接口以及实现,较简单。

package ntx.service;
public interface LoginService ...{
 public String getUserInfo(String userName);
}package ntx.service.serviceimpl;

import ntx.service.LoginService;

public class LoginServiceImpl implements LoginService ...{
 public String getUserInfo(String userName)...{
  return "你的名字是:" + userName;
 }
}

  好了,最后是两个jsp文件,一个index.jsp用来显示一个表单,输入名字,一个showResult.jsp用来显示结果,只贴出相关的代码:

<body>
This is my Test Spring page. <br>
<div>
<form method="post" action="/userLogin.do">
<input type="text" name="userName" size="30"/><br/>
<input type="submit" value="提交"/>
</form>
</div>
</body>

<body>
This is the Result: <br>
<c:out value="${userInfo}" default="没有结果"/>
</body>

  发布到tomcat或者其它Servlet容器可以正常使用,提交以后将显示:

  This is the Result:

  你的名字是:gavin


  这是一个简单的入门示例,希望有助于刚接触spring的人加深对spring的理解。
分享到:
评论

相关推荐

    Spring MVC 入门实例

    首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...

    spring mvc 入门范例

    通过阅读《Spring MVC 3 最简单的入门示例 - OPEN 开发经验库.mht》和《spring-mvc-step-by-step.pdf》,你可以深入了解每个步骤的细节,包括设置项目、编写控制器、创建视图以及进行测试。这些文档会逐步指导你完成...

    Spring MVC入门小例子

    **Spring MVC 入门教程** Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它提供了一种模型-视图-控制器(MVC)架构,简化了开发过程,使得开发者可以专注于业务逻辑而不必过于关注底层细节。在...

    spring mvc - 入门

    通过创建一个简单的示例项目,如“demo”,你可以实践 Spring MVC 的基本使用。首先创建一个 Controller,然后配置 HandlerMapping 和 ViewResolver,最后运行服务器并测试 HTTP 请求。这样可以加深对 Spring MVC ...

    Spring MVC框架简介和使用

    为了展示如何使用 Spring MVC 构建一个简单的 Web 应用,我们可以通过实现一个基本的 HelloWorld 示例来快速入门。 #### 步骤: 1. **添加必要的 JAR 包**:首先,需要在项目中添加 Spring MVC 及其依赖库。这些库...

    helloworld spring mvc

    "helloworld spring mvc"项目是入门Spring MVC的典型示例,它帮助开发者了解如何配置和运行一个基本的Spring MVC应用。 首先,Spring MVC的核心概念包括DispatcherServlet、Controller、Model-View-Controller模式...

    spring的入门程序示例

    本示例旨在引导初学者入门Spring框架,通过一个简单的应用实例来理解其核心概念。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。依赖注入...

    Spring MVC框架3个入门例子

    Spring MVC是Spring框架的一部分,专为构建Java Web应用程序而设计。它是一个模型-视图-控制器(MVC)架构,提供...通过以上三个入门示例,你将能够掌握Spring MVC的基本用法,为进一步深入学习和实践打下坚实的基础。

    Spring MVC入门

    在Spring MVC中,`HelloWorld`是常见的第一个示例,它展示了如何设置和运行一个简单的应用程序。首先,我们需要配置Spring MVC的核心容器——DispatcherServlet,它作为前端控制器接收所有HTTP请求,并将它们分发到...

    Spring MVC 教程,快速入门,深入分析

    转发与重定向是Web开发中常用的两种请求处理方式,Spring MVC提供了简单的方法来实现带参数的重定向。 处理Ajax请求也是Spring MVC的强大功能之一,通过注解和配置可以方便地与前端进行异步交互。配置文件的编写在...

    spring 入门 示例 简单实现

    创建一个Spring入门示例,首先你需要创建一个简单的Java类,比如`ExampleService`,然后使用注解标记它,并定义一个依赖。接着,创建一个`Spring配置类`,使用`@Configuration`注解,声明bean。最后,通过`...

    Spring MVC3入门之1 Hello World(XML based)

    **Spring MVC3 入门教程** 在本文中,我们将探讨如何使用Spring MVC 3框架创建一个简单的"Hello World"应用程序。Spring MVC是Spring框架的一部分,它提供了一个模型-视图-控制器(MVC)架构来构建Web应用程序。...

    spring3 MVC 入门hello world源码

    **Spring3 MVC 入门Hello World源码解析** Spring3 MVC是Spring框架的重要组成部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)框架。本篇将深入探讨Spring3 MVC的基础知识,通过"Hello World"实例来...

    Spring MVC HelloWorld入门例子

    本篇文章将带你通过一个简单的 "HelloWorld" 示例,深入了解 Spring MVC 的基本工作原理和配置过程。 首先,我们来了解一下 Spring MVC 的核心概念: 1. **DispatcherServlet**:这是 Spring MVC 的前端控制器,...

    spring入门经典源代码

    "Spring入门经典源代码"中的每个章节都配有示例代码,这些示例涵盖了上述各种概念,包括简单的Hello World程序、DI的实例、AOP的使用、Spring MVC的Web应用开发以及数据访问的实现。通过实际运行和调试这些代码,你...

    使用IntelliJ IDEA开发基于Maven+Spring MVC的入门Java项目下载

    标题中的“使用IntelliJ IDEA开发基于Maven+Spring MVC的入门Java项目”指的是一个教程或示例项目,旨在帮助初学者了解如何在IntelliJ IDEA这个强大的集成开发环境中使用Maven构建工具和Spring MVC框架来开发Java ...

    spring mvc 教程

    学习 Spring MVC 的第一步通常是创建一个简单的 "Hello World" 示例。这通常涉及设置开发环境,配置 DispatcherServlet、HandlerMapping、HandlerAdapter 和 ViewResolver,编写处理器类(Controller),以及定义...

Global site tag (gtag.js) - Google Analytics