java SpringMvc笔记

news2024/12/26 9:24:37

springMVC

   M:模型层,包含实体类,业务逻辑层,数据访问层;

   v: 视图层,html,javascript,vue等

  c:控制层,它是用来接收客户端的请求,并返回响应客户端的组件,Servelet组件

SpringMVC

   1、轻量级,基于MVC的框架

    2、具备IOC和AOP

   3、完全基于注解开发

client(客户端)-(http请求)-tomcat-control(携带数据的优化)

3、基于注解的springmvc框架开发的步骤

   1、新建项目,选择webapp模板;

   2、修改目录,添加缺失的test,java.resources(两套),并修改目录属性

   3、修改pom.xml文件,添加springmvc的依赖,添加servelet的依赖;

   4、添加springmvc.xml的配置文件,指定包扫描,添加视图解析器;

删除web.xml文件新建web.xml

分析web请求

 web请求

 index.jsp请求-DIspatcherServlet(核心处理器)-springmvc的处理器

DIspatcherServerlet必须在web.xml中注册

5、@RequestMapping详细注解(用映射访问服务器访问的路径)

 1)注解加到方法上,是为了此方法注册一个可以访问的名称

@Controller//交给spring 去创建对象

public class MyDemo {

@RequestMapping("/demo")

public String demo(){

return "main";//可以直接跳到jsp上

}

}

<a href="${pageContext.request.contextPath}/demo.action">页面跳转</a>

2)此注解可以加到类上,相当于包名(虚拟路径),区分不同类名相同action的名称

@RequestMapping("/zar")

public class MyDemo1 {

3)区分get和post的请求

6)5种数据提交的优化方式

  1、单个数据提交

2、对象封装数据提交

在提交请求,保证请求参数的实体类型与成员变量的名称保持一致,可以自动创建对象,自动类型转换,自动封装到对象中3WT4g ,自动提交数据

  通过封装类完成数据提交;

3、动态占位符的提交

   仅限于超链接:一杠一直,一杠一大括号,

4)映射名称不一致

   提交请求参数与action方法的形参名称不一致使用注解来解析@RequestParam

5)、手工提交

@RequestMapping("/five")

public String five(HttpServletRequest request){

String name= request.getParameter("2name");

int age= Integer.parseInt(request.getParameter("2age"));

System.out.println("姓名:" + name +"姓名:"+ age);

return "main";

   

7、中文乱码的解决方案

   (1)web.xml中配置中文编码过滤器 fileter解决post请求乱码

<filter>

<filter-name>encode</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

<init-param>

<param-name>forceRequestEncoding</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>forceResponseEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encode</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

  

  8、action的返回值

      String:客户端资源的地址,自动拼接前缀和后缀,还可以自动屏蔽拼接字符串,可以返回指定的路径;

      object: 返回json格式对象,自动将对象或集合转为json,使用jacson工具进行转换,必须添加jackson依赖,一般用于ajax请求

     void:无返回值,用于ajax;

     基本数据类型用于ajax;

9、完成ajax请求访问服务器,返回学生集合

 1)添加jacson依赖

2)在webapp目录下新建js目录,添加jquery函数库

3)在index.jsp上添加导入函数库

4)在action添加注解@ResponseBody,用来处理ajax请求

5)在sptringmvc.xml添加注解驱动<mvc:annotationdriven>,他用来解析@ResponseBody

14、springMVC拦截器

   1、针对请求和响应进行的额外处理,在请求和响应的时候添加预处理,后处理和最终处理

   2拦截器的执行时机

     preHandle:在请求之前进行操作,预处理;

     postHandle:在请求处理之后,但结果还没有渲染前进行操作,可以改变相应

    aftercompletion:所有请求响应结束后善后工作,清理对象,关闭资源,善后处理

拦截器实现的方式

   继承HandlerInterceptorAdapter

  实现 HandlerInterceptor接口

