JAVA Web部分

1、HTTP GET和POST请求的区别?

  • 相同点:
    GET和POST请求都是HTTP的请求方式,用户通过不同的http请求方式完成对资源(URL)的操作。GET、POST、PUT、DELETE对应着对这个资源的查、改、增、删四个操作,具体来讲GET一般用于获取、查询资源信息,而POST一般用于更新资源信息。
  • 区别:
    (1)GET请求提交的数据会在地址栏显示出来,而POST请求不会在地址栏中显示出来。GET请求提交的数据会附在URL之后,而POST请求提交的数据会放置在HTTP包的包体中。
    (2)GET请求由于浏览器对地址长度的限制而导致传输的数据有限制,而POST请求不会因为地址长度限制而导致传输数据限制。
    (3)POST的安全性比GET安全性高。

2、servlet是什么?

Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

3、servlet生命周期?

Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期包含加载实例化初始化请求处理以及服务终止。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。
Servlet启动时,开始加载servlet生命周期开始,servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost等),当服务器决定将实例销毁的时候(服务器关闭)调用其destroy方法。

4、servlet API中forward()与redirect()的区别?

(1)forward是服务器端的转向,而redirect是客户端的跳转。
(2)使用forward浏览器地址不会发生改变,而redirect会发生改变。
(3)forward是一次请求中完成,而redirect是重新发起请求。
(4)forward是在服务器端完成,而不用客户端重新发送请求,效率较高。

5、JSP和servlet有哪些相同点和不同点?

  • 相同点:
    JSP是servlet技术的扩展,所有的JSP文件都会被翻译成为一个继承HttpServlet的类,也就是JSP最终也是一个servlet,这个servlet对外提供服务。
  • 不同点:
    servlet和JSP最主要的不同点在于JSP侧重于视图,servlet侧重于控制逻辑。
    servlet如果要实现HTML的功能,必须使用writer输出对应的HTML,比较麻烦;而JSP的情况是java和HTML可以组合成一个扩展名为.jsp的文件,做界面展示比较方便而嵌入逻辑比较复杂。

6、JSP有哪些内置对象?作用分别是什么?

JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pageContext、config、page、exception
(1)request:代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。
(2)response:表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
(3)session:是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。
(4)application:可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
(5)out:用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。
(6)pageContext:作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。
(7)config:主要作用是取得服务器的配置信息。
(8)page:代表JSP本身,只有在JSP页面内才是合法的。
(9)exception:作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件
四大作用域:pageContext、request、session、application,可以通过jstl从四大作用域中取值。

7、session和cookie的区别?

  • 相同点:
    session和cookie都是会话跟踪技术。cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。但是session的实现依赖于cookie,sessionId(session的唯一标识)需要存放在客户端。
  • 区别:
    (1)cookie数据存放在客户的浏览器上,session数据存在在服务器上。
    (2)cookie不是很安全,别人可以通过分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
    (3)session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能,应当使用cookie。
    (4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
    (5)使用建议:将登陆信息等重要信息存放在session中;其他信息如果需要保留,可以放在cookie中,比如购物车。购物车最好使用cookie,但是cookie是可以在客户端禁用的,这时候可以使用cookie+数据库的方式实现,当从cookie中不能取出数据时,就从数据库中取。

8、MVC的各个部分都有哪些技术来实现?

M(Model) 模型 Javabean
V(View) 视图 HTML、JSP、volicity、freemaker
C(Control) 控制器 servlet、action

最经典的MVC模式:JSP+servlet+Javabean,实际上就是model2的实现方式,就是把视图和逻辑隔离开来。
model1的方式:JSP+service+dao
model2的方式:JSP+servlet+service+dao
使用struct2和springMVC这样的MVC框架后:jsp+core controller+action+javabean

你可能感兴趣的:(JAVA Web部分)