基于xml配置的springMVC-快速入门

一:准备工作

将需要用到的spring包放进lib文件夹内,具体需要什么包自己网上查,或在我的例子里找。

二:配置文件:web.xml

主要是配置servlet路径方式和指定上下文xml文件。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3 <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_2_5.xsd" id="WebApp_ID" version="2.5">
 4
 5   <display-name>springMvcTest</display-name>
 6
 7
 8
 9   <servlet>
10
11     <servlet-name>spmvc</servlet-name>
12
13     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
14
15     /*
16
17     <init-param>
18
19         <param-name>contextConfigLocation</param-name>
20
21         <param-value>classpath*:/springMVC.xml</param-value>
22
23     </init-param>
24
25     */
26
27     <load-on-startup>1</load-on-startup>
28
29   </servlet>
30
31
32
33   <servlet-mapping>
34
35     <servlet-name>spmvc</servlet-name>
36
37     <url-pattern>*.do</url-pattern>
38
39   </servlet-mapping>
40
41
42
43   <!-- 字符集乱码,添加字符集过滤器,只能拦截post请求,get请求中文需要手动转换 -->
44
45     <filter>
46
47         <filter-name>encodingFilter</filter-name>
48
49         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
50
51         <init-param>
52
53             <param-name>encoding</param-name>
54
55             <param-value>UTF-8</param-value>
56
57         </init-param>
58
59         <init-param>
60
61             <param-name>forceEncoding</param-name>
62
63             <param-value>true</param-value>
64
65         </init-param>
66
67     </filter>
68
69     <filter-mapping>
70
71         <filter-name>encodingFilter</filter-name>
72
73         <url-pattern>/*</url-pattern>
74
75     </filter-mapping>
76
77
78
79   <welcome-file-list>
80
81     <welcome-file>index.html</welcome-file>
82
83     <welcome-file>index.htm</welcome-file>
84
85     <welcome-file>index.jsp</welcome-file>
86
87     <welcome-file>default.html</welcome-file>
88
89     <welcome-file>default.htm</welcome-file>
90
91     <welcome-file>default.jsp</welcome-file>
92
93   </welcome-file-list>
94
95 </web-app>

三:spring配置文件 spmvc-xml-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:tx="http://www.springframework.org/schema/tx"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xmlns:task="http://www.springframework.org/schema/task"

    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/context

  http://www.springframework.org/schema/context/spring-context-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/mvc      

  http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

  http://www.springframework.org/schema/task

  http://www.springframework.org/schema/task/spring-task-3.0.xsd" >

    <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

        <property name="mappings">

            <props>

                <prop key="/index.do">startControl</prop>

                <prop key="/hello.do">startControl</prop>

                <prop key="/login.do">loginController</prop><!--直接跳转方式 -->

                <!--//commandController方式

                <prop key="/add_emp.do">loginController</prop>

                <prop key="/add.do">addEmpControl</prop>

                -->

                <!-- FormController方式 -->

                <prop key="/add_emp.do">addEmpFormController</prop>

                <prop key="/multi.do">bController</prop> <!-- 定义访问multi路径1 -->

                <prop key="/doSearch.do">bController</prop> <!-- 定义访问multi路径2 -->

            </props>

        </property>    

    </bean>

    <bean id="startControl" class="com.zzk.Controller"></bean>

    <bean id="helloControl" class="com.zzk.helloController"></bean>

    <bean id="addEmpControl" class="com.zzk.EmpCommandController">

        <property name="commandClass" value="com.zzk.EMP"></property>

    </bean>

    <bean id="addEmpFormController" class="com.zzk.EmpFormController">

        <property name="commandClass" value="com.zzk.EMP"></property>   <!-- 指定类 -->

        <property name="formView" value="add_emp"></property>   <!-- 进行填写表单的页面 -->

        <property name="successView" value="success"></property><!-- 成功页面 -->

    </bean>

    <!-- 定义Multicontroller -->

    <bean id="bController" class="com.zzk.EmpMultiController">

        <property name="methodNameResolver">

            <ref local="bMethodNameResolver"/>  <!-- 使用这种解析方式  -->

        </property> 

    </bean>

    <!-- 请求路径:http://localhost:8080/springMvcTest/multi.do?method=doSearch -->

    <bean id="bMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> 

        <property name="paramName" value="method"></property> 

        <property name="logicalMappings"> 

            <props> 

                <prop key="doSearch">doSearch</prop> 

            </props> 

        </property>          

    </bean> 

    <!-- 请求路径:http://localhost:8080/springMvcTest/doSearch.do ;key值需要与方法名相同,不包括.do-->

    <bean id="cMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver"></bean>

    <!-- 第三种很少用,不做解释了 -->

    <bean id="dMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver"> 

       <property name="mappings"> 

            <value> 

                /sb/page.html=doSearch

            </value> 

        </property> 

    </bean> 

    <!-- 用于逻辑视图到真正视图的隐射 -->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>

        <property name="prefix" value="/WEB-INF/jsp/"/>

        <property name="suffix" value=".jsp"/>

    </bean>

    <!-- 这里是用于直接跳转的类UrlFilenameViewController -->

    <bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>

</beans>

四:配置文件解析

最简单访问形式:url:http://localhost:8080/springMvcTest/index.do

1.SimpleUrlHandlerMapping简单路径映射类,比较常用,接收路径请求。

 1  <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 2
 3         <property name="mappings">
 4
 5             <props>
 6
 7                 <prop key="/index.do">startControl</prop>       //通过这里找到id为startControl的bean
 8
 9             </props>
10
11         </property>
12
13     </bean>

2.<bean id="startControl" class="com.zzk.Controller"></bean>    //找到这个id,并指向这个类文件。

3.Controller.class

 1 package com.zzk;
 2
 3
 4
 5 import javax.servlet.http.HttpServletRequest;
 6
 7 import javax.servlet.http.HttpServletResponse;
 8
 9 import org.springframework.web.servlet.ModelAndView;
10
11
12
13 public class Controller implements org.springframework.web.servlet.mvc.Controller{
14
15     @Override
16
17     public ModelAndView handleRequest(HttpServletRequest arg0,
18
19             HttpServletResponse arg1) throws Exception {
20
21         // TODO Auto-generated method stub
22
23         ModelAndView mav = new ModelAndView("hello");        //这个类是用来保存view和返回信息的。
24
25          mav.addObject("message", "Hello World!");
26
27         return mav;                                     //返回给hello.jsp这个视图
28
29     }
30
31 }

4. InternalResourceViewResolver

<!-- 用于逻辑视图到真正视图的隐射 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>

        <property name="prefix" value="/WEB-INF/jsp/"/>

        <property name="suffix" value=".jsp"/>

    </bean>

5.hello.jsp

<%@ page language="java" contentType="text/html;utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<script type="text/javascript" src="WebContent/js/text.js"></script>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

ddd${message }

<img src="images/53.gif"/>

</body>

</html>

五:执行流程

url地址发送请求 –> 通过web.xml判断是否为 .do结尾的路径 -> 进入spring配置文件 -> 找到SimpleUrlHandlerMapping这个类的配置 -> 通过配置找到请求的key -> 再找到这个key 的值的对应id名的bean配置 -> 通过这个bean,进入controller类进行处理 -> 返回一个视图(“hello”) -> 回到spring配置文件,找到InternalResourceViewResolver这个配置 –> 并按它的要求找到对应的jsp文件 -> 响应。

基于xml配置的springMVC-快速入门,布布扣,bubuko.com

时间: 2024-10-12 23:47:25

基于xml配置的springMVC-快速入门的相关文章

MyBatis入门程序(基于XML配置)

创建一个简单的MyBatis入门程序,实现对学生信息的增删改查功能(基于XML配置) 一.新建一个Java工程,导入MyBatis核心jar包.日志相关的jar包以及连接Oracle数据库所需驱动包,目录结构如下 二.创建MyBatis核心配置文件mybatis-config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//myba

Spring MVC系列:(1)SpringMVC快速入门

回顾一下struts2,struts2框架有如下特点: struts.xml配置文件,必须以struts.xml命名,且放在src目录下[配置] 每次请求action时,都创建action实例[单例/多例] action类一成不变的直接或间接继续ActionSupport类[类层面] action类中的业务控制方法总是相类似的签名且无参[方法层面] action类中,接收参数要用成员变量和对应的set方法或set/get方法[成员变量层面] 1.什么是springmvc,它与spring有什么关

SpringMVC快速入门

目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css 八.spring mvc 请求如何映射到具体的Action中的方法 九. spring mvc 中的拦截器: 十. spring mvc 如何使用拦截器 十一. sp

基于XML配置的Spring MVC

1.添加jar 2.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

Spring Security应用开发(02)基于XML配置的用户登录

1.1. 基于XML配置的登录功能 经过一系列配置之后,可以使用Spring Security内置功能实现最基本的用户登录功能以及角色验证功能,这种内置的功能没有任何实用价值,仅仅用于了解Spring Security的工作方式. (1)配置web.xml. 主要是为Spring MVC和Spring Security提供一些入口,以便有机会进行Spring MVC以及Spring Security的初始化和过滤处理等工作. <servlet> <servlet-name>spri

[刘阳Java]_Spring AOP基于XML配置介绍_第9讲

基于注解配置的Spring AOP固然简单,但是这节我们会给大家介绍基于XML配置的AOP是如何应用的.为什么这么说了,因为后面我们还会介绍到Spring对Dao操作的事务管理(基于AOP的XML文件方式来配置事务) 1. 基于XML文件方式来配置Spring的AOP,则我们需要的一些基本元素如下 <aop:config.../>,此标签很重要.它是在XML里配置AOP功能的核心标签 all aspect and advisor elements must be placed within a

转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml.ActionClassName为action的简单类名,-validation为固定写法.如果Action类为cn.validate.acti

AOP实现日志打印 基于xml配置的AOP实现 切入点表达式

前置通知,后置通知,异常通知,返回通知 使用注解需要加入 在xml中加入  <aop:aspectj-autoproxy></aop:aspectj-autoproxy> 环绕通知(跟以上结果一样)  需要有返回值return rs: 基于xml配置的AOP实现(上面的注解全去掉,配置以下) ①切入点表达式的语法格式[参见第5章AOP细节] execution([权限修饰符] [返回值类型] [简单类名/全类名] [方法名]([参数列表])) 参见第5章AOP细节:演示验证 1.任

Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析

Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析 本文简要介绍了基于 Spring 的 web project 的启动流程,详细分析了 Spring 框架将开发人员基于 XML 定义的 Bean 信息转换为 Spring 框架的 Bean Definition 对象的处理过程,向读者展示了 Spring 框架的奥妙之处,可以加深开发人员对 Spring 框架的理解. 0 评论: 秦 天杰, 软件工程师, IBM China 2013 年 9 月 02 日 内容 在 IBM