Java知识总结-6

jsp知识点
标记: Java server page

基本特性

declaration 声明

expression 表达式

directives 指令

scriptlet 小程序段

comment 注释

action 动作指令

! 运行方式 先编译为 .java 文件 再转换为 servlet编译文件运行 (.class)

1.只有客户端在第一次请求jsp时,才需要对其转换 编译

优点

优良的性能 (忧于CGI php ASP)

平台无关性 (只要符合j2ee规范就可在该平台运行)

可扩展性强 (tga扩展,简化开发)

补充知识

反射时类里必须有无参构造函数 不然容易报错

操作部分

指令 <%@ %>

include 指令

file =“路径”

导入文件命令 将指定的jsp程序或HTML文件包含在当前页面

<%@ include file ="/a.jsp"%>

可以导入另一个jsp文件 应用于网站的头部等网页的公共部分

page 指令

import =“包名.类名” 引入的包和类

可以导入多个包 中间用逗号分开

extends =“包名.类名” 继承的类

buffer=“none/kb size” 不缓冲 或 指定缓冲大小 (默认8kb)

autoFlush="true/false" 是否自动清除缓冲

info =“描述” jsp文件的描述信息

isErrorPage=“true/false” 当前页面是否发生错误

errorPage="url" 如果页面错误,显示的页面

contentType="contenTypeInfo" 页面的属性信息

<% @page session=“true”%>(默认)--表示session功能已经在jsp页面中启动

pageEncoding="gb23123" 设置编码格式

taglib 指令

导入指令标签

<%@ taglib prefix="c" uri="选择"%>

“c” 为别名 (jsp指令在用的时候标记名) “选择”是由快捷键生成 一般为 http://java.sun.com/jsp/jstl/core 该标签库为标准标签库 可以实现判断 循环 等操作

可以使用taglib标签导入jsp其他标签,实现一些特殊功能

<c:if test="" var="" scope=""> 标签体
</c:if> test属性值为true时,执行标签体的内容(可以是html,java代码)。
test属性:使用el表达式来赋值。
var属性:指定一个绑订名称
scope属性:指定一个绑订范围(page,request,session,application)。
<c:choose>,<c:when>,<c:otherwise>
when表示一个分支,可以出现多次;
otherwise表示例外,只能出现一次;
test属性值为true时,执行标签体的内容(可以是html,java代码)。
<c:forEach var="" items="" varStatus="">
</c:forEach>遍历集合 items属性:指定要遍历的集合,一般使用
el表达式来指定。
var属性:指定绑订名称,绑订范围是pageContext。
varStatus属性:指定绑订名称,该绑订名称对应了一个特殊的对象,该对象封装了当前遍历的状态。

动作 <jsp: 动作名 属性=“值” />

forward 动作

<jsp: forward page="a.jsp"/>

跳转到别的页面 用于将一个jsp的内容传送到page所指定的JSP程序或者Servlet中处理(URL)

useBean 动作

<jsp:useBean id="bj" class="包名.类名"/>

使用Javabean类 ID为别名

<jsp:setProperty property="a" name="b" value="c"/> a 类的属性名 b javaBean的名字 (bj) c 属性值

为使用的Javabean设置属性值

<jsp:getProperty property="a" name="bj"> a 属性的名字 bj 使用的Javabean的别名

得到Javabean属性值

<jsp:param value="apple" name="key"/> jsp页面传参用到的 name="key" 相当于key值 value="apple" 相当value值

include 动作

<jsp: include page="a..jsp" />

动态组合两个页面

注释

<!-- --> 该注释客户端可以在源码中看到

<%-- --%> 该注释客户端在源码中看不到

表达式 <%= Java属性/变量 %>

可以引用Java代码中的值

Java脚本 <% Java代码 %>

可以执行Java代码(预Java保持一致 注意导包)

声明 <%! 方法 %>

理论部分

命令的include 和动作的include (合并页面)的区别
标记: 蓝色

静态导入

1.用<[email protected] include file="a.jsp" /> 指令

2. 把b页面的内容复制到a页面,然后编译为Java文件 ,在转换为 .class 文件 ,放到work目录中去

3.产生文件 a.java a.class

动态导入

1.用<jsp:include page="b.jsp" /> 动作

2.独立编译 由服务器在访问时动态组合为一个页面

3.产生文件 a.java a.class b.java b.class

jsp 九大内置对象(可以直接调用方法)

pageContext jsp中特有的对象 (jsp上下文对象,作用于当前页面)

request 同servlet中的request 对象 来源于httpservletrequest

session 来源servlet中的httpsession

application 来源 servletcontext

response 来源 httpservletresponse

out 来源 servlet中的printwriter

page jsp编译后生成的servlet对象

config servletconfig 获得servlet配置参数

exception throwble 页面的异常类

标签的运行过程

标签的运行过程:
容器依据命名空间找到标签的描述文件(.tld文件),
依据标签的名称找到标签类,接下来创建标签类的实例,执行对应的方法。

web 存储状态 ----参考html 补充知识总结

EL 表达式 (expression language)

从所有作用域取出值的一个简单方法

基本语法 ${值}

${key} 代表从四大作用域中查找有没有“key”

${sessionScope.key} 代表从session中查找有没有“key”

同样还有 pageScope requestScope sessionScope applicationScope

可以对运算符进行运算 如 ${10+2*8}

${user.name} 代表从Java类user中取出name的值

el表达式不能循环

cookie 浏览器小文本信息

服务端写入cookie信息

