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

来源:互联网 发布:各国战争潜力知乎 编辑:程序博客网 时间:2024/06/08 17:28

据说目前 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 {@Overridepublic 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
原创粉丝点击