續接前文,
手寫SpringMVC框架(一)項目搭建
本節我們來開始手寫SpringMVC框架的第二階段:結構開發設計。
新建一個空的springmvc.properties,
裏面寫我們要掃描的包名,之後這裏面我們需要些一些配置信息,比如掃描的包路徑等等。
scanPackage=com.lagou.edu
在web.xml中配置此文件:
<servlet>
<servlet-name>lgmvc</servlet-name>
<servlet-class>com.lagou.edu.mvcframework.servlet.LgDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springmvc.properties</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>lgmvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
servlet中真正處理的幾個方法的建立:
package com.lagou.edu.mvcframework.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author liuyj
* @Title: LgDispatcherServlet
* @create 2020-06-11 14:22
* @ProjectName springmvc-demo
* @Description: TODO
*/
public class LgDispatcherServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
//1.加載springmvc.properties
String contextConfigLocation = config.getInitParameter("contextConfigLocation");
doLoadConfig(contextConfigLocation);
//2.掃描相關的類,掃描註解
doScan();
//3.初始化bean(實現IOC容器,基於註解)
doInstance();
//4.實現依賴注入
doAutoWired();
//5.構造一個HandleMapping處理器映射器,將配置好的url和Method建立映射關係
initHandleMapping();
}
private void initHandleMapping() {
}
private void doAutoWired() {
}
private void doInstance() {
}
private void doScan() {
}
//加載配置文件
private void doLoadConfig(String contextConfigLocation) {
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//真正處理請求
}
}
本節到此結束。
下一節我們來開始具體方法的實現。
歡迎訪問:
微信公衆號(程序員資料站):code_data