javaweb面试题
专栏笔记:https://blog.csdn.net/blu_111/category_10397159.html
1. <%%> 与 <%!%> 的区别?(拓展:<%=%> 和 <%:%> )
<%%> (JSP脚本)中的内容会翻译在Servlet的Service方法中,用于编写逻辑
<%!%>(JSP声明)中的内容会翻译在生成的Servlet类中,用于定义方法
<%=%>(JSP表达式)会把 Java 对象直接输出到 HTML ⻚面中
<%:%> 和 <%=%> 作用相同
2. 页面间传值有哪几种几种方式
- 直接在URL请求后添加:?k1=v1&k2=v2
- form表单传值:
<input type="text" name="age" value="23"/>
- 使用Cookie和Session实现数据共享
3. cookie与session区别,如何使用
cookie数据保存在客户端,session数据保存在服务器端。
cookie的键和值都是字符串类型,session的值可以是对象类型。
Session大小受服务器内存控制, Cookie一般最大为4k
通过 response.addcookie() 向客户端设置cookie
通过 request.getCookies() 获取从客户端提交过来的所有cookie
request.getSession() 获取session
4. 在servlet里面实现页面跳转的几种方式
1)redirect方式:response.sendRedirect("/index.jsp");
2)forward方式:request.getRequestDispatcher("/index.jsp").forward(request,response);
5. Forward 和 Redirect 的区别
从地址栏显示来说:
Forward(转发)地址栏不变
Redirect(重定向)地址栏改变
从请求次数来看:
Forward(转发)是服务器内部跳转,是一次请求
Redirect(重定向)是客户端的跳转,属于多次请求
从数据共享来说:
Forward 转发页面和转发到的页面可以共享请求数据
Redirect 不能共享数据
从运用地方来说:
Forward 一般用于用户登陆的时候,根据角色转发到相应的模块
Redirect 一般用于用户注销登陆时返回主页面
此外,Redirect 还能够重定向到其他站点
5. JSP的9大内置对象和4大域对象
9大内置对象
内置对象名 类型
request (HttpServletRequest)
response (HttpServletResponse)
config (ServletConfig)
application (ServletContext)
session (HttpSession)
exception (Throwable)
page (Object(this))
out (JspWriter)
pageContext (PageContext)
4大域对象
ServletContext context 只能在同一个web应用中使用 (全局的)
HttpSession session 只能在同一个会话(session对象)中使用 (私有的,多个请求和响应之间)
HttpServletRequet request 只能在同一个请求中使用 (转发才有效,重定向无效)
PageContext page 只能在当前jsp页面使用 (当前页面)