手动创建1个基于xml配置的springmvc 项目(without Maven)
当然, 今时今日使用maven 和 springboot 去创建1个java web project会更加方便。
但是手动搭建1个会加深我对springmvc的理解。
Step1 打开eclipse 创建1个新的Dynamic web project
Step2 往project内的 WEB-INF/lib folder导入下列spring 的jar包
大部分都能在 .m2 里的repository folder找到, 如果没有可以利用别的maven project下载。
commons-logging-1.1.1.jarspring-aop-4.1.4.RELEASE.jarspring-aspects-4.1.4.RELEASE.jarspring-beans-4.1.4.RELEASE.jarspring-context-4.1.4.RELEASE.jarspring-core-4.1.4.RELEASE.jarspring-expression-4.1.4.RELEASE.jarspring-tx-4.1.4.RELEASE.jarspring-web-4.1.4.RELEASE.jarspring-webmvc-4.1.4.RELEASE.jar
Step3 初步编写web.xml 文件
在WEB-INF 文件夹创建1个web.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xlns="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.sum.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- auto start --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
Step4 启动项目(with eclipse defined tomcat runtime)
Tomcat 会报错, 找不到 WEB-INF 下的springmvc-servlet.xml
说明spring DispatcherServlet会默认在那里寻找servlet 配置文件。
Step5 修改spring 配置文件位置
在上面的web.xml 中, 为servlet springmvc 添加1个参数contextConfigLocation, 值我们写上classpath:springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xlns="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.sum.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- auto start --><load-on-startup>1</load-on-startup><!-- modify spring configuration file path and file name --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
在src文件夹下添加springmvc.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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"></beans>
重新启动项目, tomcat 的错误就消失了
到这步为止, 我们已经初步实现了springmvc 四大组件中的中央调度器 DispatcherServlet.
下面我们来实现第二个组件Handler Mapping
Step6 添加1个HandlerMapping 和1个Contoller类
在src目录下添加1个DemoController 类:
package com.home.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 DemoController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse res) throws Exception {// TODO Auto-generated method stubSystem.out.println("executed Demo controller!");return null;}}
在springmvc.xml中 导入 上面直接换个bean 以及新建1个SimpleHandlerMapping 的bean
<?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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"><bean id ="democontroller1" class="com.home.controller.DemoController"></bean><bean id = "" class= "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="urlMap"><map><!-- key means the logic name of controller --><entry key="demo" value-ref="democontroller1"></entry></map></property></bean>
</beans>
启动项目,在浏览器输入 http://localhost:8080/springmvc_manual/demo
可以见到DemoController被成功调用并执行
到这里为止, 我们实现了springmvc 中的第二个组件HandlerMapping.
还有另两个组件 HandlerAdapter 和ViewResovler , 我们并没有配入配置文件中。
其实spring 4 已经帮我们配了默认值, 但是这次我仍然想把他们也配置了。
Step7 添加1个HandlerAdapter
在springmvc.xml中添加
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
重启项目, 刷新页面, DemoController仍然可以被调用
Step8 令DemoController 返回1个jsp页面
在WebContent下建立1个jsp文件夹, 里面创建1个demo1.jsp
修改DemoController, 另它return new ModelAndView(jsp/demo1.jsp)
package com.home.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 DemoController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse res) throws Exception {// TODO Auto-generated method stubSystem.out.println("executed Demo controller!");return new ModelAndView("jsp/demo1.jsp");}}
重启项目, 效果:
其实这里Spring也帮我们使用了默认的ViewSolver, 同样地,下面我也会进行手动配置。
Step8 添加ViewResolver
在springmvc.xml中, 添加
<!-- InternalResoucesViewReslover --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"></property><property name="suffix" value=".jsp"/></bean>
prefix 和 suffix表示会在ModelAndView的值前后加上的额为值。
上面的写法就代表spring会在/WEB-INF/jsp 里寻找jsp文件
当然, 要在WEB-INF 创建jsp文件和1个demo1.jsp文件, 里面的内容改改
修改DemoController ModelAndView的值
只写demo1
重启项目, 刷新:
手动创建1个基于xml配置的springmvc 项目(without Maven)相关推荐
- 手动创建1个基于注解的springmvc项目
众所周知, SpringMvc有4个基本组件 DispatcherServlet -> 中央调度器, 使用前端设计模式拦截所有的url请求 HandlerMapping -> 分发不同的u ...
- 实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293
实例化Bean的方法(基于xml配置) 标签: spring framework 2015-09-01 13:43 918人阅读 评论(0) 收藏 举报 分类: Spring FrameWork(7 ...
- ssm整合(基于xml配置方式)
本文是基于xml配置的方式来整合SpringMVC.Spring和Mybatis(基于注解的方式会再写一篇文章),步骤如下: (1)首先自然是依赖包的配置文件 pom.xml <project ...
- Spring框架学习笔记09:基于XML配置方式搭建SSM框架实现用户登录
文章目录 一.采用MVC架构 二.用户登录运行效果 三.基于XML配置方式搭建SSM框架实现用户登录 (一)创建数据库与表 - simonshop (t_user) 1.创建数据库 - simonsh ...
- Spring框架学习笔记07:基于XML配置方式使用Spring MVC
文章目录 一.Spring MVC概述 1.MVC架构 2.Spring MVC 3.使用Spring MVC的两种方式 二.基于XML配置与注解的方式使用Spring MVC (一)创建Spring ...
- Spring MVC之基于xml配置的web应用构建
2019独角兽企业重金招聘Python工程师标准>>> 更多spring博文参考: http://spring.hhui.top/ 直接用SpringBoot构建web应用可以说非常 ...
- Spring-IOC—基于XML配置Bean
Spring-IOC-基于XML配置Bean 1.Spring 配置/管理 bean 介绍 1.Bean 管理包括两方面 1.创建bean对象 2.给bean注入属性 2.Bean配置方式 1.基于x ...
- 转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验
出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html http://www.blogjava.net/focusJ/arc ...
- 一步一步深入spring(6)--使用基于XML配置的spring实现的AOP
上节我们提到了使用基于注解实现的AOP,这节我们将用基于xml配置的方式来实现的AOP. 1.首先建立一个类,作为切面类,这个类主要用来实现注解中各种通知要实现的方法. 1 package com.y ...
最新文章
- 可穿戴医疗设备火爆背后的困境
- ECCV 2020《TRRNet: Tiered Relation Reasoning for Compositional Visual Question Answering》论文笔记
- 如何修改MySQL已有表的字符集
- 原生中文版MyBB开源论坛效果展示
- 峰情万种_Enhancement of Peak Visual
- 团队作业7——第二次项目冲刺(Beta版本)
- 计算机系统的结构分类,图解计算机结构与系统分类!!
- Java打印26个字母
- Linux 配置双网卡,同时访问内外网
- 大数据,云计算,物联网和移动互联网与传统互联网,主要有什么关系?
- 上传身份证照片js_小程序上传身份证图片的实现方法
- 2022双十一最亮投影仪推荐,当贝X3激光投影3200ANSI流明超高亮度
- 蓝桥杯计算机软件大赛什么时间,“蓝桥杯”全国软件设计大赛
- Directx11 安装、配置、报错
- 商场抽奖活动案例,键盘录入,数值拆分,求和,判断
- 数据结构 顺序表实现手机通讯录
- html四舍五入函数,Javascript四舍五入(Math.round()与Math.pow())
- 基于springboot实现学校线上教学平台管理系统【源码+论文】
- 【houdini vex】方块穿插
- 树莓派Bullseye系统安装QT