Método de coincidencia de controlador Spring-PVC de entrada y front-end url-patten

springmvc es un módulo web en Spring. Necesita importar los paquetes principales y paquetes de dependencias de spring.
La capa inferior de springmvc es un servlet. Aprenda de acuerdo con la forma de aprender servlet. Sin más preámbulos, vaya
directamente a los productos secos para crear un paquete de guía de ingeniería web. El
primer paso: paquete de guía paquete de
núcleo de primavera y paquete de dependencia
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
paquete de prueba de
primavera spring-aop-4.1.2 .RELEASE.jar
spring-test-4.1.2.RELEASE.jar
jsp, paquete de servlet
jsp-api.jar
servlet-
api.jar paquete sprinmvc
spring-web-4.1.2.RELEASE.jar
spring-webmvc-4.1.2. RELEASE.jar
Paso 2: Configurar el controlador de front-end
Este controlador de front-end está escrito por otros, lo usamos
. Y el controlador de front-end es un Servlet. Aunque no necesita ser escrito, necesita ser configurado.
Pasos:
1. Configure el controlador frontal en web.xml de acuerdo con la forma de configurar Servlet.
Tenga en cuenta que el nombre es mejor para copiar [paquete webmvc]
2. Copie un archivo de configuración de Spring en classpath y cámbiele el nombre por 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

Paso 3: escriba el controlador y
escriba el código comercial

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

Paso
Write clase de interfaz de controlador para implementar un
método de reescritura, una salida de contenido de escribir directamente en
el cuarto paso: a la primavera-mvc. solicitud de coincidencia xml

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

Paso 5: Respuesta de salto
Código del controlador:

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;
	}
}

Paso 6: escribir una vista lógica

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

Finalmente: pruebe el análisis del proceso de ejecución
localhost / hello.do
:
solicitud entregada al controlador frontal [DispatcherServlet] -spring-mvc.xml para que coincida con el procesador para procesar la solicitud


Método de correspondencia del controlador frontal 【】


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

/ *

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

/ /

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

Pasos de la operación:

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

Nota de configuración: se debe prestar atención al nombre del parámetro del controlador frontal web.xml, debe ser este nombre.

<!-- 不要随便写,因为框架要根据这个名字获取value值,如果名字写错了,它就获取不了 -->
			<param-name>contextConfigLocation</param-name>
Publicado 23 artículos originales · recibido 1 · vistas 173

Supongo que te gusta

Origin blog.csdn.net/weixin_45528650/article/details/105430618
Recomendado
Clasificación