四 java web考点
一、GET和POST区别(参考Servlet&JSP学习笔记)
<form>中method属性默认为GET。
1、使用POST的情况
GET跟随URL之后,请求参数长度有限,过长的请求参数或文件上传这类大数据的操作,用POST。
GET请求参数会出现在地址栏,敏感信息或保密信息,用POST。
有些浏览器根据地址栏缓存数据,地址栏相同时直接通缓存中取得旧数据,不会向服务器发送请求,这里一般使用POST。
POST用于非幂等操作(如增删改)。
2、使用GET的情况
POST请求参数不会出现在地址栏,无法添加到浏览器的书签之中,希望用户按照不同的请求参数可以设置书签,用GET。
GET用于幂等操作(如查询)。
注:幂等操作指的是,只是取得数据,而不改变服务器上的数据。
二、解释一下什么是Servlet,并说说Servlet的生命周期和基本结构
1、Servlet概念(参考Servlet&JSP学习笔记)
Servlet是一个JAVA类,通过web容器(如tomcat)的加载、初始化,受到容器的管理才成为一个Servlet。没有了容器,Servlet就只是一个JAVA类,无法响应客户端请求。
Servlet运行在容器中,容器有JVM启动。每次请求到达,由容器开启一个线程,并决定由那个Servlet来处理该请求。如果多个请求到达,则启动多个线程,而不是重启JVM进程。所以大幅度减轻性能负担。
2、Servlet生命周期
Servlet的生命周期分为以下阶段:
(1)加载(实例化):启动web容器时,或第一次访问该Servlet时(默认)进行加载(实例化);
(2)初始化:实例化后,容器调用其init()方法进行Servlet初始化;
(3)处理请求:请求到达时,调用其service()方法。service方法自动调用与请求对应的doGet()或doPost()方法;
(4)结束:结束服务时(容器关闭时),容器调用其destroy()方法。
3、Servlet类写法
三、Servlet api中forward和redirect的区别(参考Servlet&JSP学习笔记)
1、RequestDispatcher的forward()方法——服务器端跳转
request.getRequestDispatcher("some.do").forward(request,response);//相对URL
forward()会将请求转发至指定URL,请求的转发在容器中进行,而非通过HTTP响应通知浏览器进行重定向(Redirect)。浏览器不知道请求被转发,因此地址栏不变。
若打算访问应用程序WEB-INF中的文件,可以采用此法。
这种方法比服务器端跳转高效,并且有助于隐藏实际链接,所以尽量使用此法。但有些情况,如需要跳转到其他服务器上的资源,就必须使用sendRedirect()。
2、HttpServletResponse的sendRedirect()方法——客户端跳转
response.sendRedirect("http://openhome.cc");
sendRedirect()可以要求浏览器重新请求另一个URL,又称为重定向(Redirect),使用时可以指定绝对URL或相对URL。这个方法会在回应中设置HTTP状态吗301以及Location标头,浏览器接收到这个标头后,会重新使用GET方法请求指定的URL(包含刚才请求的所有参数),因此地址栏会变。由于是利用HTTP状态码与标头重定向的,所以此方法必须在响应未确认输出前执行,否则抛异常。
四、JSP和Servlet的异同,两者之间有何联系
1、区别
Servlet侧重于控制逻辑,主要用于java程序逻辑的定义,应避免在Servlet中直接产生页面输出(如直接编写HTML)。
JSP是Servlet技术的扩展,本质上是Servlet,但JSP是java和HTML组合的一个.jsp文件(但同样不建议JSP的HTML中含有java程序),侧重于视图。
2、联系
JSP会被web容器转译为Servlet的".java"源,编译为".class"文件,然后加载到容器中,所以最后提供服务的还是Servlet实例。
五、jsp有哪些内置对象?作用分别是什么?分别有什么方法?
1、JSP的9个内置对象
JSP的9个内置对象由web容器为用户实例化,用户可以直接使用,不需要像java中那样用new生成。
2、属性及其作用范围
jsp内置对象中,pageContext,request,sission,application归为一类,它们都能借助属性达到数据共享,它们拥有一些共同的3个方法:
setAttribute,getAttribute,removeAttribute。
属性的宿主对象决定了属性的作用域和生命期,JSP属性有四种宿主对象,相应地有四种作用范围:
page:跳转后无效;
request:服务器端跳转后有效,客户端跳转后无效;
session:跳转后有效;
注:pageContext可以操作4种范围。
六、jsp有哪些动作?作用分别是什么?(非重点)
七、jsp的三种常用指示类型
page,include,taglib
八、jsp中静态include、动态include的区别(参考Servlet&JSP学习笔记)
1、静态include:使用指示元素include
在转译时期就决定了转译后的Servlet内容。
动静态页面都是先包含后处理。
<%@ include file=""%>
2、动态include:使用<jsp:include>标签
运行时将别的网页动态包括进来进行响应,可以带参数。
对于静态页面(.html)与静态包含效果一样;对于动态页面(.jsp)先处理后包含。
(1)<jsp:include page="" flush="true/false"/>
(2)<jsp:include page="" flush="true/false">
<jsp:param name="" value=""/>
……
</jsp:include>
3、动静态页面区别
静态页面html:服务器不对网页文件做任何处理,读取文件后直接当做响应返回给浏览器。
动态页面jsp:服务器响应之前,可能先按照客户端请求参数、标头或实际服务器上的状态,以程序的方式动态产生响应内容,再返回给浏览器。
九、Request对象的主要方法有哪些?
十、request.getParameter()与request.getAttribute()的区别?
1、request.getParameter()
取得请求参数。取得表单或URL中的参数,这些参数存在于request请求中。
2、request.getAttribute()
取得请求属性。是servlet中自定义的参数,需要提前用request.setAttribute()定义。
十一、页面间对象传递的方法
request,session,application,cookie等
十二、MVC(参考Servlet&JSP学习笔记)
Model(模型): 是封装了应用程序功能或状态的对象,通过JavaBean实现。
View(视图): 负责显示页面,通过JSP实现。
Controller(控制器): 主要用于收集并处理用户请求,通过Servlet实现。(Model改变时通知View的功能HTTP无法实现)
MVC设计模式把应用逻辑、处理过程和显示逻辑分开,利于编写和维护。将MVC应用到Web程序需要做修改。因为HTTP基于请求/响应,在模型状态改变时,无法从服务器对浏览器发出通知。没有请求,HTTP服务器就不会响应。
十三、编码
十四、实战
四 java web考点的更多相关文章
- 超实用的Java web面试题
Java web面试题 1.Tomcat的优化经验 答:去掉对web.xml的监视,把jsp提前编辑成Servlet. 有富余物理内存的情况,加大tomcat使用的jvm的内存 2.HTTP请求的GE ...
- java web(四)文件上传与下载
一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...
- Java Web入门学习(四)Eclipse与Maven、Tomcat整合配置
Java Web学习(四)Eclipse与Maven整合配置 一.准备工作 1.Tomcat 8.5.15 2.Maven3.5 3.Eclipse Neon.3 Release (4.6.3) 二. ...
- Java Web项目(Extjs)报错四
1.Java Web项目(Extjs)报错四 具体报错如下: usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ...
- Java Web入门学习(四)Eclipse与Maven、Tomcat整合配置 (重整版并解决问题)
Java Web学习(四)Eclipse与Maven整合配置 (重整版) 一.准备工作 1.Tomcat 8.5.15 2.Maven3.5 3.Eclipse Neon.3 Release (4.6 ...
- 自我总结(四) ---java web项目完结,j2ee的开始
自我完善的过程就是在不断的自我总结不断的改进. 前半个月刚好把项目做完了,项目也答辩了.总的来说吧,我觉得自己在java web这块知识上不算是彻彻底底把他弄懂了,就是说到的知识点都能够回答的上来一些 ...
- Redis(十四)Redis 在Java Web 中的应用
在传统的 Java Web 项目中,使用数据库进行存储数据,但是有一些致命的弊端,这些弊端主要来自于性能方面. 由于数据库持久化数据主要是面向磁盘,而磁盘的读/写比较慢,在一般管理系统中,由于不存在高 ...
- 如何用比较快速的方法掌握Spring的核心——依赖注入,Java web轻量级开发面试教程 读书笔记
我们知道,Java方面的高级程序员一定得掌握Spring的技能,其中包括Spring 依赖注入(IOC),面向切面(AOP),和数据库的整合(比如和Hibernate整合或声明式事务等)以及Sprin ...
- Java Web中的中文编码
Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...
随机推荐
- 进行hcmcloud 数据库备份以及设置的处理过程.
导入数据库以及简单设置. 最近进行了一个数据库备份的简单工作: create database hcmcloud create user hcm with password 'Test6530' 执行 ...
- 【LOJ】#3030. 「JOISC 2019 Day1」考试
LOJ#3030. 「JOISC 2019 Day1」考试 看起来求一个奇怪图形(两条和坐标轴平行的线被切掉了一个角)内包括的点个数 too naive! 首先熟练的转化求不被这个图形包含的个数 -- ...
- PAT A1065 A+B and C (64bit) (20 分)
AC代码 #include <cstdio> int main() { #ifdef ONLINE_JUDGE #else freopen("1.txt", " ...
- tp5定时任务
第一步: a.App/模块/ 下创建command文件夹 b.我这边是创建在crontab模块里面,在command文件夹下创建一个Task.php文件(具体名字自己根据需求定) c.复制下面的代码到 ...
- 【操作记录】搭建虚拟机下 java 开发环境
第一步,配置虚拟机 virtualBox 官网下载最新版,安装,选择简体中文. CentOS 官网下载 最小版iso. 新建虚拟机并配置,挂载iso光盘,然后启动. 因为是最小版,安装时可能不支持使用 ...
- java爬取并下载酷狗TOP500歌曲
是这样的,之前买车送的垃圾记录仪不能用了,这两天狠心买了好点的记录仪,带导航.音乐.蓝牙.4G等功能,寻思,既然有这些功能就利用起来,用4G听歌有点奢侈,就准备去酷狗下点歌听,居然都是需要办会员才能下 ...
- Qt5.8.0编译QtMqtt库并使用该库连接有人云的例子
一 编译QtMqtt库Qt5.10才官方支持MQTT,但我用的Qt版本是5.8.0 Mingw_32BIT, 为了在Qt5.8.0上添加MQTT支持,需要自己编译源码 步骤: (1) git clon ...
- C#面向对象17 23种设计模式
1.简单工厂模式 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- Windows10出现打开EXE应用程序错误
运行部分EXE文件,弹出错误“该文件没有与之关联的程序来执行该操作 右键开始菜单, PowerShell(管理员) 也是一样 连安装程序Vs2017都无法启动,用了多种方法都不能搞定. 花了不少时间 ...
- C# 文件过滤器
首先说明一个示例,分析一下Filter属性的构成:“ Excel文件|*.xls ”,前面的“Excel文件”成为标签,是一个可读的字符串,可以自定定义,“|*.xls”是筛选器,表示筛选文件夹中后缀 ...