JSP九大内置对象

1、out 输出对象

2、request 请求对象

请求对象:存储客户端向服务器端发送的请求信息
常见方法:

String getParameter(String name);  //由字段名返回字段值
String[] getParameterValues(String name); //由字段名返回多个字段值
void setCharacterEncoding("utf-8");   //设置请求编码,只对post方式有效
void getRequestDispatcher("xxx.jsp").foward(request,response);  //请求转发,A->B页面跳转。
ServletContext getServerContest();  //获取项目的ServletContext对象

get 和 post方式的区别:
1、get方式获取的数据会在地址栏显示,且请求大小(4–5KB); post不会显示在地址栏;
2、文件上传必须使用post
3、post 更加安全

3、response:响应对象

响应对象:服务器对客户端的响应事件

void addCookie(Cookie cookie);   //服务器向客户端增加Cookie对象
void sendRedirect(String location);  //重定向,页面跳转的另一种方式,throw IOException;
void setContentType(String type);  //设置服务器端响应编码

4、Session 会话对象

1、cookie
Cookie(客户端,不是内置对象):Cookie是由服务器端产生,再发送给客户端保存。相当于本地缓存的作用;
作用:提高访问服务器端的效率,但是安全性较差;
Cookie: name = value; (k-y对)
java . servelt . http . Cookie;
常见方法:

String getName( )//获取name
String getValue( )//获取Value
void  setMaxAge( int expiry )//最大有效期(秒)  

使用方法:
1、服务器端准备Cookie:response.addCookie(Cookie cookie);
2、页面跳转(请求转发 / 重定向)
3、客户端获取cookie: request.getCookies( );

a、服务器增加 cookie :response 对象;
b、客户端获取对象:request 对象;
c、不能直接获取某一个单独对象,只能一次性全部获取所有的 cookie 对象;

2、Session机制:

(1)客户端第一次请求服务端时,服务端会产生一个 Session 对象(用于保存该用户的信息);并且每个 Session
对象都会产生一个sessionId ,用于区分其他的Session; (2)服务端会产生一个Cookie
对象,并且这个Cookie的name=JSESSIONID,value=服务端 sessionId
的值;然后服务端会在响应客户端的同时,将该Cookie 发送给客户端,至此 客户端就有了一个cookie(JSESSIONID)
(3)此时客户端的 Cookie 就和 服务端的Session 一一对应;(JSESSIONID == sessionId)
(4)当客户端第2/n次请求服务端时,服务端会先从客户端cookie 中的JSESSIONID
去服务端的session中匹配sessionId; 如果匹配成功,说明此用户可以直接登录;

常用方法:

String getId();  //获取sessionId
boolean isNew();  //判断是否是新用户(第一次访问)
void invalidate();    //使session失效 (退出登录,注销)

void setAttribute("k","y");  //设置key和value
Object getAttribute("k");   //由key获取value,返回值是Object

void setMaxInactiveInterval("秒");   //设置最大有效,非活动时间;
int getMaxInactiveInterval("秒);   //获取最大有效,非活动时间;

Cookie 和 Session 的区别;

1、Session保存在服务端,Cookie保存在客户端;
2、Session相对于较为安全;客户端Cookie较为不安全;
3、Session保存的内容都是Object;而Cookie保存的内容是key—value对;

客户端在第一次请求服务端时,如果服务端发现此请求没有JSESSIONID,则会创建一个name=JSESSIONID的Cookie,发送给客户端;

5、Application 全局对象

常用方法:

String getContextPath();   //获取虚拟路径
String getRealPath("虚拟路径");    //获取绝对路径(虚拟路径相对应的绝对路径)

6、config 配置对象

7、page 当前JSP页面对象

8、exception 异常对象

四种范围对象:(小->大)

pageContext   JSP页面容器、、当前页面有效,页面跳转后无效
request   请求对象、、一次请求有效(请求转发有效,重定向后无效)
session   会话对象、、同一次会话有效(浏览器跳转依然有效!)//关闭/切换浏览器后无效
application   全局对象、、全局有效(切换浏览器任然有效!)//关闭服务,和其他项目无法访问

以上四个对象共有的方法:

Object getAttribute(String name);   //根据属性名,获取属性值
void setAttribute(String name, Object obj);   //设置属性值(新增,修改)
void removeAttribute(String name);   //根据属性名删除对象

以上四个范围对象,通过setAttribute( ) 赋值;通过getAttribute( )取值;
最好使用范围小的对象,由于范围越大,开销越大;

pageContext的范围:

//pageContext.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>
	<%
		pageContext.setAttribute("name", "Hello pageContext");
		request.getRequestDispatcher("pageContext1.jsp").forward(request, response);
	
	%>
	
	<%=pageContext.getAttribute("name") %>

</body>
</html>
//pageContext1.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>
	<%=pageContext.getAttribute("name") %>

</body>
</html>

request的范围:

//request.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>
	<%
		request.setAttribute("name", "Hello Request");
		request.getRequestDispatcher("request1.jsp").forward(request, response);
	
	%>
	
	<!--  <%=pageContext.getAttribute("name") %> -->
</body>
</html>
//request1.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>
	<%=request.getAttribute("name") %>
</body>
</html>

Session的范围:

//session.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>
	<%
		session.setAttribute("name", "Hello Session!");
		//request.getRequestDispatcher("request1.jsp").forward(request, response);
		response.sendRedirect("session1.jsp");
	%>
</body>
</html>
//session1.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>
	<%=session.getAttribute("name") %>
</body>
</html>

application的范围:

//application.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>
	<%
		application.setAttribute("name", "Hello Application!");
		//request.getRequestDispatcher("request1.jsp").forward(request, response);
		response.sendRedirect("session1.jsp");
	%>
</body>
</html>
//application1.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>
	<%=application.getAttribute("name") %>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值