🌴 2022.4.24 早十 文章目录📢📢📢📣📣📣
🌴 哈喽!大家好,我是【张时贰】,一位热爱学习的博主!😎😎😎
🚀 【张时贰】的写作风格:喜欢用【言简意赅】的方式由【理论】到【实践】去讲解每一个知识点,而不喜欢用【晦涩难懂】的官方陈述😄😄😄
🚁【张时贰】博客的主要是自己学习过程中的笔记与心得😊😊😊
🚄 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
👩💻👨💻
💸💸💸感谢月薪百万的你支持我!💸💸💸
- 前言
- 5.8 request对象
- 5.8.1 获取请求参数值
- 5.8.2 获取form表单的信息
- 5.8.3 获取请求客户端信息
- 5.8.4 在作用域中管理属性
- 5.8.5 cookie管理
- 5.9 response对象
- 5.9.1 重定向网页
- 5.9.2 处理HTTP文件头
- 5.9.3 设置输出缓冲
- 5.10 session对象
- 5.10.1 创建及获取session信息
- 5.10.2 从会话中移除指定的绑定对象
- 5.10.3 销毁session
- 5.10.4 会话超时的管理
- 5.11 application对象
- 5.11.1 访问应用程序初始化参数
5.8 request对象 5.8.1 获取请求参数值🎬本文章是 【JAVA WEB开发技术】 专栏的文章,主要是上课的随堂笔记与练习
🔗JAVA WEB开发技术专栏 传送门
💻提示:目录顺序以当堂内容(教材)为准,所以并非“1、2、3”
🚀 GET 方法JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量
request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求
request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等
在一个请求中可以通过“?”的方式(GET)来传递参数,然后通过request对象的getParameter方法来获取参数值
5.8.2 获取form表单的信息GET方法将请求的编码信息添加在网址后面,网址与编码信息通过"?"号分隔。
http://localhost:8080/5-06/show.jsp?id=001&name=alan
- GET方法是浏览器默认传递参数的方法
- 一些敏感信息,如密码等建议不使用GET方法。
- 用get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。
- JSP中常用表单向服务器提交信息,所提交的信息可以使用request对象获取
- 浏览器中向服务器提交信息,使用 GET 和 POST 方法
- POST提交数据是隐式的,GET是通过在url参数传递
5.8.3 获取请求客户端信息request获取表单数据的方法:
getParameter()
:获取表单参数的值getParameterValues()
:接收数组变量 (名字相同,但值有多个),如checkbox类型getParameterNames()
:取得所有变量的名称,返回一个EmumerationgetInputStream()
:读取来自客户端的二进制数据流打个比方
document.getelementbyID("ID").value;
等同于jsp中request.getParameter("ID");
5.8.4 在作用域中管理属性
- 每当客户端请求一个页面时,JSP引擎就会产生一个新的对象来代表这个请求
- request对象提供了一系列方法来获取HTTP信息头,包括信息提交方式、客户端主机IP、端口号、表单数据,cookies,HTTP方法等等
5.8.5 cookie管理在request中可以设置、获取或移除属性
setAttribute()
:添加设置一个属性及其值getAttribute()
:获得某属性值removeAttribute()
:移除某属性
5.9 response对象Cookie是存储在客户机的文本文件,可以用它保存了大量轨迹信息。在servlet技术基础上,JSP能够提供对HTTP cookie的支持
通常有三个步骤来识别用户:
- 服务器脚本发送一系列cookie至浏览器。比如名字,年龄等等
- 浏览器在本地机中存储这些信息,以备不时之需
- 当下一次浏览器发送任何请求至服务器时,它会同时将这些cookie信息发送给服务器,然后服务器使用这些信息来识别用户
request对象中的
getCookies()
方法来访问cookie,该方法会返回一个Cookie对象的数组
Cookie对象中常用的方法:
public void setDomain(String pattern)
:设置cookie的域名,比如baidu.com
public String getDomain()
:获取cookie的域名,比如baidu.com
public void setMaxAge(int expiry)
:设置cookie有效期,以秒为单位,默认为当前session的存活时间
public int getMaxAge()
:获取cookie有效期,默认为-1 ,表明cookie会活到浏览器关闭为止Cookie对象中常用的方法:
public String getName()
:返回 cookie的名称,名称创建后将不能被修改
public void setValue(String newValue)
:设置 cookie的值
public String getValue()
:获取cookie的值
public void setPath(String uri)
:设置cookie 的路径,默认为当前页面目录下的所有URL,还有此目录下的所有子目录
public String getPath()
:获取cookie 的路径
response 对象是
javax.servlet.http.HttpServletResponse
类的一个实例。就像服务器会创建request对象一样,它也会创建一个客户端响应response响应对象主要将JSP容器处理后的结果传回到客户端。可以通过response变量设置HTTP的状态和向客户端发送数据,如Cookie、HTTP文件头信息等
5.9.1 重定向网页response对象的常用方法:
void addHeader(String name, String value)
:添加指定名称的响应头和值
void addCookie(Cookie cookie)
:添加指定的cookie至响应中
void setHeader(String name, String value)
:使用指定名称和值设置响应头的名称和内容
void sendError(int sc, String msg)
:使用指定的状态码和消息向客户端发送一个出错响应
void sendRedirect(String location)
:使用指定的URL向客户端发送一个临时的间接响应
5.9.2 处理HTTP文件头使用response对象的
sendRedirect()
方法,可以将文档移动到一个新的位置
重定向过程:
- 客户浏览器发送http请求
- web服务器接受后发送302状态码响应及对应新的location给客户浏览器
- 客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址
- 服务器根据此请求寻找资源并发送给客户
地址栏可以看到重定向后的地址。原request失效,产生一个新的request对象。重定向行为是浏览器做了至少两次的访问请求的
5.9.3 设置输出缓冲可以使用response对象的addHeader、setHeader、setIntHeader等方法来设置HTTP头信息
response.setHeader("refresh", "5");
response.setHeader("refresh", "2;URL=welcome.jsp");
response.setHeader("Content-Type", "text/html;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
🌴 2022.4.26 早十 5.10 session对象 5.10.1 创建及获取session信息通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区中;只有3种情况,才将缓冲区中的内容写到客户端
- JSP页面的输出信息已经全部写入到了缓冲区
- 缓冲区已满
- 在JSP页面中调用了
response.flushBuffer()
或者out.flush()
方法
void setBufferSize(int size)
:设置响应体的缓存区大小
boolean isCommitted()
:返回响应是否已经提交到客户端
Session对象是用来分别保存每一个用户信息的对象,以便于跟踪用户的 *** 作状态。Session的信息保存在服务端,Session的ID保存在客户机的Cookie中。不同的用户对应的Session对象一般是不同的。例如当用户登录站点时,系统就会为他建立一个与其他不相的Session对象,以便于区别其他用户。这个Session对象记录该用户的个人信息,而当该用户退出网站时,该Session对象就会随之消失
session对象常用的方法:
public Object getAttribute(String name)
:返回session对象中与指定名称绑定的对象,不存在则返回null,类似document.getemelentbyID
,但是session返回值是对象,要强转换(String)session.getAttribute("xxx")
public Enumeration getAttributeNames()
:返回session对象中所有的对象名称
public long getCreationTime()
:返回session对象被创建的时间,以毫秒为单位,从1970年1月1号凌晨开始算起
public String getId()
:返回session对象的ID
public void removeAttribute(String name)
:移除session中指定名称的对象
public void setAttribute(String name, Object value)
:使用指定的名称和值来产生一个对象并绑定到session中
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String sessionMessage="session练习";
session.setAttribute("message",sessionMessage);
out.print("保存在session范围内的对象为:"+sessionMessage);
out.print("
");
request.setAttribute("messgae",sessionMessage);
out.print("保存在request范围内的对象为:"+request.getAttribute("message"));
%>
<%=session.getId()%>
5.10.2 从会话中移除指定的绑定对象
5.10.3 销毁session对于存储在session中的对象,如果想从中移除,可以使用session对象的
removeAttribute()
方法
5.10.4 会话超时的管理session的销毁只有三种方式:
- 调用了
session.invalidate()
方法- session过期(超时)
- 服务器重新启动
session的生命周期包括三个阶段:创建、活动、销毁
创建:当客户端第一次访问某个jsp或者servlet的时候,服务器会为当前会话创建一个sessionId,每次客户端向服务器发送请求时,都会将此sessionId携带过去,服务端会对此sessionId进行校验
活动:某次会话当中通过超链接打开的新页面属于同义词会话。只要当前页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话
销毁:Session的销毁三种
5.11 application对象 5.11.1 访问应用程序初始化参数Tomcat默认session超时时间为30分。设置session超时时间有两种方式:
session.setMaxInactiveInterval(时间)
;//单位是秒在web.xml中配置
// 单位是分钟 10
application对象是
javax.servlet.ServletContext
的实例,该实例代表JSP所属的WEB应用本身,负责提供应用程序在服务器中运行时的一些全局信息Application对象将信息保存在服务器中,只要服务器没有关闭,application对象中的数据就会一直存在,在整个服务器的运行过程当中,application对象只有一个,它会被所有的用户共享
与request和session相比, application的存活范围更大
application对象常用的方法:
String getAttribute(String name)
:根据属性名称获取属性值
Enumeration getAttributeNames()
:获取所有的属性名称
void setAttribute(String name, Object object)
:设置属性,指定属性名称和属性值
void removeAttribute(String name)
:根据属性名称删除对应的属性
ServletContext getContext(String uripath)
:获取指定URL的ServletContext对象
String getContextPath()
:获取当前Web应用程序的根目录
String getInitParameter(String name)
:根据初始化参数名称,获取初始化参数值
int getMajorVersion()
:获取Servlet API的主版本号
int getMinorVersion()
:获取Servlet API的次版本号
String getMimeType(String file)
:获取指定文件的MIME 类型
String getServletInfo()
:获取当前Web服务器的版本信息
String getServletContextName()
:获取当前Web应用程序的名称
void log(String message)
:将信息写入日志文件中
application有一个重要的用处:用于web应用的配置参数。如,通过初始化信息为程序提供访问数据所用的驱动、URL、用户名和密码等,然后web应用中其他servlet和JSP都可以使用它获取连接数据库的信息
在web.xml文件中给出
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)