SPRING 第一个小程序 HELLO
刚开始学习SPRING,也是第一次写博客,没有人指导,网上找资料,更费劲,但是印象更深刻,其中错了一些地方,都百度解决,现在贴出来,望不吝赐教
1.首先是配置文件WEB.XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<!-- 定义Spring MVC的前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 让Spring MVC的前端控制器拦截所有请求 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
这是属于servlet的配置,TOMCAT会访问此文件,根据URL路径中的路径来拦截需要响应哪些请求,<url-pattern>/</url-pattern> 代表接收所有请求,映射 org.springframework.web.servlet.DispatcherServlet 类来处理请求,同事加载/WEB-INF/springmvc-servlet.xml文件到context中
2.spring上下文文件配置springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-5.0.xsd
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">
<!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
<span style="white-space:pre;"> </span>如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
<context:component-scan base-package="org.springmvc.controller"/>
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/" p:suffix=".jsp" />
</beans:beans>
说明:上下文会扫描 base-package="org.springmvc.controller" 包中的所有类文件,查找注解是@Controllter的类并将它作为Controllter控制器,
DispatcherServlet 会寻找对应的Controllter 然后进入Controllter文件中
3.HomeControllter
package com.lyf.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/")
public class HomeController {
@RequestMapping("index")
public ModelAndView index(){
ModelAndView modelAndView = new ModelAndView("home");
return modelAndView;
}
}
根据注解找到对应的处理函数,并且返回一个ModelAndView的类对象,Dispatcher找着对应的视图解析器,解析此JSP视图,返回给客户端
4.index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome</title>
</head>
<body>
<!-- 页面可以访问Controller传递传递出来的message -->
${requestScope.message}
</body>
</html>
5.运行
http://localhost:8080/DemoSpringMVC/index
说的不对之处还请指教