001_动力节点_SpringMVC4_SpringMVC简介
1、视频的下载地址是
下载地址:百度云盘 链接:http://pan.baidu.com/s/1ge58XW3 密码:yd5j
http://www.java1234.com/a/javaziliao/javaweb/2017/0920/8975.html
第一个springmvc入门的helloword
第一步新建立一个web project
添加对应的lib包
这里需要注意的是我使用的是myeclipse 2015不支持MyEclipse2015不支持spring-web-4.2.4.RELEASE.jar会导致在tomcat部署应用的时候,导致程序无法部署spring-webmvc-3.1.1.RELEASE.jar.
这里使用的是较低的版本
第二步:
在src目录下建立springmvc.xml
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd"> <!-- 配置control --><bean id="/hello.do" class="com.weiyuan.test.MyController"/></beans>
接下来建立control文件
package com.weiyuan.test;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 MyController implements Controller{/** ModelAndView 返回值是数据和视图* 在web-inf下的资源是外部浏览器是不能直接访问的,web-root下的资源浏览器是能够直接访问的* 所以web-inf下的资源是不能通过浏览器直接重定向访问的* */@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse reponse) throws Exception {// TODO Auto-generated method stubModelAndView mv = new ModelAndView();mv.addObject("message","welcome to first springmvc helloword");mv.setViewName("/WEB-INF/jsp/welcome.jsp");System.out.println("handleRequest is called");return mv;}}
然后在web-inf目录下建立文件夹jsp在jsp目录下建立welcome.jsp文件,将在MyController 中设置的信息mv.addObject("message","welcome to first springmvc helloword");显示出来
welcome.jsp文件内容如下所示:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Insert title here</title> </head> <body> ${message} </body> </html>
接下来在web.xml中配置springmvc的中央处理器
<?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"><display-name>SpringMVc-01</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- 配置中央调度器 --><!-- 中央控制器,这里千万不能配置成 --><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.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping> </web-app>
这样整个项目的配置就成功可
在浏览器上输入
我们想tomcat一运行的时候就创建我们的org.springframework.web.servlet.DispatcherServlet,我们可以在web.xml中进行配置
添加下面的配置 <load-on-startup>1</load-on-startup>
<?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"><display-name>SpringMVc-01</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- 配置中央调度器 --><!-- 中央控制器,这里千万不能配置成 --><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.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping> </web-app>
在servlet的配置当中,<load-on-startup>1</load-on-startup>的含义是:
标记容器是否在启动的时候就加载这个servlet。
当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;
当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。
正数的值越小,启动该servlet的优先级越高。
如果我们在web.xml中设置了多个servlet的时候,可以使用load-on-startup来指定servlet的加载顺序,服务器会根据load-on-startup的大小依次对servlet进行初始化。不过即使我们将load-on-startup设置重复也不会出现异常,服务器会自己决定初始化顺序。
配置load-on-startup后,servlet在startup后立即加载,但只是调用servlet的init()方法,用以初始化该servlet相关的资源。初始化成功后,该servlet可响应web请求;如未配置load-on-startup,容器一般在第一次响应web请求时,会先检测该servlet是否初始化,如未初始化,则调用servlet的init()先初始化,初始化成功后,再响应请求。
PS:一般我们在开发web应用时,都会配置这个参数,有两个好处:1、如果初始化过程失败,则容器会提示启动失败,此时我们能够提前知道相关错误;2、配置该参数相当于将初始化servlet的工作转移到容器启动过程,使得容器只要启动成功后,就可立即响应web请求。
注意点2:使用视图解析器
我们在springmvc中我们注册使用视图解析器
<!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置从项目根目录到指定目录一端路径 ,建议指定浅一点的目录--><property name="prefix" value="/WEB-INF/jsp/"></property><!-- 文件的后缀名 --><property name="suffix" value=".jsp"></property></bean>
prefix表示前缀的意思,指定的第一级目录的位置是web-inf下的jsp目录
suffix表示后缀,表示文件的后缀是.jsp
用视图解析器用于表示文件的拼接
springmvc.xml文件的内容如下
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd"> <!-- 配置control --><bean id="/hello.do" class="com.weiyuan.test.MyController"/><!-- 注册视图解析器 --><!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置从项目根目录到指定目录一端路径 ,建议指定浅一点的目录--><property name="prefix" value="/WEB-INF/jsp/"></property><!-- 文件的后缀名 --><property name="suffix" value=".jsp"></property></bean> </beans>
然后control的代码也可以做出下面的修改为
package com.weiyuan.test;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 MyController implements Controller{/** ModelAndView 返回值是数据和视图* 在web-inf下的资源是外部浏览器是不能直接访问的,web-root下的资源浏览器是能够直接访问的* 所以web-inf下的资源是不能通过浏览器直接重定向访问的* */@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse reponse) throws Exception {// TODO Auto-generated method stubModelAndView mv = new ModelAndView();mv.addObject("message","welcome to first springmvc helloword");//mv.setViewName("/WEB-INF/jsp/welcome.jsp");//使用视图解析器之后,视图解析器会帮助我们进行拼接,这里直接写出welcome就可以了mv.setViewName("welcome");System.out.println("handleRequest is called");return mv;}}
注意点三:
常见的url-pattern配置有以下三种:
第一种:
'*.xxx', 以指定后缀结尾的请求都交由DispatcherServlet处理
第二种:
'/' 将会覆盖容器的default servlet, 凡是在web.xml文件中找不到匹配的URL,它们的访问请求都将交给该Servlet处理(静态资源也将会拦截). 所以web.xml没有配置其他特殊路径的servlet, 基本上所有的请求都交由DispatcherServlet处理.
关于什么是default servlet, 可以参考我之前的博文.
第三种:
'/*' 错误的配置,会拦截*.jsp, *.jspx的请求, 使用这种配置最终要转发到一个JSP页面,仍然会由DispatcherServlet, 解析jsp地址, 不能根据jsp页面找到handler, 会报错
对于第一种扩展匹配, 是最简单的. 也是使用最简单的了.但是现在如此流行restful风格的URL, 这种带小尾巴的URL, 还是有点low的.
第二种配置使用/, 通过该配置是可以实现rustful风格的URL的.
<url-pattern>*.do</url-pattern>,不能写成/*.如果写成/*就是对应浏览器所有的请求都交给中央处理器去请求
例如在浏览器中输入访问的是默认的index.jsp文化
访问的是index.jsp.如果上面把配置修改成/*
访问的时候就会出现错误,找不到对应的处理文件。因为中央处理器没有定义对应的control对请求进行处理
配置成/的时候,会拦截静态资源文件
在浏览器中输入http://localhost:8080/SpringMVc-01/访问的是index.jsp文件,配置成/是可以访问jsp文件的
在jsp文件中我们去访问一张图片,这个时候如果配置成/,是无法访问到这张图片的,如何解决了
我们来看下代码
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><img alt="pic" src="data:images/1.png"></body> </html>
对应的web.xml
<?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"><display-name>SpringMVc-01</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- 配置中央调度器 --><!-- 中央控制器,这里千万不能配置成 --><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.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>
在浏览器中输入
这个时候是无法访问到对应图片的
如何解决了,解决办法有下面的三种形式
第一种方法,在web.xml中进行配置
<?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"><display-name>SpringMVc-01</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- 解决url-pattern是/的问题 --><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.jpg</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.css</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.png</url-pattern></servlet-mapping><!-- 配置中央调度器 --><!-- 中央控制器,这里千万不能配置成 --><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.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>
第二种方法:静态资源无法访问问题-使用MVC的default-servlet-handler解决
在springmvc.xml中添加
<mvc:default-servlet-handler/>
但是需要因为mvc的约束
xmlns:mvc="http://www.springframework.org/schema/mvc"
springmvc.xml的内容如下所示
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd"><mvc:default-servlet-handler/> <!-- 配置control --><bean id="/hello.do" class="com.weiyuan.test.MyController"/><!-- 注册视图解析器 --><!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置从项目根目录到指定目录一端路径 ,建议指定浅一点的目录--><property name="prefix" value="/WEB-INF/jsp/"></property><!-- 文件的后缀名 --><property name="suffix" value=".jsp"></property></bean> </beans>
第三种方法:静态资源无法访问问题-使用MVC的resources解决
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd"><mvc:resources location="/images/" mapping="/images/**"></mvc:resources> <!-- 配置control --><bean id="/hello.do" class="com.weiyuan.test.MyController"/><!-- 注册视图解析器 --><!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置从项目根目录到指定目录一端路径 ,建议指定浅一点的目录--><property name="prefix" value="/WEB-INF/jsp/"></property><!-- 文件的后缀名 --><property name="suffix" value=".jsp"></property></bean> </beans>
北京动力节点-SpringMVC4-016-请求路径问题-什么是绝对路径.avi
绝对路径就是一个具体的地址,马上可以定位到四川省成都市高新区xx小区xx栋xx单元
相当路径:需要选取一个具体的参照物,例如人民公园门口,北京有人民公园,上海有人民公园,需要有一个参照路径是上海还是北京
参照路径和相当路径一起组合构成一个绝对路径
浏览器中输入的http开头的都是绝对路径
北京动力节点-SpringMVC4-017-请求路径问题-相对路径的参照路径.avi
只要不已http开头的都可以认为是相对路径
相对路径中带有反斜杠的前台路径:jsp中对应的路径,对应的参照位置是tomcat所在路径
相对路径中带有反斜杠的后台路径:java代码或者xml等对应的路径,对应的是tomcat中对应的webapp应用的路径
北京动力节点-SpringMVC4-018-请求路径问题-举例.avi
案例一:
北京动力节点-SpringMVC4-019-请求路径问题-举例2.avi
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><img alt="pic" src="data:images/1.png"></body> </html>
这里要访问images目录下的1.png文件,在jsp页面中如果写成/images/1.png,带有斜杠对应的参照路径就是当前的tomcat服务器,资源是访问不到的,不写斜杠对应的参照路径就是当前的应用
转载于:https://www.cnblogs.com/kebibuluan/p/8504190.html
001_动力节点_SpringMVC4_SpringMVC简介相关推荐
- 动力节点郭鑫Spring Boot入门学习笔记,收藏起来慢慢看
做 Java 开发的,没有人敢小觑 Spring Boot 的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,如果啃不下来,很可能就与大厂失之交 ...
- [记录学习]自学动力节点老杜Spring6笔记_01
首先感谢动力节点和杜老师的教学分享!Respect! 学习来源:B站 https://www.bilibili.com/video/BV1Ft4y1g7Fb/?spm_id_from=333.337. ...
- MySQL学习笔记-B站动力节点
文章目录 MySQL Day1 1.概述 2.sql.DB.DBMS分别是什么?他们之间的关系? 3.表 4.sql语句分类 5.导入数据 6.sql脚本 7.删除数据库命令 8.查看表结构 9.查看 ...
- (B站动力节点老杜MySQL教程)MySQL课堂笔记-day02.txt
文章目录 文件来源/资料下载: MySQL课堂笔记-day02.txt 1.关于查询结果集的去重? 2.连接查询 2.1.什么是连接查询? 2.2.连接查询的分类? 2.3.在表的连接查询方面有一种现 ...
- 动力节点SpringBoot笔记整理
本文出自:https://stilljin.blog.csdn.net/article/details/89980994 一丶概述 去年年底转后台不久,就接手了公司后台项目,虽然暂无开发需求,IDEA ...
- 动力节点最新SSM框架项目「米米商城」实战教程分享
今天分享的是动力节点最新的SSM框架项目-米米商城,这个项目的主要目的是使大家更深层的了解IT企业的文化和岗位需求.模拟企业的工作场景,分享研制成果,增加大家对今后工作岗位及计算机应用开发对客观世界影 ...
- html学习笔记-B站动力节点
文章目录 1.系统结构介绍 2.软件环境准备 3.什么是HTML?怎么开发HTML?怎么运行HTML? 4.HTML是谁制定的? 5.我的第一个HTML 6.HTML的基本标签 7.HTML的实体符号 ...
- Ajax学习笔记-动力节点-王鹤老师
Ajax学习笔记-动力节点-王鹤老师 视频教程来自:https://www.bilibili.com/video/BV15k4y167XM?spm_id_from=333.999.0.0 第一节 全局 ...
- 【Maven】使用指南 - 动力节点视频笔记
教程视频:动力节点-https://www.bilibili.com/video/av459639103?p=4&spm_id_from=pageDriver 文章目录 Maven 自动化的构 ...
- java 头尾 队列_Java数据结构之队列(动力节点Java学院整理)
队列的定义: 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表. (1)允许删除的一端称为队头(Front). (2)允许插入的一端称为队尾(Rear). (3)当队列中 ...
最新文章
- Spring基础16——使用FactoryBean来创建
- SVD(奇异值分解)+NMF(非负矩阵分解)
- mysql 2进制 安装_mysql二进制安装
- 数据结构与算法 / 红黑树
- django-oscar的物流状态pending修改以及分析源码解决报错:The new status 'xxx' is not valid for this order
- MySQL和sql获取当前时间是本月的第几周或本月第一天的问题
- 配置Xmanager 连接AIX服务器
- 上传图片和音频到Server,再转存到DB
- mysql慢查询日志轮转_MySQL slow log相关参数解释
- 组织架构递归_映射架构和递归管理数据–第2部分
- .NET Framework高低版本兼容问题解决办法
- 英文词典 text 文本格式下载
- 安卓开发:Password verification failed
- 计算机无法显示硬盘盘符,电脑硬盘不显示盘符怎么办 移动硬盘不显示盘符的原因...
- 火影七代目的青鸟誓言
- Python实现绘制函数图像——以Sigmoid函数为例
- 【020期】面试官问:Java 遍历 Map 集合有几种方式?效率如何?
- iqeq.com测智网原题之-找规律类!
- rar压缩包解开权限密码,忘记rar压缩包密码怎么办?
- 啤酒游戏及其牛鞭效应的模拟之二级模式