SpringMVC是什么
Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開發(fā)框架姚建,本質(zhì)上相當(dāng)于 Servlet。
在SpringMVC之前如何開發(fā)虫蝶?
在早期Java Web開發(fā)中桩卵,還沒(méi)有MVC這個(gè)模式的概念棘催,邏輯層劲弦、控制層、顯示層的操作全部放在一個(gè)JSP文件中處理醇坝。隨著時(shí)代的進(jìn)步邑跪,項(xiàng)目的需求越來(lái)越龐大,再把所有的操作邏輯放在一個(gè)文件當(dāng)中顯然不是很好的開發(fā)模式呼猪,對(duì)于后期代碼的維護(hù)和管理也大大的增加了難度画畅。讓我們回顧一下遠(yuǎn)古時(shí)候的JSP代碼是如何編寫的:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>life.jsp</title>
</head>
<body>
<%!
private int initVar=0;
private int serviceVar=0;
private int destroyVar=0;
%>
<%!
public void jspInit(){
initVar++;
System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
}
public void jspDestroy(){
destroyVar++;
System.out.println("jspDestroy(): JSP被銷毀了"+destroyVar+"次");
}
%>
<%
serviceVar++;
System.out.println("_jspService(): JSP共響應(yīng)了"+serviceVar+"次請(qǐng)求");
String content1="初始化次數(shù) : "+initVar;
String content2="響應(yīng)客戶請(qǐng)求次數(shù) : "+serviceVar;
String content3="銷毀次數(shù) : "+destroyVar;
%>
<h1>菜鳥教程 JSP 測(cè)試實(shí)例</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>
</body>
</html>
后來(lái)MCV模式流行了起來(lái),不同的語(yǔ)言也相應(yīng)進(jìn)行了跟進(jìn)郑叠。所以后面就衍生出了SpringMVC框架夜赵,由Servelet+JSP+Java Bean組成。
SpringMVC模式下面開發(fā)
示意圖
大概的流程圖如下:
微信截圖_20220329105156.png
我們?cè)谶@里簡(jiǎn)要的寫一個(gè)SpringMVC框架下面的一個(gè)示例代碼乡革,讓大家體驗(yàn)一下純JSP 和SpringMVC框架下面的區(qū)別
示例
第一步:編寫dispatcher-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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- /hello 路徑的請(qǐng)求交給 id 為 helloController 的控制器處理-->
<prop key="/hello">helloController</prop>
</props>
</property>
</bean>
<bean id="helloController" class="controller.HelloController"></bean>
</beans>
第二步:編寫 HelloController
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloController implements Controller{
@Override
public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Hello Spring MVC");
return mav;
}
}
第三步:準(zhǔn)備 index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<h1>${message}</h1>
從JSP里面的內(nèi)容來(lái)看,相比于之前所有的邏輯視圖全部都放在一個(gè)文件里面摊腋,瞬間看起來(lái)清爽了許多沸版。Spring MVC 角色劃分清晰,分工明細(xì)兴蒸,大勢(shì)所趨视粮。