面试-JSP、SERVLET

来源:互联网 发布:敏感肌肤如何美白 知乎 编辑:程序博客网 时间:2024/05/20 04:50

1、jsp的九大内置对象?
request 请求对象 类型 javax.servlet.ServletRequest 作用域 request
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 application

pageContext 页面上下文对象 javax.servlet.jsp.PageContext 作用域 page
page 页面对象 类型 java.lang.Object 作用域page
out 输出对象 作用域 类型 javax.servlet.jsp.JspWriter page
response 响应对象 类型 javax.servlet.ServletResponse 作用域 page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 page
exception 异常 类型 java.lang.Throwable 作用域 page

2、jsp有哪些动作?作用分别是?
jsp:include 引入一个文件
jsp:useBean 实例化一个对象
jsp:setProperty:设置属性值
jsp:getProperty:获取属性值
jsp:forward 请求转发到另一个页面
jsp:plugin

3、动态include和静态include的区别
动态:
jsp:include 一般用来引入动态jsp,可带可变的参数,每次父页面加载的时候,子页面都需要重新加载一次
动态
%@include 一般用来引入静态html,只在第一次加载的时候加载,之后不需要重新加载

4、forward()和sendRedirect()
区别1:转发浏览器地址栏不发生变化,request存放的变量一起带过去;重定向地址栏变化,且不携带之前request里的变量,相当于进入一个新的request域
区别2:转发本质上一次请求:发送请求-》服务器响应相应页面给浏览器
重定向相当于两次请求:发送请求-》服务器返回浏览器一个地址和响应码-》浏览器判断是重定向,请求相应地址

5、get和post区别
区别1:form表单提交action,get把表单中的数据显示在url后面通过?连接,kv对之间用&连接。post则是隐藏的,把表单数据放在数据体中。
区别2:get传输的数据量很小,几kb,post传输的数据量很大
区别3:get是form默认的方法
区别4:get只允许ascii字符,所以会乱码

6、cookie和session的区别
区别1:cookie把数据保存在在客户端,session把数据保存在服务端
区别2:cookie不安全
区别3:cookie有长度限制,浏览器的cookie不能超过300个,每个不能超过4KB。session没有长度限制,存储的数据量很大

7、调用destory后,会销毁servlet吗?如果这个servlet正在执行其他任何和线程呢?
会销毁。但是在执行destory之前,会等service里的代码执行完

8、容器如何创建servlet的实例
Class.forName().newInstance()

9、session的作用?
识别用户保存用户信息

10、cookie的作用?
在客户端保存用户信息,起到缓存和用户识别的作用
保存用户登录状态,当用户登录后,服务器返回特定cookie给浏览器,当下次访问该域名任何网站时,请求时就会带上cookie信息,服务器通过识别这个cookie来判断用户是否登录
记录用户行为
cookie的弊端:
安全性差,通过明文传输保存
流量消耗大,每次请求都要带上cookie
cookie的长度有限制,可保存的数据量小

11、jdbc操作数据库步骤
注册数据库驱动
创建数据库连接
创建statement通道
执行sql语句
处理结果集
关闭数据库连接

12、statement和preparedStatement区别
区别1:statement每次执行sql,都要进行相关sql的编译;而PreparedStatement时预编译的,采用了cache机制(预编译语句,放到cache中,每次要用则可以从cache里面取,不用重新编译),在执行批量sql的时候大大提高效率
区别2:PreparedStatement带可变参数,通过?做占位符,可读性比较好也更加灵活
区别3:防止sql注入 or1=1

13、mysql驱动和url以及oracle驱动和url
mysql:com.mysql.jdbc.Driver;jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE
oracle:oracle.jdbc.dirver.OracleDriver;jdbc:oracle:thin:@localhost:1521:orcl

原创粉丝点击