拦截器实现的步骤

  1、改造登陆方法,在session中存储用户信息,用于进行权限验证

  2、开发拦截器的功能,实现handlerInterceptor接口,重写preHandle()方法;

  3、在springmvc.xml文件中注册拦截器

   

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1621517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用友 GRP-U8 fastjson远程代码执行漏洞复现(XVE-2024-8863)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友 GRP-U8 R10系列版本 VerifyToken 接口存在低版本fastjson反序列化漏洞,未经…

分布式与一致性协议之CAP(一)

CAP理论 概述。 在开发分布式系统的时候&#xff0c;会遇到一个非常棘手的问题&#xff0c;那就是如何根据业务特点&#xff0c;为系统设计合适的分区容错一致性模型&#xff0c;以实现集群能力。这个问题棘手在当发生分区错误时&#xff0c;应该如何保障系统稳定运行而不影响…

高精度加法及乘法

目录 字符串的高精度加法 为什么需要高精度加法&#xff1f; 怎么进行高精度加法&#xff1f; 链表的高精度加法 翻转链表&#xff08;带虚拟头节点&#xff09; 字符串的高精度乘法 字符串的高精度加法 大数加法_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.co…

超详细神仙级Python入门教程,从零基础入门到精通,从看这篇开始

一、初聊Python 1.为什么要学习Python&#xff1f; 在学习Python之前&#xff0c;你不要担心自己没基础或“脑子笨”&#xff0c;我始终认为&#xff0c;只要你想学并为之努力&#xff0c;就能学好&#xff0c;就能用Python去做很多事情。在这个喧嚣的时代&#xff0c;很多技…

数字积分生态:区块链与电商的未来发展之路

大家好&#xff0c;我是微三云周丽&#xff0c;今天给大家分析当下市场比较火爆的商业模式&#xff01; 小编今天跟大伙们分享什么是区块链与电商的完美结合&#xff1f; 区块链技术作为一种去中心化、不可篡改的分布式账本技术&#xff0c;正逐渐渗透到各行各业&#xff0c;给…

yolov5实现人脸检测与性别分类

自建数据集训练人脸检测模型 自建数据集训练人脸性别分类研判模型 使用代码级联两个模型实现静态识别 动态实时识别 python开发语言&#xff0c;pytorch框架&#xff0c;支持一键部署运行

齐护K210系列教程(十一)_显示摄像头图像

显示摄像头图像 因不同的型号在设计的屏显示方向时不同&#xff0c;我们设计程序时可以通过旋转屏幕或摄像头图像的方式来达到正确的显示方向。 型号Q1及掌机前面还有一个RGB灯可以用于摄像头的补光&#xff0c;这样在比较暗的环境下可以开启&#xff0c;让摄像头图像更清晰。…

云计算技术架构及发展

云计算是指一种将可伸缩、弹性、共享的物理和虚拟资源池以按需自服务的方式供应和管理&#xff0c;并提供网络访问的模式。 云计算服务商利用分布式计算和虚拟资源管理等技术&#xff0c;通过网络将分散的ICT资源集中起来形成共享的资源池&#xff0c;并以动态按需和可度量的方…

mysql buffer pool详解

介绍 缓冲池是InnoDB在访问表和索引数据时缓存的主内存区域。缓冲池允许直接从内存访问频繁使用的数据&#xff0c;这加快了处理速度。在专用服务器上&#xff0c;通常会将多达80%的物理内存分配给缓冲池。 为了提高大容量读操作的效率&#xff0c;缓冲池被划分为可能包含多行…

Ubuntu查看端口状态

完蛋了&#xff0c;好像动心了&#xff0c;近一周吃啥东西都索然无味&#xff0c;这可如何是好&#xff01;&#xff01;&#xff01;不知道在期待什么&#xff0c;恐惧与窃喜—— 在Ubuntu系统中&#xff0c;查看某个端口是否被放行&#xff08;即允许流量通过&#xff09;&am…

AI论文速读 |从图结构角度统一车道级交通预测:基准和基线

