Spring MVC 基本概念

1.1 MVC形式

MVC是Model、View和Controller的缩写,别离代表Web运用程序中的3种责任。
Java EE SSM结构整合开发(八)Spring MVC 根底

  • 模型:用于存储数据以及处理用户央求的事务逻辑。
  • 视图:向操控器提交数据,闪现模型中的数据。
  • 操控器:根据视图提出的央求判别将央求和数springboot面试题据交给哪个模型处理,将处理后的有关结果交给哪个视图更新闪现。

1.2Java Spring MVC

SpringMVC结构主要由DispatcherServlet、处理器映射、操控器、视图解析器、视图Java组成,SpringMVC的作业流程如下:
Java EE SSM结构整合开发(八)Spring MVC 根底

  1. 客户端央求提交到Dispjava怎么读atche前端开发rServlet;
  2. 由DispatcherSspringboot面试题ervlet操控器寻觅一个或多个Handhttps安全问题lerMapping,找前端结构处处前端训练组织理央求的Controhttp 302ller;
  3. DispatcherServlet将央求提交到Controller;
  4. Controller调用事务逻辑处理后回来ModelAndView;
  5. DispatcherServlethttp协议寻觅一个或多个ViewResolver视图解析器,找到ModelAndView指httpwatch定的视图http署理
  6. 视图担任将结果闪现到客户端。

1.3 Spring MVC接口

MVC接口:DispatcherServlespringcloud五大组件t、HandlerMappinghttps认证、Controller和ViewResolver。

DispatcherServlet借助于Spring MVC供应的H前端和后端的差异andlerMapping将央求转发到具体的Controllerjava编译器。DispatcherServlet来共同分发Spring MVC一切的央求,是整个Web运用的操控器。spring

HandlerMapping接口担任结束客户央求到Controller映射。

Controllehttp署理r接口将处理用户央求,回来ModelAndView政策给DispatcherServlespringboot常用注解t前端操控器,是单个Http央求处理过程中的操控器。

ModelAndView是Http央求过程中回来的模型(Model)和视图(View)。

ViewResolver接口(视图解析器)在Web运用http 302中担任查找View政策,将结果烘托给客户。

Spring MVC示例

1. 树立需求的JSP页面

在WEB-INF下树立jsp,在jsp下树立login.jsp和register.jsp

2. 为超链接央求树立操控器类

在包controller创立“Regi前端和后端哪个薪酬高sterController”和“LoginController”两个操控器类(结束了Controller接口),别离处理前端工程师首页中“注册”和“登录”超链接央求。

操控器类结束org.springframework.web.servlet.mvc.Controller接口

public class前端开发需求掌握什么技能 Loghttps域名inControllerhttps安全问题 implements Controller{
@Override
public ModelAndView handlehttp 500Request(HttpSspringcloudervlehttpclienttRequest arg0, HttpServl前端学什么etResponse arg1) throws Exception {
return new ModelAndView("/WEB-INF/jsp/login.jsp");
//return new ModelAndView("login");spring面试题
}
}
public class RegisterControlleJavar implements Controller{
@Override
public Mode前端结构lAndView handleRequest(HttpServletRequesthttp署理 arg0,前端和后端哪个薪酬高 HttpServletResponse argjava初学1) throws Excep前端训练组织tion {
return new ModelAndView("/WEB-INF/jsp/register.jspspring面试题");
//return newspringboot面试题 ModelAndView("register");
}
}

3. 在web.xspringmvc的作业原理ml安置DispatcherServlet

<?xml version="1.0" encoding="UTjavascriptF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"springmvc的作业原理 xmlns="http://java.sun.com/xml/ns/jajava言语vaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javJavaaee/web-app_2_5.xsd" version="2.5">
<display-name&gthttp 404;mymavehttp署理n</display-name>
<welco前端和后端的差异me-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</whttps安全问题ehttp://www.baidu.comlcome-file>
<welcome-file>index.jsp</welcome-file&前端开发gt;
<we前端和后端哪个薪酬高lcome-file>default.html</welcome-file>
<welcome-spring面试题file>default.htm</welcojava面试题me-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list&gt前端;
<!--安置DispatcherServlet -->
<servlet>
<servlet-name>http署理springmvc</servlet-name>
<servlet-class>org.springframework.webspringmvc的作业原理.servlet.DispatcherServlet</servlet-class>
<!--spring结构 标明容器在启动时当即加载servlet -->
<load-on-startup>1&https和http的差异lt;/load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</s前端开发需求学什么ervlet-name>
<!-- 处理一切URL -->
<url-pattern>/</url-pattern>
</servlet-mappinhttp署理g>
</web-app>

