JSP基础

JSP基础教程 1、JSP简介 JSP(全称JavaServer Pages),sun公司主导的一种动态网页技术,JSP在服务端运行,可以响应客户端的请求,根据请求内容动态的生成HTML、XML或其他格式文档的Web网页然后返回请求者。在JSP页面可以嵌入Java代码,JSP文件在运行时会被其编译器转换成更原始的Servlet代码,然后再由Java编译器来编译成能快速执行的二进制机器码。 2、JSP的一些特点 ①能以模板化的方式简单、高效地添加动态网页内容。 ②可利用JavaBean和标签库技术复用常用的功能代码。 ③有良 阅读详情

1、JSP概述

1、介绍jsp发展.

  1. JSP MODEL1 : 在jsp中做所有事情. 业务处理, 页面显示。在这种模式下,jsp中代码量相当大,而且它不仅负 责显示页面,而且处理业务,无论修改哪里,都特别复杂麻烦
  2. JSP MODEL1 2代: 在jsp中做所有事情. 把业务逻辑抽取到javaBean中. 页面负责调用业务方法.(但是,这种方式不适合MVC的思想)
  3. JSP MODEL2 : servlet处理逻辑.jsp负责显示结果。(jsp只负责显示,把java代码放在servlet中)

2、JSP的本质

JSP本质就是Servlet。JSP(Java Server Pages)java服务器页面。它的根本是简化Servlet。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

JSP产生原因:
由于在Servlet中输出HTML语句非常麻烦,修改不方便。JPS能够大大简化和方便了网页的设计和修改。

JSP的运行:
访问jsp——>生成.java文件——>生成.class文件
因此可以从java文件中去了解jsp的实质

jsp的脚本

    <% %>  出现在jsp对应service方法中
    <%! %> 出现在jsp对应的类中
    <%= %> 出现在service方法中,会使用out.print方法包裹.

JSP中的注释

 <%--  --%> 被注释掉的内容不会出现在java文件中.
 <!-- --> 浏览器端注释.

2、JSP代码分析

既然运行jsp最终产生java文件,那么在java文件中就可以看出jsp实质的问题

这里写图片描述

从org.apache.jasper.runtime.HttpJspBase中可以看出它继承HttpServlet。因此我们说的jsp的本质就是Servlet。

3、JSP三大指令

1、page指令

这里写图片描述
language=”java” 当前jsp使用的是java语言

import=”java.util.” 导包.该属性是可以唯一一个出现多个的属性.

*pageEncoding=”UTF-8” 保存到文件系统的码表

*contentType=”text/html; charset=ISO-8859-1” 告诉浏览器解码的码表 保证这两处码表一致就不会出现乱码.但是,其实不用两个属性都设置. 只设置一处码表,jsp解析时会自动设置另一个.

autoFlush=”true” 当缓冲区装满的时候,是否自动刷新缓冲区 . 如果不自动刷新,那么装满时,还继续装会跑出异常

buffer=”8kb” 设置缓冲区大小,8kb是默认值,并且是合理默认值。 以上两个属性开发时不用管.

errorPage=”/error.jsp” 当当前jsp中出现异常时,将请求转发给错误页面. 并将产生的异常对象传递给下一个jsp.

isErrorPage=”true” 该属性一般放在错误提示页面 , 设置为true那么, 在该页面中就可以使用exception对象来获得异常信息.
上面的errorPage属性在开发中不是很常用,因为该属性只影响当前页面,范围太小.
可以使用下面的配置 统一管理整个项目的错误页面

        <error-page>
                    <!-- 当出现该异常时 跳转到错误页面 -->
                    <exception-type>NullpointExcept</exception-type>
                    <!-- 当出现500错误时 -->
                    <error-code>500</error-code>
                    <!-- 跳转到/jsp/error.jsp页面 -->
                    <location>/jsp/error.jsp</location>
            </error-page>

isThreadSafe=”true” 默认值是false. 如果指定为true那么会以线程安全的方式运行jsp对应的servlet. 具体参照文档.(了解)

session=”true” 决定页面中是否可以直接使用session对象.默认值是true. 不要动该属性.

2、include指令

include指令:包含,包括。是通知jsp编译器把另一个jsp引入到当前文件中,就和复制到当然中一样。和c语言中#include功能相似。这样生成的java文件了合并的,并不是两个java文件,这两个java文件 可以共享。

3、taglib指令

taglib指令表示要引用JSP标签库

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

4、JSP的四大作用域

这里写图片描述

作用域的使用范围

这里写图片描述

5、JSP中的9大内置对象

从jsp源码中看出9大内置对象
这里写图片描述

JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。

这里写图片描述

6、JSP动作标签

JSP提供了动作标签来简化页面代码(尽量减少java代码),另一方面处理业务逻辑
这里写图片描述

7、EL表达式