在servlet中一个cookie对象只能存贮一个字符串信息 如果要存多个 则需要多个cookie

*response的addCookie方法 得到cookie对象

-- 最后把cookie发送到浏览器去,浏览器自动写到客户端相应位置

cookie 服务器写到客户端的小文本信息(文本的map集合) 多用于登录时记录用户名 密码 等信息 实现自动登录功能 信息不安全

jsp取出cookie中的值

%java脚本%>
Cookie[] cs=request.getCookies() 得到cookies对象数组
foreach循环 调用getName/getValue方法 得到key和value 把文本输入框默认设置为刚才得到的值
标记: 实现自动填写账号的功能

时间: 2024-07-28 12:29:51

Java知识总结-6的相关文章

java 知识收集

1,若方法传入的对象参数为空,则在方法中改变参数并不会改变声明的对象 public void setList(List<String> list){ list = new ArrayList<String>() ; } @Test public void t4(){ List<String> list = null ; setList(list); System.out.println(list );//输出 null } 2,不要再foreach遍历的时候删除 jav

java知识查漏补缺

一.重写(override)和重载(overload)的区别 二者除了名字相似,其实没什么联系 范围不同:重写发生在同一个类的不同方法之间.重载发生在父类和子类自荐. 前提: 重写要求:方法名相同,参数列表不同,对于返回值类型不要求相同. 重载要求:方法名形同,参数列表也相同.重载是实现多态的关键,注意如果父类中的方法是private类型,那么子类中对应方法不算重载,而相当于是定义了一个新方法. 二.final的用法 修饰类:该类不能被继承 修饰方法:该方法不能被重写 修饰属性:该属性初始化后不

Java知识简介与环境变量配置问题

一.在学习一门语言中,不仅需要掌握其语法结构,开发平台以及环境也是很重要的.在开始Java学习之前首先对其进行压缩包的下载安装,以及开发平台环境下载安装.基于此下面文章就此展开: 1.        下载并安装JDK包,然后进行快速正确安装操作.(具体安装步骤网上很多,不在赘述.) 2.        安装成功后,需要对其进行环境变量配置,这一点有点特别,特别针对C语言.C#语言开发的同学更应该注意. 环境变量配置步骤如下: 打开:计算机属性->高级->环境变量选项卡->系统变量->

java在线聊天项目 实现基本聊天功能后补充的其他功能详细需求分析 及所需要掌握的Java知识基础

补充聊天项目功能,做如下需求分析: 梳理项目开发所需的必要Java知识基础 GUI将使用更快速的swt实现 SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的. 在SWT之前,Sun已经提供了一个跨平台GUI开发工具包就是AWT (Abstract Windowing Toolkit). swt开发包下载地址 链接: https:/

Java知识图谱(附:阿里Java学习计划)

摘要:     本文主要描绘了Java基础学习过程,给出Java知识结构图,以及阿里Java岗学习计划,对Java学习爱好者.准备及将要从事Java开发方面的同学大有裨益. 温馨提示:     由于CSDN对图片的压缩,导致图片观看效果不理想,建议大家通过右键"在新标签页打开图片"进行观看或直接把图片下载下来观看. JVM 1. 内存模型( 内存分为几部分? 堆溢出.栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类?区别是什么

Java知识回顾 (11) 异常处理

距离最近的 Java知识回顾系列(10),2019.4.24日,到现在,已经近半年过去了. 感觉,做一件事情,如果有头无尾,实在不好,心里会一直悬着.所以,现在继续上面的内容. 再次声明,正如(1)中所描述的,本资料来自于runoob,略有修改. 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error. 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据. 要打开的文

Java知识树梳理

Java知识树梳理 1.前端 HTML CSS JavaScript 2.后台 Java基础 算法 web方面 分布式.中间件.服务器等方面 大数据方面 3.数据库 原文地址:https://www.cnblogs.com/Lonnn/p/11727752.html

16.10.17学到的Java知识

1. 例:3-2.6==0.4的值是什么?可能乍一看,感觉是返回TRUE,因为3-2.6=0.4,0.4==0.4:所以返回TRUE. 然而,上面分析在JAVA中是错的. 由于浮点数的运算在JAVA中是不精确的,所以可以看出3-2.6=0.39999999999999:所以很明显3-2.6==0.4返回false. 问题来了,浮点数为什么在JAVA中运算不精确呢? 初步了解,与浮点数在计算机中的表示有关. (使用BigDecimal,一个参数是String类型,一个参数是Double类型的区别)

你应该更新的Java知识之常用程序库【转载】

在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进.如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西. Guava Guava[gwɑ:v?],一句话,只要你做Java项目,就应该用Guava. guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该是 JDK 的一部分.作为一个 Java 程序员,如果你没抱怨过JDK的设计,只能说明一点,你写得程序还是太少.正是JDK

16.10.18学到的Java知识

1. 突然间发现自己忘了关于自增自减运算符放在变量前后的区别是什么了? 于是乎,我查了资料. 如果只对自变量进行加1或减1的时候,放在前面和后面都是没有区别的. 但是,如果自增自减运算符使用在需要赋值给其他变量或与其他表达式进行计算时,那么就要注意了,因为这个时候自增自减运算符放在前面和后面就是有区别的了. 从图中可以很明显的看见,当进行赋值运算时,当运算符放在变量之后,是先取变量,然后在对变量进行加一或者减一的操作:当运算符放在变量之前的时候,是先对变量进行加一减一的操作,然后再取变量的值.