spring mvc 入门系列之一--HelloWorld(xml配置)

据说目前 spring mvc 比 struts2 使用更普遍,所以需要学习一下。

先学了一个入门的例子,以便好好领会一下  spring mvc 各部分的作用,这里记录一下这第一个项目的流程。

 环境: win10+MyEclipse10+jdk1.7+tomcat8

项目最终结构如下:

一、创建项目

在 MyEclipse10  中 New->Web Project  ,名称为 springmvc001 。

通过buid path导入必须的jar文件,如下所示:


其中spring-mvc为自定义的库,包含了spring mvc所需的jar文件,目前包含以下jar文件,仅对此项目而言并无不妥,可能有多余的文件:

二、配置文件

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>springmvc001</display-name>
  <servlet>
    <servlet-name>myspring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>myspring</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

这里给spring的分发器命名为myspring,那么在WEB-INF目录下须创建一个与此名称对应的配置文件,命名规则是 servletname-servlet.xml,所以此处要创建的配置文件名为myspring-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:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!-- 配置映射handlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  <property name="prefix" value="/jsp/" /> 
  <property name="suffix" value=".jsp" />
</bean>

<!-- 配置控制器 -->
<bean name="/hello.do" class="com.sunny.controller.HelloWorldController"/>
</beans>

三、编写view视图层的jsp文件

与前面myspring-servlet.xml 中视图解析器的配置相呼应,这里将编写两个jsp文件,并且存放在WebRoot/jsp目录下:

(1) hello.jsp---作用:输入消息内容

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'hello.jsp' starting page</title>

  </head>
  
  <body>
  <!-- 这里的actio属性值以basePath为参照 -->
   <form action="hello.do" method="post">
   <input name="hellomsg"/>
   <input type="submit" value="send" />
   </form>
  </body>
</html>

注意: 此处表单的action属性值为hello.do,将被web.xml 中的spring的DispatcherServlet拦截并处理,而DispatcherServlet将读取myspring-servlet.xml中的配置,将请求进一步提交给Controller类进行具体的处理。

(2) showMsg.jsp---作用:显示所得到的消息内容,关键代码如下:

  <body>
    ${message}
  </body>


四、编写Controller类

package com.sunny.controller;

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

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

public class HelloWorldController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse arg1) throws Exception {		
		//处理请求,向指定的view传递model信息
		ModelAndView mv=new ModelAndView();
		mv.addObject("message", "Hello,"+request.getParameter("hellomsg"));
		mv.setViewName("showMsg");
		return mv;
	}	
}

这个控制器类中,接收了来自hello.jsp中的表单内容,并将其发往名称为showMsg的视图中。根据前面在myspring-servlet.xml中的配置段,视图前缀为/jsp/,后缀为.jsp,因此访问该视图的url实质上为 /jsp/showMsg.jsp.
最后,发布到 Tomcat8服务器中,在浏览器中输入 http://localhost:8080/springmvc001/hello.jsp,输入内容后测试通过。


为了处理中文参数,项目中还简单地写了一个CharacterEncodingFilter。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值