简单的Spring MVC入门程序,对于Spring mvc工作流程的理解,servlet标签和servlet-mapping 理解,视图解析器
javawebSpringMvc的组成:jsp,JavaBean,servlet可以使用Spring所提供的功能提供了前端控制器DispatcherServlet,不需要细化Servlet执行校验简单的MVC程序一 需要的包:四个spring核心包,一个servlet.二 前端控制器,编写XML控制Servelet主要作用:DispatcherServlet,拦截中转作用前沿知识:servlet标
·
javaweb
SpringMvc的组成:jsp,JavaBean,servlet
- 可以使用Spring所提供的功能
- 提供了前端控制器DispatcherServlet,不需要细化Servlet
- 执行校验
简单的MVC程序
一 需要的包:
四个spring核心包,一个servlet.

二 前端控制器,编写XML控制Servelet
主要作用:DispatcherServlet,拦截中转作用
前沿知识:servlet标签和servlet-mapping 理解
- 先执行
<url-pattern>/</url-pattern> //拦截一切文件, url-pattern是你访问的url
- 再去找
<servlet-name>springmvc</servlet-name> //名字叫这个的
3.映射到
<servlet-name>springmvc</servlet-name> //找到servlet,这里有点像bean
4.映射到DispatcherServlet
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
指定配置文件目录
给这个bean的属性初始化赋值的,dispathcerservlet里有个contextConfigLocation
,如果没写init-param:默认去web-inf 去找类似于
sevletName-sevlet.xml
三 编写 Controller 处理器
package com.itheima.ioc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class FirstController implements Controller {
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
// 创建一个模型对象modelAndView
ModelAndView modelAndView=new ModelAndView();
//给模型对象添加属性
modelAndView.addObject("msg", "this is 1830090110");
//设计逻辑视图名字
modelAndView.setViewName("/WEB-INF/jsp/first.jsp");
return modelAndView;
}
}
四 编写SPringMVC处理器
<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-4.3.xsd">
<bean name="/firstController" class="com.itheima.ioc.FirstController"/>
</beans>
访问/firstController,映射到FirstController
五 创建JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${msg}
</body>
</html>
叙述MVC相关内容

瞎子理论:MVC工作流程
把用户所用的客户端当成一个瞎子,只能看到一个黑白红的东西.
用户画一个黑白的图,发送到Spring MVC中Spring MVC家开始工作
- 到了mvc家门口给他拦住了(DispatchServlet),在报到处(HandlerMapping)看看你这个画属于什么种类,
- 分析完种类,告诉看大门的,发送到哪个加彩色的地方报到处(HandlerAdapter)
- 进入报到处,分析是什么需要哪几种颜色,进入画室(Handler)处理
- 染完颜色,又回来了,再次到加彩色的地方报道,然后回到大门,准备出去,
- 因为客户只能看黑白红的画,所以经过画室处理{ViewRolver),把所有加了的颜色变成了红白黑
- 拿到瞎子那边!
DispatcherServlet :大门
这个主要是需要上文的配置,上边已经有了这里不做描述了
Controller和 RequestMapping注解类型
主要是对comtroller的修改
package com.itheima.ioc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "/hello")
public class FirstController {
@RequestMapping(value = "/firstController")
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
// 创建一个模型对象modelAndView
ModelAndView modelAndView=new ModelAndView();
//给模型对象添加属性
modelAndView.addObject("msg", "this is 1830090110");
//设计逻辑视图名字
modelAndView.setViewName("/WEB-INF/jsp/first.jsp");
return modelAndView;
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- <bean name="/firstController" class="com.itheima.ioc.FirstController"/> -->
<context:component-scan base-package="com.itheima.ioc" />
</beans>
上边是对于springmvc配置文件的修改
所需要的包

现在来看上边的问题,实际上就是起了个bean别名,安排在controll
RequestMapping
当value是唯一属性时可以省略属性名
视图解析器
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- <bean name="/firstController" class="com.itheima.ioc.FirstController"/> -->
<context:component-scan base-package="com.itheima.ioc" />
<!-- 定义视图解析器,便于在之后controller方法中不用再写复杂的名字 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
package com.itheima.ioc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value = "/hello")
public class FirstController {
@RequestMapping(value = "/firstController")
public String handleRequest(HttpServletRequest arg0, HttpServletResponse arg1,Model model) throws Exception {
// TODO Auto-generated method stub
// 创建一个模型对象modelAndView
//给模型对象添加属性
model.addAttribute("msg", "this is 1830090110");
//设计逻辑视图名字
return "first"; //视图解析器应用在这个地方
//除此之外,这里还可以有
//redirect重定向
//return "redirect:方法名"
//forward 动态转发
//return "forward:方法名"
}
}
更多推荐



所有评论(0)