java get请求url拼接参数_Java 基础知识复习
一. get和post的区别
get是从服务器上获取数据(http与服务器交互的查),post是向服务器传递数据(http与服务器交互的改)。
get传送的数据量比较小,post传送数据量比较大,默认是无限的。(其实http并没有限制get方法传输数据的量,也没有限制url的长度,只是部分浏览器和服务器的限制)
之前我们开发一个项目,在其他人的电脑上都能顺利运行,到那个人电脑上就返回400错误,比较奇怪,后来我们用fiddler(前后端传递数据的工具)抓包工具,发现他用的是ie浏览器,会自动截取url的部分,超出长度则会报错,所以表单提交一定要用post方法。
get安全性非常低,post安全性较高,但是get执行效率比post高。
文件上传只能使用post方法,不能使用get方法。
表单提交默认get方法。
二. Java多态的具体体现
面向对象编程有四种特征:抽象、封装、继承、多态。
多态的四种体现形式:
接口与接口之间的实现。
类与类之间的继承。
重载。
重写。
重载:同一个类中多个同名方法,但是方法的参数类型和个数不同,这就说明该方法被重载了(与返回值无关)。
public class Father{public Father(){}public Father(String name){}public void add(int age){ }}
重写:重写发生在子类与父类的继承关系中,父类的方法子类继承,方法的方法名、返回值、参数列表完全一样,但是方法体不一样,就说明父类的方法被重写了。
public class Children extends Father{public void add(int age){ System.out.println(); }}
构造器可以被重载不能被重写
三. StringBuffer StringBuilder String的区别
String | StringBuffer | StringBuilder |
---|---|---|
字符串常量 | 字符串变量 | 字符串变量 |
长度不可变 | 长度可变 | 长度可变 |
线程安全 | 线程安全 | 线程不安全 |
拼接是两个不同的空间 | 在原来长度后直接拼接 | 在原来长度后直接拼接 |
1. **执行效率**:StringBuilder > StringBuffer >String
String 是长度不变的,拼接字符串时是两个完全不同的对象,占用不同的空间,StringBuffer 和 StringBuilder 是长度可变的,拼接字符串是使用 append 方法在字符串后面追加,所以效率比 String 高,又因为 StringBuilder 是线程不安全的,所以执行效率比 StringBuffer 高。
大数据量字符串的拼接使用 StringBuilder 或 StringBuffer。
四. List、Set、Map
单向链表:存储两个值,一个是数据,一个指向下一个节点的连接,最后节点指向空值。双向链表:存储三个值,一个指向前一个节点连接,一个数据,一个指向后一个节点连接,首尾节点指向空值或空列表。循环链表:存储两个值,首尾指向用的值连接,一个数据,一个指向值。
五. HashTable 与 HashMap、ConcurrentHashMap 的区别
HashMap 是线程不安全的,HashTable 是线程安全的,ConcurrentHashMap 也是线程安全的。
HashMap 允许有空键/值,HashTable、ConcurrentHashMap 不允许存在空键/值。
HashTable 是线程安全的,用到了 synchronized 来保证线程安全,但是线程竞争激烈的情况下效率会变得非常低,因为 HashTable 的锁是针对整张表的,所以就导致了在一个线程访问的同时另一个线程无法调用方法或访问,进入阻塞或轮询状态。
ConcurrentHashMap 也是线程安全的,但是用到了锁分离技术,所以效率比 HashTable 高很多。效率:HashMap > ConcurrentHashMap > HashTable
HashMap 和 ConcurrentHashMap 都继承 AbstractMap,HashTable 继承 Dictionary。
六. JQuery实现全选和全反选
全选的 checkbox 被选中时,子 checkbox 全部被选中,反之,全部不选。
子 checkbox 中,只要有一个没选中,取消全选的 checkbox 的选中。
子 checkbox 被选中的数量和子 checkbox 的数量一样时,选中全选的 checkbox。
// 复选框事件// 全选、取消全选的事件
// 全选 checkbox 的 id 是 SelectAll,子 checkbox 的 id 是 subcheck。
// 如果页面有别的 checkbox,selectAll 方法里面稍作修改function selectAll(){if($("SelectAll").attr("checked"){ $(":checkbox").attr("checked".true); }else{ $(":checkbox").attr("checked".false); }}
// 子复选框事件function setSelectAll(){// 当没有选中某个子复选框时,SelectAll 取消选中if(!$("#subcheck").checked){ $("#SelectAll").attr("checked".false); }
// 获取 subcheck 的个数var chsub = $("input[type='checkbox'][id='subcheck']").length;
// 获取选中的 subcheck 的个数var checkedsub = $("input[type='checkbox'][id='subcheck']:checked").length;
if(checkedsub == chsub){ $("#SelectAll").attr("checked",true); }}// Jsp页面代码
type="checkbox"id="SelectAll" value="全选" onclick="selectAll();"/>
type="checkbox" id="subcheck" value="1" onclick="setSelectAll();"/>
type="checkbox" id="subcheck" value="2" onclick="setSelectAll(); "/>
type="checkbox" id="subcheck" value="3" onclick="setSelectAll();"/>
type="checkbox" id="subcheck" value="4" onclick="setselectAll();"/>
七. Forward (请求转发) 与 Redirect (重定向)
转发过程:客户浏览器发送 http 请求---》web 服务器接受此请求---》调用内部的一个方法在容器内部完成请求处理和转发动作---》将目标资源发送给客户。
在这里,转发的路径必须是同一个 web 容器下的 url,其不能转向到其他的 web 路径上去。中间传递的是自己的容器内的 request。在客 户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
重定向过程:客户浏览器发送 http 请求---》web 服务器接受后发送302状态码响应及对应新的 location 给客户浏览器---》客户浏览器发现是302响应,则自动再发送一个新的 http 请求,请求 url 是新的 location 地址---》服务器根据此请求寻找资源并发送给客户。
在这里 location 可以重定向到任意 URL,既然是浏览器重新发出了请求,则就没有什么 request 传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
数据共享:
Forward 是一个请求的延续,可以共享 request 数据。
Redirect 是一个新的请求,不可以共享 request 数据(但可以传递数据)。地址栏:
Forward 转发地址栏不发生变化。
Redirect 转发地址栏发生变化。跨域:
Forward 不能跨域。
Redirect 可以跨域。八. JQuery 总结
jquery 是一个轻量级的 js 框架,具有跨浏览器的特性,兼容性好,并且封装了很多工具,方便实用。
常用场景:选择器、dom操作、ajax、特效、工具类
java get请求url拼接参数_Java 基础知识复习相关推荐
- GET请求URL拼接参数
1. 只拼接参数:(适用于拼接的参数中没有特殊字符) /*** @Description get请求URL拼接参数* @param url* 接口地址(无参数)* @param map* 拼接参数集 ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结. 所以下面给大家分享一下我的经验: 第一部分 介绍微信公众号的一些简单 ...
- java基础知识复习(上半)
java基础知识复习 java为什么被发明? Green项目的确立,应用于像电视盒一样的消费类电子产品,语言本身本身中立. java的三大版本? javaSE的定位在于客户端,只要用于桌面应用软件的编 ...
- Java基础知识复习(一)
Java基础知识复习(一) 目录 Java简介 命名规则 八种基本的数据类型 字面量 类型转换 变量的形态 逻辑运算符 位运算 移位运算 习题知识点 目录 Java简介 Java是由Sun公司在199 ...
- 2021 版 Spring Boot 基础知识复习手册(2w字,建议收藏)
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...
- JDBC基础知识复习
JDBC基础知识复习 1.JDBC连接数据库 1.1.导入JDBC驱动 1.2.注册JDBC驱动程序 1.3.创建连接对象 1.4.关闭JDBC连接 1.5.每种数据库对应的驱动名和URL 2.JDB ...
- 基础知识复习,html、css、js
基础知识复习 HTML 一些标签的复习 一些符号的复习 CSS JS 许久没有写代码了,今年的上半年大部分时间在与模拟电路.数字电路.单片机这些东西打交道,本以此发展为主业,后发现十分痛苦.前两天写了 ...
- 考试备战系列--软考--02基础知识复习
这部分主要是计算机基础知识的概念介绍,相关系列文章如下所示. 考试备战系列--软考--01基础架构概念 考试备战系列--软考--02基础知识复习 考试备战系列--软考--03综合知识复习 考试备战系列 ...
- 什么是人们常用的计算机设备之一,计算机:复习二基础知识复习
<计算机:复习二基础知识复习>由会员分享,可在线阅读,更多相关<计算机:复习二基础知识复习(15页珍藏版)>请在人人文库网上搜索. 1.基础知识复习2,计算机系统,一.知识框图 ...
最新文章
- AI领域经典原创推荐,每一份坚持都值得被尊重
- collection集合 地址_java.util包下的集合
- glib-2.28.6 的编译和安装 以及错误的解决方法
- 手把手教你用Java的swing制作计算器
- Exchange Server 2003 部署手册
- 【z】多线程Java Socket编程示例
- ESFramework介绍之(28)―― Udp组件
- 爱奇艺动态化框架Qigsaw开源!带来极速原生开发体验和更低crash率
- 作用 和会话期 进程组_进程 进程组 会话的关系及作用
- vue3 eslint吐槽记录
- killer网卡服务器未运行,外星人killer control center服务未运行怎么解决?
- 未经许可,请勿擅自引用本博客内的原创作品
- [SPDK/NVMe存储技术分析]015 - 理解内存注册(Memory Registration)
- DOS原理和常用命令详解示例
- python请输入一个三位数输出该三位数的逆序数_编写程序,从键盘输入一个三位数,求出其逆序数并输出,例如输入123,输出321。...
- 长沙县:红红火火过大年 文化惠民暖人心
- 720度全景 html5代码,720web全景demo
- 关于报 程序包com.jt.pojo不存在、报 Process terminated、Failed to execute goal on project jt-manage: 的问题,已解决
- 【Vue3.0移动端项目--旅游网】-- 房屋详情页创建以及房屋详情图片展示
- 博士申请 | 澳大利亚麦考瑞大学王岩教授招收机器学习方向全奖博士生
热门文章
- error:2006D080:BIO routines:BIO_new_file:no such file
- 不要再浪费时间---阅读文献技巧本
- 47天21家面试,半年空挡期觉得整个人生都被毁了
- linux查看mac地址栏,Linux查看MAC地址方法
- 石头剪刀布游戏html
- python自动登录教程_python+selenium实现163邮箱自动登陆的方法
- C#实现爬取淘宝商品
- 部署Zabbix集中监控系统
- 最新M1专用AU更新Adobe Audition CC 2021中文直装版,已解决M1安装不上闪退等问题!
- 【小白转型项目经理】实战案例8,在无法确定全部需求的情况下,怎样规避风险?