EL表达式(Expression Language):让Jsp的代码更加简化

在jsp中一般还得使用<% = %>在这个脚本中写java代码,EL表达式可以代替这个脚本

<%=request.getAttribute(“user”) %> 等价于$ { requestScope.user }

这里写图片描述
主要作用:
获取数据:
1、EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2、执行一些简单的运算:${user==null}
3、得对web常用对象的引用
4、调用Java类的方法。

<body>
    <%
        pageContext.setAttribute("a", "111", PageContext.PAGE_SCOPE);

        pageContext.setAttribute("a", "222", PageContext.REQUEST_SCOPE);

        pageContext.setAttribute("a", "333", PageContext.SESSION_SCOPE);

        pageContext.setAttribute("a", "444", PageContext.APPLICATION_SCOPE);
    %>

    page域:${pageScope.a} 代码相当于<%=pageContext.getAttribute("a")%><br />
    request域:${requestScope.a} 代码相当于<%=request.getAttribute("a") %><br />
    session域:${sessionScope.a}  代码相当于<%=session.getAttribute("a") %><br /> 
    application域:${applicationScope.a} 代码相当于<%=application.getAttribute("a")%><br/>

            访问list<br/>
    <% List list =new ArrayList();
       list.add("aaa");
       list.add("bbb");
       pageContext.setAttribute("list", list);
     %>    
     ${pageScope.list[0]}
     ${pageScope.list[1]}

</body>

这里写图片描述

【东华大学oj】找到最大数(一维数组->中等) 一天,老师布置了一个作业,要求对一串数字各不相同的数字串进行排序,大的在前,小的在后。接着,我从数字串中的第二个数字开始往后找,找到最大的一个,然后与第二个数字交换,这样的话我就能够确定排序后数字串中的第二个数字;明明研究发现,他的这个想法中最重要的一环就是在一串数字中找到最大的那个,然后与第一个数字交换,可是明明毕竟刚刚开始学习程序设计不久,无法写出较复杂的程序,所以明明想让你这位程序设计专家帮他的忙,帮助他把这段核心程序写出来,然后明明只需模仿着写就可以了。时间限制: 1S类别: 一维数组->中等。 阅读详情

相关推荐

Apollo MPC横纵向耦合控制学习笔记

Apollo MPC横纵向控制原理学习笔记

weixin_39199083的博客 1万+

pageContext.setAttribute用法

Servlet作用域从小到大是这样排列的,page,request,session,pageContext。 page只是作用于当前请求的页面 request是一次请求,根据HTTP无状态,所以可以知道每一次请求对象是不同的。 session是一次会话,比如有些网站需要登录后才能查看资源,从登录到你关闭浏览器后,这就是一次会话,session是存在服务端的。还有一种情况,有时你在一个网页上长时间没

开发小盆友的博客 1万+

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 514

pagecontext对象

pageContext对象pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageContext对象的人就比较少了。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法。实际上,pageContext对象提供了对JSP页面

2616

90+个各种疾病相关医疗数据集

含新冠、传染病、医学图像等

2万+

MySQL 8.0数据库崩了别慌!手把手教你仅凭一个.ibd文件找回数据(附Go工具包)

本文详细介绍了在MySQL 8.0数据库崩溃后,如何仅凭.ibd文件恢复数据的完整流程。通过使用Go语言工具包和ALTER TABLE技巧,即使没有备份也能实现数据重生。文章包含从环境准备到数据验证的全方位指导,帮助DBA和开发者应对紧急数据恢复场景。

weixin_29235923的博客 419

在idea里jsp文件pageContext.setAttribute报红解决方法

在idea里jsp文件pageContext.setAttribute报红解决方法 在IDEA中的jsp文件写如下代码之后,pageContext和session后面的setAttribute是红的,类外两个正常 问题终于解决了! 出现这个问题的原因是jdk里缺失了java.servlet.jar包 需要到 http://www.docjar.com/ 处下载这个包 在搜索框中输入java.servlet 再在idea中将这个包导入jdk,在Enternal Libraries下的<16&g

weixin_46254970的博客 6814

嵌入式系统开发笔记112:通过有人云测试MQTT

项目中使用到“有人”公司的WH-LTE-7S0模块,本文讲解通过有人云进行MQTT测试的方法。

snmplink的博客 997

Java-Web学习笔记

关于请求数据: 在jsp页面中: pageContext.setAttribute(); //保存的数据只在一个页面中有效 request.setAttribute(); //保存的数据旨在一次请求中有效 session.setAttribute(); //保存的数据只在一次会话中有效 application.setAttribute(); //保存的数据只在服务器中有效 例如: jsp中的部分代码: <% pageContext.setAttri

qq_43876243的博客 277

代谢组数据分析(三):代谢组降维分析

