码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • jsp学习笔记


    jsp学习笔记

    • jsp文件执行过程
    • jsp中的java代码片段
        • jsp中的java语句块<% %>
        • jsp中的声明语句块<%! %>
        • jsp中的表达式块<%= %>
    • jsp中的四大域对象
        • page
        • session
        • request
        • application
    • jsp中的九大内置对象
        • pageContext对象
        • out对象
        • application对象
        • page对象
        • exception对象
        • 其他内置对象
    • jsp中的指令
      • page指令
        • pageEncoding属性
        • contextType属性
        • import属性
        • errorPage属性
        • isErrorPage属性
      • include指令
    • 动作指令
        • forward
        • include
    • 静态联编和动态联编的使用
    • 路径问题
        • 前台路径
        • 后台路径

    jsp文件执行过程

    jsp文件会首先被Servlet翻译成一个**.java文件,然后被编译成一个.class**文件

    jsp中的java代码片段

    包括:

    • java代码块
    • 声明语句块
    • 表达式块

    jsp中的java语句块<% %>

    jsp中的所有的语句块最终都会jsp翻译引擎被翻译到一个serivers方法中
    在一个java的方法中,声明的变量前不能加权限控制符,不能有另一个方法在里边嵌套,不能有静态语句块,这些都是类中才能出现的东西
    所以在jsp的语句块中,也不能出现这三者

    jsp中的声明语句块<%! %>

    jsp中的声明语句块最终会被翻译到Servlet类中,作为类中的成员变量、成员方法和静态代码块,service方法也是该类的方法,所以可以访问到声明中的变量,声明中的变量也可以加权限控制符
    但是,由于Servlet是单例多线程的,所以在类里边声明可修改的成员变量会造成线程安全问题

    jsp中的表达式块<%= %>

    作用是将表达式中的内容显示到客户端,是一个表达式而不是语句,所以不能加“ ; ”

    jsp中的四大域对象

    page

    session

    request

    application

    jsp中的九大内置对象

    不用定义就可以使用

    pageContext对象

    可以通过此对象的方法来获取其他八大内置对象

    out对象

    标准输出流,可以将信息输出到客户端界面上,输出格式为:out.writer(内容);

    application对象

    page对象

    exception对象

    其他内置对象

    jsp中的指令

    使用方法:
    <%@ 指令名称 属性名=属性值 属性名=属性值 ·········% >

    page指令

    pageEncoding属性

    指定字符编码集,默认相应文本为html,用法:
    <%@ page pageEnconding=“utf-8”%>

    contextType属性

    指定字符编码集,指定相应文本,用法:
    <%@ page contextType="text/html ; charset=utf-8 "%>

    import属性

    导入需要的包,多个包可以写多个page指令,也可以多个包用逗号隔开写在一个page中

    errorPage属性

    当页面发生错误时,跳转到指定页面,但是不糊显示错误信息

    isErrorPage属性

    在当前页面指定isErrorPage=“true”(默认为false),表示当前页面是一个错误处理页面,在语句块里用<%=exception.getMassage()%>可以输出错误信息

    include指令

    实现静态联编,生成一个.java文件
    在使用include指令的部分,将该指令所包含的文件复制到使用该指令的位置,特别注意文件所在的位置与指令所在的位置相同。由此可知,两个文件可以共享变量,如果两个文件定义同名变量会报错
    用途:对于一个包含许多页面或站点的网站,分为头部、底部、左侧边栏、右侧边栏等部分,可以使用include指令将各部分用到的的相同的文件包含进去,减少了工作量,使修改和维护变得容易

    动作指令


    或

    forward

    在标准输出流开启之前,forward页面的发起者不能开启标准输出流,本页面不能向标准输出流中输入数据

    include

    在标准输出流开启之后,include页面的发起者能开启标准输出流,本页面能向标准输出流中输入数据,
    实现动态联编,生成两个.java文件

    静态联编和动态联编的使用

    在静态联编和动态联编均可以使用时,一般使用静态联编,因为在运行时只存在一个Servlet,对资源消耗较少,且不存在调用问题,执行效率较高

    • 若在两个文件需要共享同一变量,此时只能使用静态联编
    • 若在两个文件存在同名变量,且不能混淆,此时只能使用动态联编

    路径问题

    前台路径

    出现在HTML页面、jsp页面的静态部分,路径前不加“/”

    后台路径

    出现在jsp页面动态部分、java代码、xml配置文件中,路径前加“/”

  • 相关阅读:
    TypeScript常用知识点及其最佳实践总结
    POM文件详解
    未来无界 | 「DaoCloud 道客」联合轻流发布企业级云原生无代码解决方案
    pycharm 控制台中文乱码处理
    DataFrame创建介绍_大数据培训
    el-table通过这样封装可以实现校验-表格校验的原理
    PTA题目 阅览室
    【JavaScript】聊聊js中关于this的指向
    从零开始搭建react基础开发环境(基于webpack5)
    PCL 点云库的安装和使用(win系统)
  • 原文地址:https://blog.csdn.net/Chen_Sir____/article/details/105610778
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号