Springmvcエントリとフロントエンドコントローラーのマッチングメソッドのurl-patten

springmvcは、SpringのWebモジュールであり、Springのコアパッケージと依存関係パッケージをインポートする必要があります。
springmvcの最下層はサーブレットです。サーブレットの学習方法に従ってそれを学んでください。これ以上苦労せずに、
直接ドライグッズにアクセスして、Webエンジニアリングガイドパッケージを作成してください。
最初のステップ:ガイドパッケージSpring
Coreパッケージと依存パッケージ
Commons-logging-1.1.1.jar
spring-beans- 4.1.2.RELEASE.jar
spring-context-4.1.2.RELEASE.jar
spring-core-4.1.2.RELEASE.jar
spring-expression-4.1.2.RELEASE.jar
スプリングテストパッケージ
spring-aop-4.1.2 .RELEASE.jar
spring-test-4.1.2.RELEASE.jar
jsp、サーブレットパッケージ
jsp-api.jar
servlet-api.jar
sprinmvcパッケージ
spring-web-4.1.2.RELEASE.jar
spring-webmvc-4.1.2。 RELEASE.jar
手順2:フロントエンドコントローラーを構成する
このフロントエンドコントローラーは他のユーザーが作成し、使用
します。フロントエンドコントローラーはサーブレットです。書き込む必要はありませんが、構成する必要があります。
手順:
1.サーブレットの構成方法に従って、web.xmlでフロントエンドコントローラーを構成します。
名前は[webmvcパッケージ]をコピーするのが最適です
。2。クラスパスの下にSpring構成ファイルをコピーし、名前をspring-mvc.xmlに変更します。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
	
</beans>
	3.一定要把里面的内容全部删除,否则启动就会报错
	4.在前端控制器的<init-param>中加载此配置文件
配置内容:
	<!-- 前端控制器 -统一接收请求 -->
<servlet>
	<servlet-name>DispatcherServlet</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<!-- 创建的时候要自动加载初始化参数 - 加载SpringMvc的配置文件 -->
	<init-param>
		<!-- 指定配置文件的路径 -->
		<!-- 不要随便写,因为框架要根据这个名字获取value值,如果名字写错了,它就获取不了,可以在springwebmvc的jar包里面去拷贝全限定名,如下图: -->
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring-mvc.xml</param-value>
	</init-param>
	<!-- 将这个Servlet的实例化和初始化提前到到服务器启动的时候【默认是在第一次收到请求的时候】,有助于提高运行效率 -->
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>DispatcherServlet</servlet-name>
	<url-pattern>*.do</url-pattern><!-- /hello.do -->
</servlet-mapping>

org.springframework.web.servlet.DispatcherServlet

ステップ3:コントローラーを
記述し、ビジネスコードを記述する

public class HelloController implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//handleRequest - 处理请求
		System.out.println("来了,老弟!!!");
		return null;
	}
}

ステップ
ライトコントローラインタフェースクラスが実装する
書き換え方法に直接書き込むためのコンテンツ出力
スプリングMVCに:第4工程を。XMLマッチング要求

<bean id="/hello.do" class="cn.itsource.controller.HelloController"></bean>

ステップ5:ジャンプ応答
コントローラーコード:

public class HelloController implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//handleRequest - 处理请求
		System.out.println("来了,老弟!!!");
		//响应
		ModelAndView mv = new ModelAndView();//这个对象用来保存数据和数据 ,方便传输
		mv.addObject("name", "james"); //设置响应的数据name
		mv.addObject("age", 20);		//设置响应的数据age
		mv.setViewName("/WEB-INF/hello.jsp");//设置响应视图的路径     WEB-INF下的资源不能直接访问,必须通过转发
		return mv;
	}
}

ステップ6:論理ビューを書き込む

在WEB-INF下新建hello.jsp,并编写内容
		<body>
 	<h1>来了,老弟!!!</h1>
 	<h2>你的名字是:${name }</h2>
 	<h2>你的年龄是:${age }</h2>
</body>

最後に、
localhost / hello.do
実行プロセス分析をテストします。
リクエストをフロントコントローラー[DispatcherServlet] -spring-mvc.xmlに渡し、プロセッサーに一致マッピングしてリクエストを処理します。


フロントコントローラーのマッチング方法【】


后缀匹配(*.xx)
	匹配的范围太小

/ *

	匹配所有请求
		会将css,html,jsp都匹配上
		一般用在过滤器

/

	匹配所有请求
		不会拦截.jsp
		但是会拦截静态资源
			css,html,images
			为什么会拦截静态资源
				tomcat中有一个默认的Servlet专门处理静态资源,它的匹配方式就是/
				我们在我们的工程中也写了/,所以就将默认的servlet给替换了,tomcat中默认的Servlet就无效了
		目前最流行的

操作手順:

	1. 将前端控制器的<url-patten>的匹配方式改成/
	2.在web根路径下WebContent新建index.jsp,写上一句话
	3.重新部署访问 -- jsp可以访问,图片【静态资源不能访问】
	4.设置静态资源放行
		加约束mvc - 建议复制
		2.在spring-mvc.xml中加上配置:
				<!-- 静态资源放行 = 静态资源可以不拦截 -->
<mvc:default-servlet-handler/>
				启动tomcat默认的Servlet配置
	5.重新部署 -- 访问 - 图片可以正常显示

構成の注意:web.xmlフロントコントローラーのパラメーター名に注意する必要があります。この名前にする必要があります。

<!-- 不要随便写,因为框架要根据这个名字获取value值,如果名字写错了,它就获取不了 -->
			<param-name>contextConfigLocation</param-name>
公開された23件のオリジナル記事 受け取った1 ビュー173

おすすめ

転載: blog.csdn.net/weixin_45528650/article/details/105430618