最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
#### 二.传值
文本框,密码框,单选框,复选框,下拉列表,文本域
注意:
文本框,密码框如果没有填值,则在后台打印的时候就是没有。
如果使用单选,或复选框,在没有选择任何值的时候,服务器上会接收到null,这个时候最容易发生空指针异常,因为没有键。其它的控件没有以上问题
request.getParameter()只是拿单独的值,返回值是String
复选框有多个值传上来,需要使用request.getParameterValues(),返回一个字符串数组String[]
#### 三.提交数据的方式
(1)使用超链接提交数据:提交方式是get提交
[使用超链接提交数据](Test6.jsp?name=tom&pwd=12345)
(2)使用表单传值
如果使用get方式提交,要注意提交的数据不能大于255个字节。如果是post就没这个问题。
(3)直接在浏览器地址栏输入:提交方式get方法 编码gbk
http://localhost:8080/test/test6.jsp?name=abc&pwd=456
注意request.getParameter()是拿客户端给服务端的值
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200415190634124.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NTM0NTQx,size_16,color_FFFFFF,t_70)
**注意! js方法的参数如果要传字符串,必须加双引号或者单引号**!
#### 四.重定向、服务器转发、服务器包含(页面之间的合作)
重定向response.sendRedirect(“test4.jsp”);
response.sendRedirect(url);//转到这个页面去,需要到客户端的往返,所以效率比较低,这种重定向后,当前页面继续执行,不阻止后面代码的运行,不能取到它前一个页面可以取到的参数,将当前的处理重新定向到指定的url,不会保留原来请求信息,相当于是在ie地址栏重新输入了一个新的地址
服务器转发:
RequestDispatcher dis=request.getRequestDispatcher(“test4.jsp”);
dis.forward(request,response);
RequestDispatcher dis=request.getRequestDispatcher(uri);
dis.forward(request,response);
将当前的处理继续交给uri所指定的资源进行处理,会将原来的请求继续传递下去,地址 栏不会改变(因为对于用户而言,他还是认为是在原来的处理页面)
仅仅只能在同一个站点内部
服务器动态包含,与<jsp:include page=“test4.jsp”></jsp:include>一样
RequestDispatcher dis=request.getRequestDispatcher(“test4.jsp”);
dis.include(request,response);
#### 五.服务器端设值和传值
//在服务端设值,必须以键-值对的形式保存
request.setAttribute(key,value)
//拿到服务端设置在request中值
request.getAttribute(“name”);(要转型)
**服务器传值:**
如果是转发,可以拿到前一个jsp在request中设置的值,因为这两个jsp使用的是同一个request对象
如果是重定向,不可以拿到前一个jsp在request中设置的值,因为重定向
是两次全新的请求,使用的不是同一个request对象
总结:增删改:一般用重定向
查询:转发
补充:触发form表单的两种提交方式,submit和button的用法
使用场景:
要校验表单内容
一种是用submit提交。一种是用button提交。
**方法一:**
在jsp的前端页面的头部插入一个js方法:
function checkUser(){
校验表单内容
if(){
//不满足要求
return false;
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
NG开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**