DispatcherSjava模拟器ervlet的servlet政策springmvc初始化时,将在运用程序的WEB-INF目录下查找一个装备文件,该装备文件的命名规则是“servletNam前端和后端哪个薪酬高e-servlet.xml”,如http署理:springmvc-servlet.xml。也能够自定义方位,此刻运用init-param装备文件途径,如:

<!--安置DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
oJavarg.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>ContextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-config/springmvc-servlejavascriptt.xml
</param-value>
</init-param>
<!--标明容器在启动时当http 404即加载servlet-->
<load-on-startup&gjava作业训练班t;1</load-on-startup前端学什么>
</servlet>
<servlet-mapping>
<servlet-name>spjava环境变量装备ringmvc&ltjava环境变量装备;/servlet-name>
<!--处理一切URL-->
<url-pattern>/</url-pspringcloudattern>
</servlet-mapping>

4. 装备springmvc-servlet.xml

  • 供应JSP和操控器之间的相互关系;
  • 定义SpringMVC的一个视图解析器(Viewspringboot常用注解Resolver),装备前缀和后缀两个特点,这样操控springboot面试题器类的视图途径仅需供应register和login,视图springmvc的作业原理解析器将会主动添加前缀和后缀。
<?xml version="前端工程师1.0" encoding="UTF-8"?&java模拟器gt;
<beans xml前端面试题ns="http://www.spHTTPSringframework.orhttp://www.baidu.comg/schema/beans"
xmlns:x前端和后端的差异si="http://www.w3.org/2001/Xhttp://192.168.1.1登录MLSchema-instance"
xsi:schemaLocatiohttps安全问题n="
http://www.springframework.org/schema/beaspringns
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--LoginController操控器类,映射到“/login” -->
<bean name="/login" class="com.controller.Loginjava环境变量装备Controller" />
<!--RegisterConthttps和http的差异roller操控器类,映射到“/register” -->
<bean name="/register" clajava编译器shttps和http的差异s="com.controller.RegisterController" />
<bean
class="org.springframjavascriptework.web.servlet.view.InternalResourceVi前端开发需求学什么ewResolver"
id="internalResourceViewResolver">
<!--  		前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 		后缀 -->
<property name="suffix" value=".jsp" /&前端开发gt;
</bean>
<java难学吗/beans>

操控器类改为

//rehttps安全问题turn new ModelAndView("/WEB-INF/http 302jsp/register.jsp");
return new ModelAndView("register");
//return new ModelAndView("/WEB-INF/jsp/login.jsp");//不装备前后缀的写法
return new ModelAndView("login"前端结构);

5. 创立index.jsp

${pagejava面试题Context.requesjava作业训练班t.contextPath}是JSP获得绝对途径的方法,等价于<%=request.getChttp://192.168.1.1登录ontextPath()%>。也就是取出安置的运用程序名或者是其时的项目名称

<%@ page language="java" contentType="text/html; charset=UTFspringcloud五大组件-8" pageEncoding="UTF-8"spring结构%>
&ltspring面试题;!JavaDOCTYPE html PUBLIC "-springboot常用注解//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html&g前端学什么t;
<head>http://192.168.1.1登录
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<ti前端开发需求学什么tljava环境变量装备e&java怎么读gt;Insert title here</title>
</head>
<bodHTTPSy>
没注册的用户,请
<a href="${pageContext.requespring结构sthttp://192.168.1.1登录.contextPath }/register">注册</a>!
<br> 已注spring册的用户,去
<a href="${pageContext.req前端开发需求掌握什么技能uest.contextspringPath }/login">登录</a>!
</body>
</html>