`

WEB 第三天

阅读更多
今天所讲的知识点
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不同,一开始知识点会比较散,要想学好就必须进行反复的练习,才能把这些知识点都灵活应用,所以,这段时间我就坚持把一些基础的知识掌握清楚,反复的练习,我相信肯定能学好的,加油吧!
分享到:
评论

相关推荐

    移动web第三天.emmx

    移动web第三天.emmx

    微信web第三方登录.zip

    微信WEB第三方登录 博客地址:https://blog.csdn.net/weixin_39984161/article/details/107912921

    web前端开发技术储久良第三版答案

    《Web前端开发技术储久良第三版答案》涵盖了前端开发领域的关键知识点,主要针对储久良教授编著的教材第三版中的习题和实验提供了详尽的解答。这本书旨在帮助学习者深入理解Web前端开发的核心概念和技术,通过解决...

    web apl 第三天.xmind

    web apl 第三天.xmind

    30天学通java web项目案例开发(第三章)源码

    在本资源中,“30天学通java web项目案例开发(第三章)源码”是一个针对初学者的Java Web项目开发教程,旨在帮助学习者在30天内掌握Java Web开发的基本技能。第三章通常会深入到实际项目构建的关键概念和技术,通过...

    易语言WEB浏览器2.0#3版(第三方)

    易语言WebBrowser2.fne支持库中文名为易语言WEB浏览器支持库,本易语言支持库封装WEB浏览器控件。使您可以在 Windows 窗体客户端应用程序中显示...易语言WEB浏览器支持库为易语言第三方支持库。 操作系统需求: Windows

    web前端第三版习题参考答案_.docx.docx

    网页由两部分构成:头部()和主体()。...这些都是Web前端开发中不可或缺的部分,对于理解和创建基本的网页内容至关重要。通过练习和实际操作,可以进一步巩固这些知识点,并为更深入的前端学习打下坚实的基础。

    PHP和MySQLWeb开发第三版(光盘源码)

    《PHP和MySQL Web开发第三版》是一本深入探讨如何使用PHP与MySQL进行高效Web开发的专业书籍。这本书的光盘源码包含了大量的实例代码,旨在帮助读者更好地理解和实践书中的理论知识。通过研究这些源码,我们可以了解...

    VB调用web api打开第三方图纸

    本话题将深入探讨如何使用VB调用Web API来打开第三方图纸,这通常涉及到跨平台数据访问和集成。 首先,我们需要理解VB调用Web API的基本原理。在VB中,可以使用`HttpClient`类来发送HTTP请求到Web API。这个过程...

    JAVA WEB开发源码

    3. **第三章:JSP** - JSP(JavaServer Pages)用于动态网页生成,讲解JSP语法、EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)。 4. **第四章:MVC模式** - 介绍Model-View-...

    蓝桥杯第十三届大赛web大学组题目

    蓝桥杯第十三届大赛web大学组题目 本资源为蓝桥杯第十三届大赛web大学组题目,涵盖了Web开发的多个方面。 1. HTML结构:从题目中可以看到,HTML结构被分为多个部分,包括css、images和index.html三个文件夹。css...

    完整版 web应用开发 web网站建设实用教程 第6讲 Web服务器(共86页).ppt

    web应用开发 web网站建设实用教程 第3讲 脚本语言 JavaScript JS 语言(共64页).ppt web应用开发 web网站建设实用教程 第4讲 层叠样式表 CSS语言(共64页).ppt web应用开发 web网站建设实用教程 第5讲 HTML5和CSS3...

    21天学通Java+Web开发 第3章 JSP指令元素

    21天学通Java+Web开发 第3章 JSP指令元素21天学通Java+Web开发 第3章 JSP指令元素21天学通Java+Web开发 第3章 JSP指令元素

    web worker处理js长任务卡死,含引入第三方库

    完整测试用例,含数据和第三方库 用于《web worker处理js长任务卡死,含引入第三方库》这篇文章的项目Demo下载 文章地址:https://blog.csdn.net/weixin_43718790/article/details/135197630

    无懈可击的WEB设计第二版.pdf

    《无懈可击的WEB设计第二版》是一本由美国著名Web设计师及作家Dan Cederholm所著的书籍,它是Web标准设计领域的经典之作。本书全面论述了如何利用XHTML和CSS技术,提高网站的灵活性与适应性,使其能够适应不同的用户...

    (钉钉)第三方WEB网站扫码登录

    【标题】:“(钉钉)第三方WEB网站扫码登录” 在这个标题中,我们关注的是如何集成钉钉的扫码登录功能到一个第三方的Web应用程序。钉钉是阿里巴巴推出的企业级通讯和协作平台,它提供了丰富的API接口供开发者使用...

    Web程序设计13 Web程序设计13 Web程序设计13 Web程序设计13

    在这个主题中,"Web程序设计13"可能指的是一个课程或者系列教程的第13个部分,着重于进一步深化对Web开发的理解。下面将详细探讨Web程序设计的相关知识点。 首先,Web程序设计的基础是HTML(超文本标记语言),它是...

    Web程序设计源码(第3-10章)

    本资源包含了第3至第10章的源码,这些章节通常会涵盖Web应用开发的核心概念和关键组件。让我们深入探讨一下这些章节可能涉及的IT知识点。 第3章:Web基础 这一章可能会介绍HTTP协议的基础,它是Web应用通信的核心。...

    PHP和MYSQL-WEB开发_第三版

    PHP和MYSQL-WEB开发_第三版,号称是php的圣经,英文版的

Global site tag (gtag.js) - Google Analytics