JSP内置对象

属性保存范围
Page - 当前页面有效
Request - 服务器跳转有效
Session - 客户端跳转有效(当前浏览器有效)
Application - 全部页面有效

以上四种范围共有的方法:
getAttribute
setAttribute
removeAttribute

Page范围

javax.servlet.jsp.PageContext

<% pageContext.setAttribute("name","good") %>
<% pageContext.getAttribute("name")

PageContext的setAttribute方法中可以设置全部四种范围:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE

Request范围

<% request.setAttribute("name","good") %>
<% request.getAttribute("name") %>

Session范围

<% session.setAttribute("name","good") %>
<% session.getAttribute("name") %>

Application范围

<% application.setAttribute("name","good") %>
<% application.getAttribute("name") %>

URL地址改变的跳转叫客户端跳转

服务器跳转是一次请求,可以传递request
客户端跳转是多次请求,无法传递request

request对象

request对象是javax.servlet.http.HttpServletRequest接口的实例化对象,用于接收客户端参数

request方法:

// 获取参数
String getParameter(String name) 获取指定参数的值
String[] getParameterValues(String name) 获取指定的一组值
Enumeration<String> getParameterNames() 获取所有参数的名称

// 页面编码
void setCharacterEncoding(String env) throws UnsupportedEncodingException 设置客户端参数的编码规则
request.gtParameter("name").getBytes("utf-8") 另一种设置编码规则的方式

// 获取头信息
String getHeader(String name) 获取头信息的值
Enumeration<String> getHeaderNames() 获取全部头信息名称

// 其他信息
String getMethod() 获取request的提交方式
String getRemoteAddr() 获取IP地址
String getServletPath() 获取请求地址
String getContextPath() 获取上下文

页面间参数的传递
1. 由Form表单提交(POST)
2. URL地址传参(PUT)

response对象

request由客户端发到服务器,response由服务器发到客户端

response对象javax.servlet.http.HttpServletResponse接口的实例化对象,用于发送服务器响应

// 设置头信息
setHeader("refresh","time_second") 定时刷新
setHeader("refresh","time_second;URL=forward.htm") 定时跳转,在后退操作中失效
HTML头信息跳转: <META HTTP-EQUIV="refresh" CONTENT="time_second;URL=forward.htm" />
sendRedirect("forward.htm") 页面跳转 —— 客户端跳转,执行完所有代码后再跳
<jsp:forward page="forward.htm"> JSP跳转 —— 服务器跳转,立刻跳转,不会继续执行

// 操作Cookie
/* 设置Cookie */
Cookie c = new Cookie("key","value")
c.setMaxAge(time_second) // 设置在客户端的保存时间
response.addCookie(c)
/* 取得Cookie */
Cookie [] c = request.getCookies() 
c[i].getName
c[i].getValue

JSP的Cookie类是javax.servlet.http.Cookie
Cookie默认保存在当前浏览器中,浏览器关闭则Cookie消失

Session对象

session的主要作用是保存信息

Session对象是javax.servlet.http.HttpSession的实例
Session最重要的作用是属性操作: setAttribute()/getAttribute()/removeAttribute()
每个浏览器都有服务器自动分配的唯一的SessionID
Session会用到Cookie的处理机制,Coolie中自动保存了SessionID

服务器重启后,SessionID的分配会重新初始化,可以通过配置Tomcat/conf/server.conf改变这个默认行为

getId() 取得sessionID
invalidate() 注销session
isNew() 根据Cookie中是否有sessionID判断是否是新用户
getCreationTime()/getLastAccessedTime() Session的创建时间/最近一次访问时间

Application对象

application对象是javax.servelet.ServeletContext的实例

Application.getRealPath() 获取绝对路径,在Tomcat/conf/server.conf中配置
this.getServletContext().getRealPath() 另一种获取绝对路径的写法,用this.getServletContext()代替Application对象
getAttributeNames() 获取所有属性名称

Web安全

WEB-INF文件夹在客户端不可见,相比其他文件夹更有安全性
实际的工程中,资源文件都是放在WEB-INF中,然后通过servlet映射访问

Config对象

getInitParameter() 获取初始化参数,必须使用映射路径

Out对象

print()/println() 信息输出
getBufferSize() 获取缓冲区大小
getRemaining() 获取可用的缓冲区大小

pageContext对象

getRequest()
getResponse()
getSession()
getServletContext()
forward() 页面跳转,服务器跳转
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值