首页 > 其他分享 >理解JSP底层

理解JSP底层

时间:2024-06-15 14:32:18浏览次数:15  
标签:对象 setAttribute private 理解 JSP value key 底层

import java.net.URLDecoder;

public class login_jsp{
    
    //JSP的9大内置对象
    private JSPWriter out;//当前JSP输出流对象
    private HttpServletRequest request;//请求对象
    private HttpServletResponse response;//响应对象
    private HttpSession session;//会话对象
    private ServletContext application;//全局域对象 -- 表示整个项目
    private ServletConfig config;//当前JSP配置文件对象
    private Object page = this;//当前JSP对象
    private PageContext pageContext;//当前JSP上下文关系对象:可以获取其他8大内置对象
    //Exception exception -- 当前JSP异常对象
    
    /**
    	9大内置对象中的四大域:
    		理解:这四大域都可以存储数据
    	
        请求域:
        	将数据存储到请求对象中,返回响应后,这个请求对象就会被销毁
    		request.setAttribute(key,value);
    		Object obj = request.getAttribute(key);
    		
    	会话域:
    		将数据存储到会话对象中,默认30分钟有效,多个客户端的Session不能共享数据的
    		session.setAttribute(key,value);
    		Object obj = session.getAttribute(key);
    		
    	全局域:
    		将数据存储到全局域对象中,全局域表示整个项目,项目关闭该对象才会被销毁,
    		全局域中的数据是整个项目共享的
    		application.setAttribute(key,value);
    		Object obj = application.getAttribute(key);
    	
    	页面域:
    		将数据存储到页面域对象中,数据只能在当前页使用
    		pageContext.setAttribute(key,value);
    		Object obj = pageContext.getAttribute(key);
    */
    
    
    
    public void jsp_service(){
        //设置响应编码格式
        response.setContentType("text/html;charset=UTF-8");
        
        //jsp文件中遇到Html代码,就用输出流传输给客户端
        out.writer("<html>\n\r");
        out.writer("<head>\n\r");
        out.writer("    <title>Title</title>");
        out.writer("</head>");
        out.writer("<body>");
	
        //jsp文件中遇到Java代码,就执行即可
    	Cookie[] cookies = request.getCookies();
        if(cookies != null){
          int count = 0;
          for (Cookie cookie : cookies) {
            String key = cookie.getName();
            String value = URLDecoder.decode(cookie.getValue(),"UTF-8");

            if(key.equals("username")){
              session.setAttribute("username",value);
              count++;
            }
            if(key.equals("name")){
              session.setAttribute("name",value);
              count++;
            }
            if(key.equals("role")){
              session.setAttribute("role",value);
              count++;
            }
          }
          if(count == 3){
            response.sendRedirect("index.jsp");
          }
        }   
    }
    
    .......
    
}


JSP:HTML页面+Java代码

本质:Servlet

login.jsp -> login_jsp.java

标签:对象,setAttribute,private,理解,JSP,value,key,底层
From: https://blog.csdn.net/weixin_45621552/article/details/139702039

相关文章

  • 认识与学习JSP
    JSP核心技术什么是JSPJSP全称是JavaServerPages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实际上就是ServletJSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页......
  • 基于JSP技术的定西扶贫惠农推介系统
    开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。开发语言:JSP数据库:MySQL技术:B/S架构、JSP技术工具:Eclipse、MySQL、Tomcat系统展示首页管理员功能模块用户管理界面在线捐赠管理摘要扶贫工作是党中央、国务院的重要战略部署,对于推......
  • 【仿真建模-anylogic】Statechart原理解析
    Author:赵志乾Date:2024-06-15Declaration:AllRightReserved!!!1.类图2.原理解析2.1核心函数      Statechart的核心函数如下:函数功能Statechart(Agentowner,shortmaxat)构造函数,入参指定状态图owner以及允许的最大激活Transition个数voidstart()启动函......
  • 理解 Solidity 中的修饰器(Modifiers)
    在智能合约开发中,代码的可读性和安全性至关重要。Solidity作为以太坊上最常用的编程语言,为开发者提供了一种强大的工具——修饰器(modifiers)。修饰器可以在函数调用前后执行特定的代码,简化逻辑并增强合约的安全性。本文将深入探讨修饰器的概念、定义及其在实际开发中的应用。什么......
  • 基于java jsp ssm的基于JavaEE的服饰服装销售商城网站的设计与实现(源码+LW+部署讲解)
    前言......
  • 基于java jsp ssm的基于Java Web的智慧社区信息平台的设计与实现(源码+LW+部署讲解)
    前言......
  • Pandas中dropna()函数理解
    今天在使用dropna函时候,感觉有点混乱,不明白为什么为何下面两个代码,how和参数选择all和选择any都是同样的结果。当时想的是对A列进行删除,如果A列全部是Na那么选择All才会生效。 实际原理如下:1:axis=0为按照行删除,axis=1为按照列删除。2:如果不设置subset参数,则默认在所有行/......
  • 数据库之理解SQL
    初识SQL结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库管理系统(RelationalDatabaseManagementSystem:RDBMS)的语言,和我们所熟悉的Java、php、python等程序语言一样,也是......
  • 深入理解 Spring 事务的钩子函数
    目录引言Spring事务概述2.1事务的基本概念2.2Spring事务管理简介事务钩子函数简介3.1什么是事务钩子函数3.2事务钩子函数的作用Spring事务钩子函数的实现4.1PlatformTransactionManager接口4.2TransactionSynchronization接口4.3TransactionSynchronizati......
  • Docker的通俗理解和通过宿主机端口访问Redis容器的实例
    前言本文解决的问题:入门docker理解镜像与容器、宿主机的概念理解Docker的常用指令创建redis容器,并通过宿主机端口访问默认读者的知识背景:使用过git初次使用Docker本文不会对Docker的定义作出解释,不会涉及Docker的实现原理,旨在帮助读者快速入门docker,理解......