本文详细介绍了代谢组学中常用的降维分析方法,包括PCA、PLS-DA和OPLS-DA。PCA通过线性变换降低数据维度,便于数据可视化和异常值检测;PLS-DA是一种有监督的模式识别方法,适用于分类和预测;OPLS-DA通过正交分解避免过拟合,更准确地筛选差异代谢物。降维分析在揭示样本间差异和发现生物标志物方面具有重要意义

专注生信领域 3790

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现与避碰仿真】MATLAB开源复现

本文提出了一种基于CasADi的欠驱动无人船实时非线性模型预测控制(NMPC)方法,实现了轨迹跟踪与避碰功能。研究采用三自由度USV动力学模型,集成静态与动态障碍物避碰约束,并满足国际海上避碰规则(COLREGS)。通过CasADi+IPOPT数值优化求解,实现了毫秒级实时控制。文章详细介绍了USV建模、NMPC控制器设计、避碰约束建模以及CasADi实现流程,包括核心求解流程和轨迹生成方法。实验结果表明,该方法能有效实现复杂环境下的轨迹跟踪与避碰功能。

vor234的博客 1395

Idea新建Javaweb项目无法继承HttpServlet

Idea新建Javaweb项目无法继承HttpServlet

林炫的博客 5739

Unity之Hololens2开发MRTK Profile详解

配置 MRTK 的主要方式之一是使用基础包中的配置文件。场景中的主要对象具有活动配置文件 - 一个 ScriptableObject。顶级 MRTK 配置配置文件包含主核心系统的每个核心的子配置文件数据,每个主核心系统都旨在配置其相应子系统的行为。此外,这些子配置文件也是 ScriptableObjects,因此可以包含对低它们一级的其他配置文件对象的引用。实质上,有一个包含已连接配置文件的完整树,这些配置文件构成了如何初始化 MRTK 子系统和功能的配置信息。

TxNet 1034

JSP基础语法

注:本文点进链接中例子的JSP文件都在项目目录下(即WEB-INF上级目录下,与WEB-INF同一级) 运行原理及本质 1.用户在浏览器地址栏上输入http://localhost:8080/jspDemo/index.jsp,web服务器判断用户请求的资源是jspDemo应用中的index.jsp页面,web服务器在jspDemo应用中找到index.jsp,启动JSP翻译引擎,将index....

乘风晓栈的博客 547

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JSP基础语法及使用

JSP实际上就是一个Servlet。jsp文件第一次访问的时候是比较慢的,为什么?JSP是什么?JSP既然本质上是一个Servlet,那么JSP和Servlet到底有什么区别呢?JSP的基础语法在jsp文件中直接编写文字,都会自动被翻译到哪里?JSP的page指令,解决响应时的中文乱码问题:怎么在JSP中编写Java程序:JSP的输出语句在JSP中如何编写JSP的专业注释JSP基础语法总结:使用Servlet + JSP完成oa项目的改造。Servlet中连接数据库,查询所有的部门,遍历结果集。在JSP..

weixin_48826996的博客 1626

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JSP 基础知识

JSP基础学习笔记 JSP基础学习笔记JSP基础学习笔记简介1.JspC/S 与 B/STomcat端口占用JSP 基本语法jsp 脚本 简介 Jsp与Servlet(学习QQ群:330737900) JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。JSP 技

菜鸟心声:学的不仅是技术,更是梦想! 4164

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JSP 基础语法

  jsp 是动态网页技术,从代码角度来讲,就是在 HTML 基础上加了一些 Java 的代码。其中 Java 代码是用 <%和%>括起来。   jsp 执行过程:首先,Java 端将 jsp 文件解析成对应的 Servlet 类文件,然后将类文件编译为 .class 文件,当 .class 文件运行过程中,会输入 jsp 文件对应的 html 文件 jsp 基础语法 1. 输出语句 <body> <div>java code</div> <%

柚咖小窝 921

jsp基础

JSP全称是Java Server Page,它和Servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。它是JSP独有的对象,Servlet中没有这个对象。本身也是一个域(作用范围)对象,但是它可以操作其他3个域对象中的属性。而且还可以获取其他8个隐式对象。

qq_64011014的博客 1115

JSP——认识JSP基础

认识JSP 1、      JSP脚本片段 在Jsp中java代码需要嵌套在脚本片段】%>中,没有嵌套的内容称之为Jsp的模板元素。 脚本片段可以相互访问;可以是不完整的,但多个片段必须组合成完整的java语句 可以有模板元素      相当于{}中是模板元素的内容 2、      JSP脚本表达式 可以直接将程序数据输出到客户端。 JSP脚本表达

happywhite 542

JavaWeb基础—JSP

关于JSP的一些基本知识和应用

hanpiyo的博客 617
上一篇: Request和Response
下一篇: MySql(一入门)
android_xiaogang
博客等级 码龄12年 89粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值