栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java web--jsp/servlet

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java web--jsp/servlet

1.servlet是什么?与jsp的区别联系?

在web容器中运行的服务器端Java程序,主要用来响应http请求。在MVC模式中,一般用于controller(控制器)部分。

首先:jsp是servlet的简化,jsp本质上就是servlet;

其次,jsp更偏向于外部的页面表达,servlet则更倾向于逻辑控制。以MVC设计模式为例子,其中M-modle(javabean), V-view(jsp), C-controller(servlet);

最后,jsp有内置对象(九大内置对象),并且内置对象都是通过HttpServletReques,HttpServletResponse,HttpServlet获得。 servlet则没有内置对象。

2.servlet的生命周期?

实例化--初始化(init方法)--响应请求(调用service方法中对应的doget或dopost方法)--消亡(调用destroy方法)

init方法至始至终只执行一次,因此servlet对象是单实例。

3.jsp九大内置对象?

(1)session: 会话级别,与请求有关的会话期

(2)application: 应用程序级别,servlet正在执行的内容

(3)page: jsp页面本身

(4)pageContext: 页面属性管理

(5)config: web应用的配置对象

(6)requst: 封装客户端用户请求,包括post,get

(7)response: 封装服务器对客户端的响应

(8)out: 用于传送回应的输出

(9)exception: 封装页面抛出异常的对象

4.jsp的四种作用域?

page-- request--  session-- application--

page(页面作用域):jsp默认的作用域是page,有效范围是当前页面,即该作用域对象只能在该页面使用,借助pageContext的getAttribute()和setAttribute()方法去传值。页面作用域的对象自客户端请求页面时创建,在页面响应客户端或者请求转发到其他资源时消亡。

request(请求作用域):request在一次请求的全过程中有效,存放于HttpServletReques。其生命周期从客户端发起请求,服务器处理响应,或者将请求forward(转发)到其他页面进行处理而结束。转发的时候,请求的参数和属性依然保有,并不会因为转发而丢失。request作用域对象只能存在于一次请求中,有效范围是当前请求周期。

session(会话作用域):从向服务器发送第一个请求开始,只要页面未关闭,或者会话未过期(默认30min)或者未调用HttpSession的invalidate方法,都属于同一个会话周期。在jsp中,当我们向服务器发送请求,服务器响应请求时会在客户端的cookie中记下一个sessionID,接下来每次请求时都会将sessionID带着发送到服务器,服务器就会比对这个sessionID来判断是否处于同一个会话周期内。只要关闭浏览器,sessionID就会更改。

application(应用程序作用域)application的有效范围是最广的,从应用启动到应用结束。只要tomcat未重启,那么数据在任意一个页面,请求,会话中都是共享的。

5.session和cookie、application的区别?

session和cookie:

(1)session存放于服务器端,cookie存放于客户端;

(2)cookie相较于session来说不是很安全,他人可以通过分析本地cookie来进行cookie欺骗,一般建议比较重要的权限信息存放于session,一般信息存放于cookie;

(3)由于session一段时间内是存放于服务器端上,当访问增多时,会比较占用服务器性能。若考虑减轻服务器性能方面,推荐使用cookie;(4)单个cookie保存数据不超过4k,很多浏览器限制一个站点最多存放20个cookie。

session和application:

(1)对象作用范围不同,session是会话级别的,application是应用程序级别的;

一个用户一个session,每个用户的session都是不同的,同一个用户所访问的网站页面之间共享一个session。

一个应用程序一个application,每个应用程序的application都是不同的,对于同一个应用程序,多个用户之间共享一个application。

(2)生命周期不同,session是只要不关闭浏览器就一直存活,application是不关闭服务器(即应用程序一直开启)就一直存活。

5.Http请求中的get和post方式?

(1)get是从服务器获取数据,post是向服务器传输数据;

(2)get请求是把参数包含在URL中,对用户是可见的,因此不安全;

(3)post请求则是把参数放在request body中,对用户不可见,因此相对安全;

(4)get在URL中携带的参数是有长度限制的,而post没有;

(5)浏览器回退时,get是无害的,而post则会再次提交请求;

(6)get方式请求,浏览器会把http header和data一并发送出去,服务器响应200;

(7)post方式请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200(并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号