题目&#xff1a;Unifying Lane-Level Traffic Prediction from a Graph Structural Perspective: Benchmark and Baseline 作者&#xff1a;Shuhao Li, Yue Cui, Jingyi Xu, Libin Li, Lingkai Meng, Weidong Yang(杨卫东), Fan Zhang, Xiaofang Zhou(周晓方) 机构&#xff…

算法提高 第一期 KMP扩展算法

1## 具体思路&#xff1a; 和KMP算法的是想类似&#xff0c;充分利用已经比较字符性质来减少冗余的字符比较次数。KMP的思想是充分的利用模式串中所有前缀字串&#xff08;以模式串为开头的字串&#xff09;的真前缀和真后缀&#xff08;指子串的开始字符与子串的最后字符相等的…

vCenter 物理配置与虚拟机配置对应关系

目录 背景现状概念存储池物理与虚拟资源分配及使用情况汇总 分配cpu内存硬盘VSAN、VM Encryption和VVOL No Requirements厚置备和精简置备 总结cpu内存硬盘建议 背景 现在有三台服务器&#xff0c;需要统计上面所有服务占用的资源情况与总和&#xff0c;目的是看还有多少资源可…

「React Native」为什么要选择 React Native 作为的跨端方案

文章目录 前言一、常见因素二、举个栗子2.1 项目背景2.2 为什么选择 React Native2.3 项目实施2.4 成果总结 前言 没有完美的跨端技术&#xff0c;只有适合的场景。脱离适用场景去谈跨端技术没有什么意义。 一、常见因素 共享代码库&#xff1a; React Native 允许开发者编写…

H264编码标准中游程编码应用介绍

H264编码标准 H.264编码标准&#xff0c;也被称作MPEG-4 AVC&#xff08;Advanced Video Coding&#xff09;&#xff0c;是一种被广泛使用的数字视频压缩标准。它由国际电信联盟&#xff08;ITU-T&#xff09;和国际标准化组织&#xff08;ISO&#xff09;共同开发&#xff0…

Vue3后台管理系统推荐

目录 项目概述 &#x1f35f; 项目展示 功能特点 &#x1f957; 结语 &#x1f4a8; 项目概述 &#x1f35f; 基于Vue 3框架与Element-Plus UI组件库技术精心构建的后端管理模板。该模板系统已成功实现一个基础的权限管理模块&#xff0c;宗旨在于为追求高效二次开发的开发…

The_Maya_Society

突然发现自己做了一些逆向题都没有写笔记 今天&#xff0c;发现这道题有意思 1.解压文件 三个文件The Maya Society.html&#xff0c;maim.cc,maya.png 当时我看到这个题的时候&#xff0c;我以为是不是会是js逆向 看来是我蠢了 这三个文件&#xff0c;main.css和maya.png这两…

<计算机网络自顶向下> 路由器组成

路由器结构概况 路由&#xff1a;运行路由选择算法/协议&#xff08;RIP, OSPF, BGP&#xff09;生成路由表转发&#xff1a;从输入到输出链路交换数据包-根据路由表进行分组的转发中间的fabric是用来接收输入的分组交给输出端口的&#xff0c;完成局部的转发&#xff08;根据…

GPT-SoVITS声音克隆训练和推理(新手教程,附整合包)

环境: Win10 专业版 GPT-SoVITS-0421 整合包 问题描述: GPT-SoVITS声音克隆如何训练和推理教程 解决方案: Zero-shot TTS: Input a 5-second vocal sample and experience instant text-to-speech conversion.零样本 TTS:输入 5 秒的人声样本并体验即时文本到语音转换…

震惊!小红书矩阵账号管理-批量发布笔记

“小红书引流软件矩阵工具-笔记批量发” 昨天&#xff0c;有个粉丝急匆匆地来找我&#xff0c;一脸焦急地说&#xff1a;“大佬&#xff0c;我现在运营着好几个小红书账号&#xff0c;每天都要发布内容&#xff0c;可把我忙坏了&#xff0c;有没有什么高效的管理方法啊&#xf…