β

Springmvc 框架学习(一) HelloWorld

码农日记 149 阅读

(一)搭建开发环境

1.建立动态web工程

2.导入jar包及其依赖包

(1).为了简单,将spring-framework-3.1.1.RELEASE-with-docs.zip/dist/下的所有jar包拷贝到项目的WEB-INF/lib目录下;

(2).需要添加Apache commons logging日志,此处使用的是commons.logging-1.1.1.jar;

(二)配置开发环境

1.配置web.xml


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

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<display-name></display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 手动配置文件路径 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>*.action</url-pattern>
	</servlet-mapping>
</web-app>

load-on-startup: 表示启动容器时初始化该Servlet;

url-pattern: 表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。“*.action”表示拦截所有以action为扩展名的请求。

自此请求已交给Spring Web MVC框架处理,因此我们需要配置Springmvc的配置文件,


<init-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:spring-mvc.xml</param-value>
</init-param>

是手动配置springmvc的配置文件位置及文件名。如无该配置则DispatcherServlet会默认加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例为WEB-INF/ dispatcher-servlet.xml。

2.配置springmvc 配置文件 spring-mvc.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

<!-- 注:如果出现同名,BeanNameUrl与SimpleUrl谁起作用。默认情况下按xml配置的前后顺序 也可以配置order属性的顺序。其值越小优先级越高 -->
<!-- 处理器映射 -->
<!-- BeanNameUrlHandlerMapping处理器映射 -->
<bean id="beanNameUrlHandlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

<!-- SimpleUrlHandlerMapping处理器映射 -->
<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- value的值指向控制器的id -->
<prop key="a.action">myController</prop>
<prop key="b.action">myController</prop>
<prop key="myController.action">myController</prop>
</props>
</property>
</bean>
<!-- controllerClassNameHandlerMapping控制器类名处理器映射 -->
<bean id="controllerClassNameHandlerMapping"
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
</bean>

<!-- 控制器 -->
<bean id="myController" name="/myController.action" class="cn.ytu.web.controller.MyController"></bean>

<!-- PersonCommandController命令控制器 -->
<bean id="personCommandController" class="cn.ytu.web.controller.PersonCommandController"></bean>

<!-- SimpleFormController 简单表单控制器 -->
<bean id="personFormController" class="cn.ytu.web.controller.PersonFormController">
<property name="formView" value="personForm"></property>
<property name="successView" value="index"></property>
</bean>

<bean id="myWizardController" class="cn.ytu.web.controller.MyWizardController">
<property name="pages">
<list>
<value>wizard/basicInfo</value>
<value>wizard/eduInfo</value>
<value>wizard/workInfo</value>
</list>
</property>
</bean>
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>

BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射,如URL为 “上下文/myController”,则Spring配置文件必须有一个名字为“/myController”的Bean,上下文默认忽略。注意,url中的名字除Controller外不能出现大些字母,且Controller可以不写 。

SimpleControllerHandlerAdapter: 表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean可以作为Spring Web MVC中的处理器。

视图解析器配置


<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

2.处理器Controller


public class MyController extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return new ModelAndView("hello");
    }
}

public ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp) :实现相应的功能处理,将命令对象传入业务对象进行业务处理,最后返回ModelAndView对象;
ModelAndView:包含了视图要实现的模型数据和逻辑视图名;
return new ModelAndView(“hello”):表示设置逻辑视图名为“hello”,视图解析器会将其解析为具体的视图,如前边的视图解析器InternalResourceVi。internalResourceViewResolver会将其解析为“WEB-INF/jsp/hello.jsp”。

3.视图hello.jsp(WEB-INF/jsphello.jsp)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Hello World</title>
  </head>
  <body>
    Hello SpringMVC! <br>
  </body>
</html>

在浏览器地址栏输入:http://localhost:8080/springmvc/mycontroller.action

作者:码农日记
Android, iOS, HTML5, Cloud and more
原文地址:Springmvc 框架学习(一) HelloWorld, 感谢原作者分享。

发表评论