springMVC实例

Eclipse 中创建一个工程springMVC 然后按照下面的步骤添加文件

配置web.xml文件

在 springMVC 的WebContent目录下创建web.xml。在使用Struts 2时,需要在web.xml文件配置FilterDispatcher,在使用Spring的MVC框架时,也需要配置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" 
	id="WebApp_ID" version="3.0">
  <display-name>springMVC</display-name>
  
  <!--配置Sring MVC的核心控制器DispatcherServlet -->
  <servlet>
  	<servlet-name>dispatcherServlet</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>dispatcherServlet</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
上面的代码对DispatcherServlet类进行配置,所有后缀名为.do的请求都会被DispatcherServlet处理。
编写用于输出的页面
在WebContent文件夹下面创建sayHello.jsp,该页面用来被Spring的控制器调用向页面上输出一个字符串,代码如下:
<%@page contentType="text/html;charset=UTF-8"%> 
<html> 
<head><title>第一个Spring MVC实例</title></head> 
<%
String str = (String)request.getAttribute("helloWorld");
%>
<body> 
   <h1>您输入的欢迎语是<%=str%></h1>
</body> 
</html>

创建控制器

Spring的MVC框架也有充当控制器的组件。下面先在springMVC中创建一个包com.examp,然后在其中添加HelloWorldAction.Java类,用于调用sayHello.jsp去显示字符串,代码如下:
package com.examp;

import java.util.HashMap;
import java.util.Map;

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 HelloWorldAction implements Controller{

    private String helloWorld;      //该属性用于获取配置文件中的helloWorld属性
    
    private String viewPage;        //用于获取配置文件中的viewPage属性

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		
		Map<String,String> modal = new HashMap<String,String>();
		modal.put("helloWorld", getHelloWorld());
		return new ModelAndView(getViewPage(),modal);
	}

	public String getHelloWorld() {
		return helloWorld;
	}

	public void setHelloWorld(String helloWorld) {
		this.helloWorld = helloWorld;
	}

	public String getViewPage() {
		return viewPage;
	}

	public void setViewPage(String viewPage) {
		this.viewPage = viewPage;
	}
	
	
}
可以看出,上面的HelloWorldAction类实现了Controller接口。该类有两个属性viewPage和helloWorld。viewPage代表处理完后要返回的页面,helloWorld是要传给显示页面的参数。在handleRequest()方法中进行客户端请求的处理时,首先将参数helloWorld放在Map类型的变量model中,然后调用viewPage显示该参数。

创建spring的配置文件

在springMVC WebContent下面编写文件dispatcherServlet-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="localeResolver"
		class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"></bean>
		
	<!--配置控制器的映射 -->
	<bean id="urlMapping"
		class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="helloWorld.do">helloWorldAction</prop>
			</props>
		</property>
	</bean>

	<!--配置视图 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass">
			<value>org.springframework.web.servlet.view.InternalResourceView</value>
		</property>
	</bean>

	<!--指定控制器的实现类,并且配置其参数的值 -->
	<bean id="helloWorldAction" class="com.examp.HelloWorldAction">
		<property name="helloWorld">
			<value>Hello Spring World!</value>
		</property>
		<property name="viewPage">
			<value>sayHello.jsp</value>
		</property>
	</bean>
</beans>
用<bean id="helloWorldAction" class="com.examp.HelloWorldAction">指定控制器的实现类是com.examp.HelloWorldAction,并且用helloWorldAction来唯一标识该控制器。 用<prop key="helloWorld.do">helloWorldAction</prop>为HelloWorldAction建立映射,其中helloWorldAction就是HelloWorldAction类的id,helloWorld.do为访问HelloWorldAction的URL。 在浏览器中输入http://localhost:8080/springMVC/helloWorld.do,就可以访问到HelloWorldAction类。
<value>Hello Spring World!</value>用来给HelloWorldAction类的属性helloWorld赋值。<value>sayHello.jsp</value>用来给其viewPage属性赋值,这样在HelloWorldAction类中才能获取它们。
id为viewResolver的bean用来定义视图解析器。

运行springMVC实例

Eclipse中启动Tomcat,在浏览器中输入http://localhost:8080/springMVC/helloWorld.do,可以访问到sayHello.jsp。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值