今天所讲的知识点
A 9个内置对象
B 4种属性范围
C 常用内置对象的方法
我对知识点的分析(如果表格不够,可在备注中继续填写)
9个内置对象
request对象:处理用户的请求信息
response对象:返回给用户信息。
pageContext对象:处理页面属性信息。
session对象:保存一个浏览器信息,一般用来处理登陆信息(判断是否登陆)。
application对象:保存服务器设置信息,完成在线人员列表。
out对象:向页面输出信息,相当于向用户输出信息。
config对象:设置初始配置信息,一般不使用。
page对象:用来保存当前页面的信息。
exception对象:处理页面编译和执行时的异常。
4种属性范围
一、4种属性范围
属性范围表示属性所能保存的作用范围,有以下4种:
1、 page:当前页范围。
2、 request:请求范围。
当进行服务器端跳转时,属性会保留,但如果进行了客户端跳转(即用户发送了另一个请求),则属性销毁
3、 session:浏览器范围。
示例:判断是否登录
//判断是否有对应编号的员工
if(rs.next()){
//设置session属性
session.setAttribute("loginSuc",empno);
// 假设登陆成功,保存Cookie信息。
Cookie cookie = new Cookie("empno",empno);
//接收用户选择的保存cookie的时间长度
int time=Integer.parseInt(request.getParameter("time"));
// 设置保存时间
cookie.setMaxAge(time);
response.addCookie(cookie);
<%
// 取得登陆属性
String this_empno = (String)session.getAttribute("loginSuc");
if (this_empno == null) {
// 定义标记,用来保存是否包含登陆Cookie信息
boolean flag = false;
// 判断客户端是否有Cookie信息
Cookie[] allCookie = request.getCookies();
if (allCookie != null) {
for (int i = 0 ;i < allCookie.length;i++) {
if (allCookie[i].getName().equals("empno")) {
flag = true ;
break;
}
}
}
if (!flag) {
%>
<jsp:forward page="login.jsp"></jsp:forward>
<%
}
}
%>
4、 application:服务器范围。
示例:完成在线人员显示
// 先判断是否已经有集合了
Set allLogin = (Set)application.getAttribute("loginSuc");
if (allLogin == null) {
allLogin = new TreeSet();
}
allLogin.add(empno);
// 设置application范围属性
application.setAttribute("loginSuc",allLogin);
这里只能完成添加在线用户功能,退出时无法删除,需要使用监听器才可以完成。
常用内置对象的方法
1、request对象
getAttribute():接收属性(自己设置的,通过setAttribute方法),返回类型为Object
getParameter():接收参数(用户输入的),返回类型为String
getParameterValues:一般只用来接收多选框信息,当提交的信息中有多个同名的参数时,可以使用该方法接收
<form action="test.jsp" method="post">
请选择喜欢的运动:<br>
<input type="checkbox" name="sports" value="1">足球 <br>
<input type="checkbox" name="sports" value="2">篮球 <br>
<input type="checkbox" name="sports" value="3">排球 <br>
<input type="checkbox" name="sports" value="4">羽毛球 <br>
<input type="checkbox" name="sports" value="5">乒乓球 <br>
<input type="submit" value="提交">
</form>
接收的参数:<%=request.getParameterValues("sports")[2]
%>
getParameterNames:取得所有提交参数名称。
接收的参数名:<%
Enumeration enums = request.getParameterNames() ;
while(enums.hasMoreElements()) {
String name = (String)enums.nextElement();
%>
<%=name %>
<%
}
%>
getParameterMap:取得所有的参数名与参数值,返回Map对象, key为参数名(String类型),value为参数值(String[]类型)
接收的参数内容:<%
Map all = request.getParameterMap();
Iterator iter = all.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry entry = (Map.Entry)iter.next();
%>
<%=entry.getKey() %> --> <%=entry.getValue() %> <br>
<%}%>
getRemoteAddr():返回访问者的IP地址,可以用来查找该访问人的所在地区,还可以根据该IP进行封IP操作。有时还使用IP作为用户上传文件的一部分文件名。
<%=request.getRemoteAddr() %>
getContextPath():取得项目虚拟目录,一般用来处理路径,使用该路径方式跳转时不需要考虑../的问题
<a href="<%=request.getContextPath() %>/myindex/index.jsp">返回</a>
<form action="<%=request.getContextPath() %>/admin/test.jsp" method="post">
getSession():通过请求取得当前用户的session对象
getRequestDispatch(跳转路径).forward(request,response):进行服务器端跳转,和<jsp:forward>功能相同
<%
request.getRequestDispatcher("/admin/test.jsp").forward(request,response);
%>
2、response
setHeader:设置头信息,可以通过该方法完成定时跳转,和定时刷新的功能
<%
response.setHeader("refresh","2;URL=myindex/index.jsp");
%>
2秒后自动跳转!
也可以直接使用头信息进行设置。
<meta http-equiv="refresh" content="2;URL=myindex/index.jsp">
sendRedirect():用来完成客户端跳转,与js中的window.location=””的功能相同。
addCookie():用来保存一个Cookie信息。
Cookie中可以保存一个信息,用来判断是否下次访问该网站需要再进行登陆,该信息保存到客户端中。需要对Cookie设置保存的时间,否则默认会在浏览器关闭后销毁(示例见session部分判断是否登录)
3、session
invalidate:销毁当前session
用来在完成退出功能时使用。
<%
session.invalidate();
response.sendRedirect(request.getContextPath()+"/login.jsp");
%>
4、application
getRealPath():取得当前项目物理路径,一般在保存文件时使用
<%=application.getRealPath("/") %>
5、pageContext
setAttribute():有一个重载的方法,需要传入三个参数。可以使用该方法为4种属性范围中的任意一种属性赋值。但一般开发中不使用该方法。
// 设置Session
pageContext.setAttribute("userid",userid,PageContext.SESSION_SCOPE);
今天的学习中session和request范围不太理解。
今天突然一下子学了很多的JSP知识点,感觉知识点有些散,之前李老师曾经提醒过我们JSP与java不同,一开始知识点会比较散,要想学好就必须进行反复的练习,才能把这些知识点都灵活应用,所以,这段时间我就坚持把一些基础的知识掌握清楚,反复的练习,我相信肯定能学好的,加油吧!
A 9个内置对象
B 4种属性范围
C 常用内置对象的方法
我对知识点的分析(如果表格不够,可在备注中继续填写)
9个内置对象
request对象:处理用户的请求信息
response对象:返回给用户信息。
pageContext对象:处理页面属性信息。
session对象:保存一个浏览器信息,一般用来处理登陆信息(判断是否登陆)。
application对象:保存服务器设置信息,完成在线人员列表。
out对象:向页面输出信息,相当于向用户输出信息。
config对象:设置初始配置信息,一般不使用。
page对象:用来保存当前页面的信息。
exception对象:处理页面编译和执行时的异常。
4种属性范围
一、4种属性范围
属性范围表示属性所能保存的作用范围,有以下4种:
1、 page:当前页范围。
2、 request:请求范围。
当进行服务器端跳转时,属性会保留,但如果进行了客户端跳转(即用户发送了另一个请求),则属性销毁
3、 session:浏览器范围。
示例:判断是否登录
//判断是否有对应编号的员工
if(rs.next()){
//设置session属性
session.setAttribute("loginSuc",empno);
// 假设登陆成功,保存Cookie信息。
Cookie cookie = new Cookie("empno",empno);
//接收用户选择的保存cookie的时间长度
int time=Integer.parseInt(request.getParameter("time"));
// 设置保存时间
cookie.setMaxAge(time);
response.addCookie(cookie);
<%
// 取得登陆属性
String this_empno = (String)session.getAttribute("loginSuc");
if (this_empno == null) {
// 定义标记,用来保存是否包含登陆Cookie信息
boolean flag = false;
// 判断客户端是否有Cookie信息
Cookie[] allCookie = request.getCookies();
if (allCookie != null) {
for (int i = 0 ;i < allCookie.length;i++) {
if (allCookie[i].getName().equals("empno")) {
flag = true ;
break;
}
}
}
if (!flag) {
%>
<jsp:forward page="login.jsp"></jsp:forward>
<%
}
}
%>
4、 application:服务器范围。
示例:完成在线人员显示
// 先判断是否已经有集合了
Set allLogin = (Set)application.getAttribute("loginSuc");
if (allLogin == null) {
allLogin = new TreeSet();
}
allLogin.add(empno);
// 设置application范围属性
application.setAttribute("loginSuc",allLogin);
这里只能完成添加在线用户功能,退出时无法删除,需要使用监听器才可以完成。
常用内置对象的方法
1、request对象
getAttribute():接收属性(自己设置的,通过setAttribute方法),返回类型为Object
getParameter():接收参数(用户输入的),返回类型为String
getParameterValues:一般只用来接收多选框信息,当提交的信息中有多个同名的参数时,可以使用该方法接收
<form action="test.jsp" method="post">
请选择喜欢的运动:<br>
<input type="checkbox" name="sports" value="1">足球 <br>
<input type="checkbox" name="sports" value="2">篮球 <br>
<input type="checkbox" name="sports" value="3">排球 <br>
<input type="checkbox" name="sports" value="4">羽毛球 <br>
<input type="checkbox" name="sports" value="5">乒乓球 <br>
<input type="submit" value="提交">
</form>
接收的参数:<%=request.getParameterValues("sports")[2]
%>
getParameterNames:取得所有提交参数名称。
接收的参数名:<%
Enumeration enums = request.getParameterNames() ;
while(enums.hasMoreElements()) {
String name = (String)enums.nextElement();
%>
<%=name %>
<%
}
%>
getParameterMap:取得所有的参数名与参数值,返回Map对象, key为参数名(String类型),value为参数值(String[]类型)
接收的参数内容:<%
Map all = request.getParameterMap();
Iterator iter = all.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry entry = (Map.Entry)iter.next();
%>
<%=entry.getKey() %> --> <%=entry.getValue() %> <br>
<%}%>
getRemoteAddr():返回访问者的IP地址,可以用来查找该访问人的所在地区,还可以根据该IP进行封IP操作。有时还使用IP作为用户上传文件的一部分文件名。
<%=request.getRemoteAddr() %>
getContextPath():取得项目虚拟目录,一般用来处理路径,使用该路径方式跳转时不需要考虑../的问题
<a href="<%=request.getContextPath() %>/myindex/index.jsp">返回</a>
<form action="<%=request.getContextPath() %>/admin/test.jsp" method="post">
getSession():通过请求取得当前用户的session对象
getRequestDispatch(跳转路径).forward(request,response):进行服务器端跳转,和<jsp:forward>功能相同
<%
request.getRequestDispatcher("/admin/test.jsp").forward(request,response);
%>
2、response
setHeader:设置头信息,可以通过该方法完成定时跳转,和定时刷新的功能
<%
response.setHeader("refresh","2;URL=myindex/index.jsp");
%>
2秒后自动跳转!
也可以直接使用头信息进行设置。
<meta http-equiv="refresh" content="2;URL=myindex/index.jsp">
sendRedirect():用来完成客户端跳转,与js中的window.location=””的功能相同。
addCookie():用来保存一个Cookie信息。
Cookie中可以保存一个信息,用来判断是否下次访问该网站需要再进行登陆,该信息保存到客户端中。需要对Cookie设置保存的时间,否则默认会在浏览器关闭后销毁(示例见session部分判断是否登录)
3、session
invalidate:销毁当前session
用来在完成退出功能时使用。
<%
session.invalidate();
response.sendRedirect(request.getContextPath()+"/login.jsp");
%>
4、application
getRealPath():取得当前项目物理路径,一般在保存文件时使用
<%=application.getRealPath("/") %>
5、pageContext
setAttribute():有一个重载的方法,需要传入三个参数。可以使用该方法为4种属性范围中的任意一种属性赋值。但一般开发中不使用该方法。
// 设置Session
pageContext.setAttribute("userid",userid,PageContext.SESSION_SCOPE);
今天的学习中session和request范围不太理解。
今天突然一下子学了很多的JSP知识点,感觉知识点有些散,之前李老师曾经提醒过我们JSP与java不同,一开始知识点会比较散,要想学好就必须进行反复的练习,才能把这些知识点都灵活应用,所以,这段时间我就坚持把一些基础的知识掌握清楚,反复的练习,我相信肯定能学好的,加油吧!