JSP内置对象

JSP内置对象:JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的对象,

即可以不用声明和创建,就可以直接在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量。

常用的有out、 request、 response、 session、 application以及不常用的Page、  pageContext、 exception、 config共9大内置对象 

在之前的博客有这样的一个例子可以加深理解

https://mp.csdn.net/postedit/84112439

一、out对象:

是JspWriter类的实例,是向客户端输出内容常用的对象

作用域:page

常用方法如下:

1.void println()  向客户端打印字符串

2.void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常

3.void clearBuffer() 清除缓冲区的内容,如果在flush之后不会抛出异常

4.void flush() 将缓冲区内容输出到客户端

5.int getRemaining() 返回缓冲区还剩多少可用

6.int getBufferSize() 返回缓冲区字节数的大小

7.boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常

8.void close() 关闭输出流

9.out.write() 与println()类似,区别在于println可输出各种类型的数据而 write方法只能输出字符型的数据

<%
out.print("输出内容");
%>

也可以输出js代码

<%
out.print("<script>alert('输出js代码')</script>");
%>

二、 request对象

作用域:request。说明,这次请求结束后,它的生命周期 就结束了。

      客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域, 即完成客户端的请求之前,该对象一-直有效。常用方法如下:

      ■String getParameter(String name)返回name指定参数的参数值

      ■String[] getParameterValues(String name)返回包含参数name的所有值的数组。

      ■void setAttribute(String,Object);存储此请求中的属性。

      ■object getAttribute(String name)返回指定属性的属性值

      ■String getContentType()得到请求体的MIME类型。

      ■String getProtocol0返回请求用的协议类型及版本号。

      ■String getServerName(返回接受请求的服务器主机名

将客户端输入的用户名和密码在getParameter.jsp获取并且显示出来

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<center>
		<form action="getParameter.jsp" method="post">
			用户名<input type="text" name="name" /> <br> 
			密码<input type="password" name="psd" /> <br>
			<br>
			<button type="submit">登录</button>
			<button type="reset">重填</button>
		</form>
	</center>
</body>
</html>

getParameter.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>getParameter</title>
</head>
<body>
<center>
	<%
    request.setCharacterEncoding("UTF-8");
	String name=request.getParameter("name");
	String password=request.getParameter("psd");
	if(name!=null&&password!=null){
	%>

	<p>welcome <%=name%>,你的密码是<%=password %></p>
		<%
	}else{
		%>
		<p>欢迎访问页面</p>
		<%	} %>
</center>
</body>
</html>

注意:在form表单中属性action后跟着跳转的页面,属性method有两个值,get将参数添加到页面地址末尾以参数形式提交,post提交表单时参数会被作为请求头部中的信息发送

三、response对象

   response对象包含了响应客户请求的有关信息,但在JSP里很少直接用到它。它是HttpServletResponse类的实例。

response对象具有page的作用域,即访问一个页面时,该页面的response对象只对这次访问有效,其他页面的response对象对当前页面无效。常用方法如下:

      ■String getCharacterEncoding()返回响应用的是何种编码

      ■void setContentType(String type)设置响应的MIME类型

      ■PrintWriter getWriter() 返回可以向客户端输出字符的一个对象(总是先于out对象输出,即打印在out对象前面

      ■sendRedirect(Java.lang.String location)重新定向客户端的请求

PrintWriter outer = response.getWriter();
outer.println("输出response对象生成的输出流outer对象");
response.sendRedirect("index.jsp"):
//跳转到index页面

四、session对象

session表示客户端与服务器的一次回话。Web中的session指的是用户在浏览某个网站时,从进入网站浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间,session实际上是一个特定的时间概念。当一个客户端访问一个服务器时,可能会在这个服务器的多个 页面之间反复跳转,服务器应当通过某种办法来识别这是来自 同一个客户端的不同请求,这种办法通常就是session对象

session销毁的三种方式:

1.session.invalidate() ;    //注销 session 

2.session过期

3.服务器重新启动

用一个登录例子来说明:

//login.jsp
	<form action="logcheck.jsp" method="post">
		姓名<input type="text" name="username"><br> 密码<input
			type="password" name="password"><br> <input
			type="submit" value="登录">
	</form>
//logcheck.jsp
	<%
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if (username.equals("fxs") && password.equals("123456")) {
			session.setAttribute("username", username);
			response.sendRedirect("welcome.jsp");
		} else {
			out.print("用户名或密码不正确,3秒钟之后重新登录");
			response.setHeader("refresh", "3;url='login.jsp'");
		}
	%>
//welcome.jsp
	<%
		if (session.getAttribute("username") == null) {
			out.print("你还没有登录,3秒钟之后重新登录");
			response.setHeader("refresh", "3;url='login.jsp'");
		} else {
	%>
	欢迎<%=(String) session.getAttribute("username")%>
	<br />
	<br />
	<a href="logout.jsp">注销</a>
	<%
		}
	%>
//logout.jsp
<%
session.invalidate() ;
//注销 session
response.sendRedirect("login.jsp");
%>

五、application对 象

application对象的生命周期从创建到应用服务器关闭。

application可保存网站访问人数,例:网站计数器 

<%
	Integer count = (Integer) application.getAttribute("count");
	if (count == null) {
		count = 1;
	} else {
		count++;
	}
	application.setAttribute("count", count);
%>
<html>
<head>
<title>网站计数器</title>
</head>
<body>
	你是第<%=count%>个访问客户
</body>
</html>

六、page对象

      page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。常用方法如下:

      ■class getClass() 返回此Object的类

      ■int hashCode() 返回此Object类的hash码

      ■boolean equals(Object obj)判断此Object是否与指定的Object对象相等

      ■void copy(Object obj) 把此Object拷贝到指定的Object对象中

      ■Object clone()克隆此对象

      ■String toString()把此Object对象转换为string类的对象

      ■void notify()唤醒一个等待的线程

      ■void notifyAll()唤醒全部等待的线程

      ■void wait(int timeout)使一个线程处于等待直到timeout结束或背唤醒

      ■void wait()使一个线程处于等待直到背唤醒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值