1):Jsp的重定向和转发的流程有什么区别

  重定向是客户端行为,转发是服务器端行为

  重定向时服务器产生两次请求,转发产生一次请求,重定向时可以转发到项目以外的任何网址,转发只能在当前项目里转发

  重定向会导致request对象信息丢失。转发则不会

  转发的url不会变,request.getRequestDispatch()。forward()

  重定向的url会改变,response.getRedirect();

  重定向(response)不能访问 WEB-INFO 下的页面,而转发(request)可以

2):Jsp和servlet的区别

  1、JSP在本质上就是SERVLET,但是两者的创建方式不一样.

  2、Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观.

  3、JSP由HTML代码和JSP标签构成,可以方便地编写动态网页

        因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.

  1、JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。

  2、JSP编译后是“类servlet”。

  3、Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。

  4、JSP侧重于视图,Servlet主要用于控制逻辑。

3):Jsp的九大对象,七大动作,三大指令

四大作用域的详解Demo

1、out :向客户端输出数据,字节流,如:out.print(“data”);

2、request :接受客户端的http请求。

3、response: 响应客户的请求,重定向客户转任意界面。

4、session :用于保存用户信息,跟踪用户行为,当前打开的浏览器内,多个页面共享数据,session对象指的是客户端与服务器的一次会话,

   从客户连接服务器的一个webApplication开始,直到客户端与服务器断开连接为止,它是HttpSession类的实例,

   setAttribute(String name,Object obj):设置属性名为name 属性值为obj,getAttribute(String  name) 得到属性值。

5、application:对象 实现是用户间数据的共享,可存放全局变量,它开始于服务器的启动, 直到服务器的关闭,

   在此期间,此对象将一直存在,这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作,

   在任何地方对此对象属性的操作,都将影响到其他用户对此的访问,服务器的启动和关闭决定了application对象的生命,它是ServletContext类的实例。

6、page :代表jsp这个实体本身,即当前页面有效,相当于java中的this,数据范围:page<session<application

7、exception :运行时异常,在会发生异常的页面加入指令:<%@ page errorPage=“处理错误的页面.jsp” %> 在处理异常的页面写入:<%@ page inErrorPage=“true”%>

8、pageContext :pageContext 对象提供了对jsp页面内所有的对象及名字空间的访问,也就是说它可以访问到本页所在的session,也可以取本页所在的application 的某一属性值,

   它相当于页面中所有功能的集大成者。它的本类名也叫pageContext。

9、config jsp对应的servlet的配置,可以得到web.xml 中的初始化参数。

jsp七大动作:

1、include: 动态包含 它会总是检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,flush属性:用true,表示页面可刷新,默认为false

2、useBean :<jsp:useBean id=“对象名” class=“包名.类名” scope=“作用范围(request/page/application/session)”/> 作用域默认为page(本页面有效)。

3、getProperty :从对象中取出属性值:<jsp:getProperty name=“javaBean对象” property=“javaBean对象属性名”/>

4、setProperty: 为对象设置属性值:<jsp:setProperty name=“javaBean对象” property=“javaBean对象属性名” value=http://my.csdn.net/“值”/>

   为对象设置属性值:<jsp:setProperty property=“javaBean对象属性名” name=“javaBean对象” param=“username”/>

5、param :传递参数 到达跳转页面可以通过 request.getParameter(“参数名”)方式取出参数值 <jsp:include page=“转向页面的url” > <jsp:param name=“参数名1” value=“http://my.csdn.net"参数值1” >

6、forward :跳转页面 <jsp:forward page=“login.jsp”/>

7、plugin jsp:plugin 用于指定在客户端运行的插件

jsp三大指令:

1、@page 指定编码 <%@ page language=“java” contenType=“text/html;charset=utf-8” pageEncoding=“utf-8” >    @ page 导包 <%@ page import="java.util.* "%>

2、include 静态包含 <%@ include file=“include.jsp”%>

3、taglib 是用来在当前jsp页面中导入第三方的标签库 <%@ taglib prefix=“c” url=“http://java.sun.com/jsp/jstl/core” %>

   prefix:指定标签前缀 (可以随意起名) url:指定第三方标签库的url(唯一标识) 当然 需要先把第三方标签库所需jar包放到类路径中。

4):接口 与 抽象类的 区别

接口:

1、定义 接口 的关键字为:interface

2、子类使用 implements 来实现接口

3、接口不能有构造

4、接口默认修饰是 public (也只能是 public  属性及方法也一样)

5、接口没有 main 方法

6、接口只能继承一个  或 实现多个其它接口

7、接口中的属性默认修饰  public  static  final  常量

8、接口中的方法必须是抽象了(默认可以不加 abstract)

9、实现类需要全部实现接口中的方法

抽象类:

1、定义 抽象类的关键字为 Abstract

2、抽象类不能被实例化(除了不能实例化  其他没什么太大区别)

3、抽象类可以有构造器

4、可以有默认实现

5、抽象方法可以有 public protected  default 修饰

6、可以有 main  方法

7、可以继承一个类  实现多个接口

8、抽象方法 一定在 抽象类中

9、抽象类的子类不能重写所有抽象方法,那么子类还是一个抽象类。

10、final 定义的普通方法 子类无法重写

11、final  与 abstract 不能同时修饰

5):list map set 三个接口,存取元素时,各有什么特点

list:(有序,可重复)

  list 里存放的对象是有序的,同时也是可以重复的,List 关注的是 索引,拥有一系列和索引相关的方法,查询速度快。

  因为 对List 集合进行 插入或删除数据时,会伴随数据的移动,所以插入删除数据效率低。

