······今天把controller总结了一遍,,先从第一步开始把关于配置web.xml就是要把前端控制器器(DispatcherServlet)引进来,
切记一点,<spring-mapping>引入进来的所有请求都会去对应到: <param-value>classpath:springmvc-servlet.xml</param-value>里面去处理

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--1.注册servlet--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--通过初始化参数指定SpringMVC配置文件的位置,进行关联--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!-- 启动顺序,数字越小,启动越早 --><load-on-startup>1</load-on-startup></servlet><!--所有的这个都会经过上面的springmvc处理然后对应到其springmvc-servlet.xml里面去处理--><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

然后简单一点就是用注解来执行controller,这里是开启注解:

<context:component-scan base-package="cn.com.zzn.controller"/><!--开启注解-->

spingmvc-servlet全代码

<?xml version="1.0" encoding="UTF-8"?>
<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"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="cn.com.zzn.controller"/><!--开启注解-->
<!--    <mvc:default-servlet-handler />-->
<!--    <mvc:annotation-driven />--><!--以上的代码是定死的,写web项目时不需要管--><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 后缀 --><property name="suffix" value=".jsp" /></bean>
<!--    <bean id="/hek" class="cn.com.zzn.controller.ControllerTest1"/>&lt;!&ndash;类似于进入请求到这个servlet页面&ndash;&gt;-->
</beans>

最后可以写继承controller的接口去实现,稍微麻烦还要写bean插入url跳转的,不建议使用

<bean id="/hek" class="cn.com.zzn.controller.ControllerTest1"/><!--类似于进入请求到这个servlet页面-->
package cn.com.zzn.controller;import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;//只要实现了Controller的类说明这就是一个控制器了
public class ControllerTest1 implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {ModelAndView mw = new ModelAndView();mw.addObject("msg","HelloSpringMvc");mw.setViewName("/test");return mw;//这句是交给视图解析器去拼接的}
}

通常写注解来执行,简单方便快捷,注意这个@Controller的意思就是将这个类变成controller类,但是必须写string类型的方法,因为要:return “test”;//交给视图解析器不是返回的字符串无法拼接

@Controller//代表这个类会被sping接管,被这个注解的类,中的所有方法如果返回值是String并且一具体页面可以跳转,那么就会被视图解析器解析;
public class ControllerTest2 {@RequestMapping("/hek2")public String index(Model model){model.addAttribute("msg","HelloSpringMvc2");//访问直接RequestMappingreturn "test";//交给视图解析器}
}

还有最好一个注意点这个注意点就是:@RequestMapping(“c3”)的位置在最上面的话就是父亲的意思,个人建议实在要写的话,写在类的下面然后写成:@RequestMapping(“c3/t1”)

package cn.com.zzn.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("c3")
public class ControllerTest3 {@RequestMapping("t1")//@RequestMapping("c3/t1")//这个关系是http://localhost:8081/c3/c1public String test1(Model model){model.addAttribute("msg","HelloSpringMvc3");return "test";}
}

好了今天晚上收工了

关于controller的总结 2021-04-22相关推荐

  1. 2021.04.22【RNA-seq流程】丨count值转换为FPKM值优化2.0

    优化内容 解决每次转换需要设置样本数和基因数目 实现基因count值与length精准匹配 摘要 大概半年前,我写过一篇将HTseq生成的基因COUNT值转换为FPKM值文章,用于对count的入门级 ...

  2. Java入门篇 2021/02/22

    Java入门篇 2021/02/22 Java的三大版本 java三大版本主要包括 JavaSE, JavaME, JavaEE,其中现如今的JavaME已经是很少见了,JavaSE是JavaEE的基 ...

  3. JAVA基础学习预科部分 (Markdown + dox)2021/2/22持续更新中

    javaSE从 2021/02/22开始,预计到2021/02/28,原本预计的算法题解先鸽一下. -博客Blog的重要性 & Markdown语法 基础markdown语法 标题, 直接使用 ...

  4. Russ Cox:这不是Go项目的标准布局 | Gopher Daily (2021.04.28) ʕ◔ϖ◔ʔ

    每日一谚:Profile before you decide something is performance critical. Go技术生态 Go web开发的当前状态 - https://tno ...

  5. 2021.07.22禾赛提前批一面面经

    2021.07.22禾赛提前批一面面经 1.LUTRAM的意思 2.LUTRAM和block RAM的区别 3.时序约束和时序优化 4.跨时钟域 5.为什么不能多bit采用同步寄存器打两拍(就这个问题 ...

  6. Ubuntu20.04/22.04 安装vmware 教程

    Ubuntu20.04/22.04 安装vmware 教程/完美解决安装失败 原因: 较新的内核版本在构建内核模块 VMMON 和 VMNET 方面存在问题.这将/可能发生在 ubuntu 20.04 ...

  7. Go webrtc项目pion创始人专访 | Gopher Daily (2021.04.07) ʕ◔ϖ◔ʔ

    每日一谚:Go makes error handling as important as any other code Go技术生态 go webrtc项目pion的创始人专访 - https://w ...

  8. 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[题目下载.2013年(第4届)~2020年(第11届)] CSDN 蓝桥杯 专栏 2013年 第04届 蓝桥杯 Java B组 省赛真题详解及小结 ...

  9. 《安富莱嵌入式周报》第209期:2021.04.19--2021.04.25

    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 ...

  10. 2021.1.22平安科技面经--算法工程师实习生

    2021.1.22平安科技面经–算法工程师实习生 岗位:算法工程师实习生 自我介绍(这个地方我自己需要去提炼一下) 机器学习,人工智能了解得多吗? 那你是怎么自学机器学习,深度学习呢? 那什么是过拟合 ...

最新文章

  1. 基于 RT-Thread赛车控制算法开发
  2. 岗位内推 | 微软亚洲互联网工程院自然语言处理组招聘
  3. fatal error C1071: unexpected end of file found in comment
  4. JAVA运行程序代码段
  5. css —— 图片环绕+首行缩进
  6. webstorm apache设置 很方便啦
  7. 自己的php网站没有referer,缺少php – $_SERVER [‘HTTP_REFERER’]
  8. 中英文对照 —— 数学
  9. Android 使用VideoView播放本地视频详解
  10. 团队作业九---项目验收与总结
  11. 高考成绩真的可以改了?
  12. deepin系统屏幕闪烁问题解决
  13. js: color-thief在浏览器中拾取图片的主色调
  14. openvswitch vxlan 源码分析
  15. 【《操作系统慕课版》合集】期末复习 + 核心算法整理 + 课后答案
  16. 房产中介 二手房中介小程序 一流开发 抓住小程序热潮
  17. ftp工具绿色版,好用的ftp工具绿色版下载教程
  18. 华为鸿蒙P10plus,华为P10深度评测:徕卡双摄拍照逆天!
  19. 资质认证|棱镜七彩成功通过CMMI 3级认证,研发能力获国际权威机构认可!
  20. 超级玛丽马里奥版下载_将超级马里奥赋予生命

热门文章

  1. UI设计师收好!哪些会说故事的插画素材!
  2. 淘宝美工设计初学必会技能之PSD分层模板
  3. 2020流行的液态风格PNG免扣素材,竟然被我找到了!
  4. npm安装vue_零基础入门vue开发
  5. C++实现复制文本粘贴文本功能
  6. C++设计模式详解之抽象工厂模式解析
  7. 在线教学视频的设计与实现
  8. Ubuntu16.04下 shell脚本中C语言形式的for循环用法
  9. ISOLINUX: A bootloader for Linux using ISO 9660/El Torito CD-ROMs
  10. Linux的文件系统及文件缓存知识点整理