1.简述 tomcat 的启动过程?
答:Tomcat 启动——> 读取自己的 server.xml——>根据 Context 标签的内容找到项目目录、
项目入口 path——>读取项目的 web.xml 配置——>获得首页、session 失效时间等信息
2.为什么修改了 server.xml,web.xml 服务器需要重启?
答:因为服务器必须重启才能再次读入配置文件的新内容
3.Session 由谁产生的?是什么时候产生的? 什么时候结束?在整个过程中 sessionID 是否变化?
答:由服务器产生的
4.在整个访问过程中 sessionID 是否变化?
答:没有,一旦建立了会话,sessionid 在整个生命周期内不变http 是无状态的,为了解决无状态的问题,我们跟服务器维持对话有哪些方式?
答:session,cookie
5、简述 http 的特点?
a.无状态:一次会话完成后,会话结束,连接断开,下次访问再次建立新的会话
b.常用方法:get,post(再说说每个方法的特点)
c.返回状态:200,404,403,500
6.如果不使用 session 而是单独使用 cookie 能够完成整个访问过程?
答:可以,但不安全。
7.描述 cookie 从创建到发送到客户端的过程?
答:1.创建(new Cookie(key,value)方法)、
2.设置生命周期 setMaxAge(秒)方法,如果设置生命周期为 0 则该 cookie 不会发送到客户端
3.发送(response.andCookie()方法)
8.如何获取客户端的 cookie 信息?
答:request.getCookies()方法,返回一个 coolie 类型的数组
9.request,response,session,application 是哪些接口类型对象? (回答一个即可)
答:分别是 HttpServletRequest、HttpServletResponse、HttpSession、ServletContext
10.如何把 get 形式的访问转换为 post 形式的访问?
答:在 servlet 的 doGet 中调用 doPost 方法
11.在 JSP 中如何设置 COOKIE??
答:response.addCookie()方法
12.在 JSP 中如何删除一个 COOKIE??
答:response.addCookie(username,null)中将 cookie 对象设置为 null;
13.如何设置 cookie 在某一时间后过期??
答:用 Cookie.setMaxAge(int)
14、servlet 的生命周期?
答:首次访问时调用 init()方法,只调用一次,只实例化一个对象,也就是说整个项目中
只有一个 servlet 实例,N 多人共同访问这一个实例,有线程安全问题。
然后调用 doGet 或者 doPost 完成业务操作,当容器退出的时候调用 destroy()方法销毁,我
们自己退出的时候不会调用。
15、cookie 与 session 的区别?
答:cookie 保存在客户端,session 保存在服务器端。
Cookie 保存的信息相对没有 session 安全。
16、 web.xml 的作用?它在哪里放着?
答:可以在 web.xml 中配置项目的欢迎页、session 生命时长、声明 servlet 等。
17、jsp 有哪些内置对象?作用分别是什么?(任意回答 2-3 个)
答:JSP 共有以下 9 种基本内置组件(可与 ASP 的 6 种内部组件相对应):
request 用户端请求,此请求会包含来自 GET/POST 请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application 表示应用的上下文,全局
out 用来传送回应的输出
config servlet 的构架部件
page JSP 网页本身
exception 针对错误网页,未捕捉的例外?
Jsp 面试题 讲师:张立坤 QQ:576620567
18、jsp 有哪些动作?作用分别是什么?(任意回答 2-3 个)
答:JSP 共有以下 6 种基本动作
jsp:include:在页面被请求的时候引入一个文件,跟 include 指令的区别?
jsp:useBean:寻找或者实例化一个 JavaBean。
jsp:setProperty:设置 JavaBean 的属性。
jsp:getProperty:输出某个 JavaBean 的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记?
19、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?
答:动态 INCLUDE 用 jsp:include 动作实现
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 静态 INCLUDE 用
include 伪码实现,定不会检查所含文件的变化,适用于包含静态页面。
20、如何避免 JSP 页面自动生成 session 对象?
答:session 是比较消耗资源的,如果没必要保持和使用 session,就不应该创建 session。
可以使用 jsp 页面指令 session=”false”来避免 JSP 页面为每个请求都自动创建 session。
21、页面跳转的方式?
答:1)
2)request.getRequestDispatcher("index.jsp?name=a").forward(request,response);
3)response.sendRedirect("index.jsp?name=a");
4)
获取更多资源请关注微信公众号:AKA程序王