Set:(无序,不能重复)

  Set 存放的对象是无序的,不可重复,集合中的对象不按特定的方法排序,只是简单把对象放入集合中

Map:(键值对,键唯一、值不唯一)

  map 存储方式为 键值对、键不可重复,值可以。

  根据键获取值,对map集合遍历时先得到键的 set集合,对set集合进行便利,得到对应的值。

对比如下:

  是否有序 是否允许重复元素
Collection
List
Set:AbstractSet
Set:HashSet
Set:TreeSet
Map:Abstract value 可以重复
Map:HashMap value 可以重复
Map:TreeMap 是(二叉树排序)
     

6):Get  与 POST 的区别:

1、GET在浏览器回退时是无害的,而POST会再次提交请求。

2、GET请求会被浏览器主动cache,而POST不会,除非手动设置。

3、GET请求只能进行ASCII编码,而POST支持多种编码方式。

4、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

5、GET请求在URL中传送的参数是有长度限制的(2048字符),而POST没有。

6、对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

7、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

8、GET参数通过URL传递,POST放在Request body中。

9、get 产生一个tcp 数据包,浏览器会把http header 和data 一并发送出去,服务器响应200(返回数据)

10、post 产生两个tcp 数据包,浏览器会先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200(返回数据)

http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

7):常见Http协议状态:

200:请求正常处理

204:请求被受理但没有资源可返回

206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源

301:永久性重定向

302:临时重定向

303:与302相似,它希望客户端在请求一个URL时,能通过Get方法重定向到另一个URI上

304:发送附带条件的请求时,条件不满足时返回,与重定向无关

307:临时重定向,与302类似,只是强制要求使用Post方法

400:请求报文语法有误,服务器无法识别

401:请求需要认证

403:请求的资源禁止被访问

404:服务器无法找到对应的资源

500:服务器内部错误

503:服务器正忙

https://www.cnblogs.com/mlq2017/p/10148624.html

8):Http请求报文与响应报文格式?

https://www.cnblogs.com/CodingUniversal/p/7524088.html

 

.....................................................

分享知识-快乐自己:初中级 java 面试题宝典的更多相关文章

  1. 分享知识-快乐自己:java代码 操作 solr

    POM 文件: <!-- solr客户端 --> <dependency> <groupId>org.apache.solr</groupId> < ...

  2. 分享知识-快乐自己:Java中各种集合特点

    Java中各种集合特点: Collection[单列集合]: List(有序,可重复): ArrayList: 底层数据结构是数组,查询快,增删慢.线程不安全,效率高. Vector: 底层数据结构是 ...

  3. 分享知识-快乐自己:Java常用API总结

    1):java.io.BufferedReader类(用于从文件中读入一段字符:所属套件:java.io) 1. 构造函数BufferedReader(java.io.FileReader FileR ...

  4. 分享知识-快乐自己:Java 中 的String,StringBuilder,StringBuffer三者的区别

    这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面. 1):首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer &g ...

  5. 分享知识-快乐自己:java 中的访问修饰符

    1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...

  6. 分享知识-快乐自己:JAVA中的 Iterator 和 Iterable 区别

    java.lang.Iterable  java.util.Iterator  Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调用itera ...

  7. 分享知识-快乐自己:Java中的经典算法之冒泡排序(Bubble Sort)

    原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ...

  8. Java初中级程序员面试题宝典

    Java基础部分 &与&&区别? &和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假:但是&&当第一个条件不成之后,后面的条件都 ...

  9. 115个Java面试题和答案——终极列表(下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

随机推荐

  1. Unity UGUI——提供可视功能的UI组件(Text)

    基本属性介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fontsize/400/fill/I0J ...

  2. 《TomCat与Java Web开发技术详解》(第二版) 第八章节的学习总结 -- 访问mysql

    终于学到如何访问Mysql了 1. 可以看看此章节提供的sql脚本,以后可以照着写了.此外,对于Mysql如何使用,最好的地方就是其官网介绍了.http://dev.mysql.com/doc/ref ...

  3. 打造一个高逼格的android开源项目——小白全攻略 (转)

    转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...

  4. spring mvc数据验证

    今天来说一下.前段验证,与后端数据验证.大家都知道.在我们.注册与登陆的时候,往往需要对数据进行效验.那么前段我们都知道,可以使用,js去做处理. 今天主要讲解.后端的数据效验.这里我们采用Hiber ...

  5. android 各版本的区别

    三.Android 6.x 新增运行时权限概念 Android6.0或以上版本,用户可以完全控制应用权限.当用户安装一个app时,系统默认给app授权部分基础权限,其他敏感权限,需要开发者自己注意,当 ...

  6. Windows下搭建React Native Android开发环境

    准备工作 安装JDK 安装Android SDK 安装C++环境 安装node.js 安装react-native命令行工具 创建项目 运行packager 运行模拟器 安卓运行 安卓调试 安装JDK ...

  7. hihoCoder #1312 : 搜索三·启发式搜索(A*, 康托展开)

    原题网址:http://hihocoder.com/problemset/problem/1312 时间限制:10000ms 单点时限:1000ms 内存限制:256MB   描述 在小Ho的手机上有 ...

  8. php配置opcache

    官网地址:http://php.net/opcache 使用下列推荐设置来获得较好的 性能: opcache.memory_consumption=128 opcache.interned_strin ...

  9. Solr6.5查询参数说明

    q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符合结果中同时是 ...

  10. vue Element UI 导航高亮

    1. activeIndex 为默认高亮值,根据改变activeIndex的值来改变高亮的值 当页面改变的时候获取当前的路由地址,截取第一个 / 后面的值,就是当前的高亮值了 为什么要截取呢? 因为点 ...