JavaEE总结(6)——JSP

JSP

什么是JSP(JSP就是Servlet)

java service page :java服务(动态)网页

JSP就是Java中用来做动态网页的技术

Servlet : JAVA代码(主) + HTML代码

JSP     : JAVA代码 + HTML代码(主)

以后我们会慢慢的达到一个目标:servlet里面不要写HTML代码,jsp里面不要写java

JAVA就是Servlet

JSP的语法

注释:

<!-- 我是一个HTML的注释  -->

<%-- 我是一个JSP的注释 --%>

HTML的注释用户可以查看到(将注释直接打印在页面)

JSP注释用户看不到(在JSP翻译成Servlet的时候注释就已经没有了)

语法:<%=表达式%>

作用:输出数据到页面上(实际上就是调用输出流打印到页面上) out.print(表达式);

语法: <% 这里面写代码 %>

作用:它会翻译到service方法里面

语法:<%!Java代码 %>

作用:它会把代码翻译到这个Servlet类里面

JSP三大指令(考点)

<%@ 指令名称 key="value" key="value" ... >

Page : 页面指令

Include : 包含指令

-------------------------------

Taglib:标签指令

 

Page :页面指令

language:语言(这个页面所使用是什么语言)

contentType:设置页面输出的类型(里面还可以把编码写进去)

pageEncoding:页面编码(备胎)

当contentType没有编码的时候,就使用pageEncoding的编码

import :相当于导包

errorPage="/myerror.jsp" :如果当前页面出错,就跳转到对应的页面

isErrorPage="true" :这个页面是否是错误页面(当我们要在页面上直接使用exception的时候就可以加上它)

出错之后跳转到某个页面(这个我们以后会用到):

web.xml中去配置错误信息

<error-page>

<error-code>404</error-code>

<location>/myerror.jsp</location>

</error-page>

Include :包含指令

特点:将整个页面的所有内容全部拷贝到一个文件中

问题:拷贝的内容中是包含有网页的结构

包含的文件中,可以不写结构

动态包含:jsp中的动作<jsp:include>

<jsp:include>

特点:

不会将包含的内容拷贝到一个文件

而且会将包含的内容单独进行编译生成

内省

获取某个对象中存在的方法、属性等信息

introspecter

JavaBean:从GUI编程中来的概念

web开发中不同的技术,JAVABean标准是不一样的

POJO:

1.可序列化

2.公共无参的构造

3.get/set

 

A类继承了B类继承Object

getBeanInfo(A.class):可以获取到继承的父对象中可以被继承的属性、方法

getBeanInfo(A.class,Object.class)

 

属性:其实就是类中声明的字段,而且必须有get/set方法

 

BeanInfo对象中可以获取到方法的信息、属性的信息

getMethodDescriptors,返回一个MethodDescriptors[]

getMethod

getPropertyDescriptors

getReadMethod:获取get方法

getWriteMethod:获取set方法

 

A类去调用A中的方法

A a=new A()

a.方法();

B类中调用B中的方法:

B b=new B();

b.方法();

 

反射就可以把步骤抽取出来:

1.获取字节码对象

2.创建对象

3.获取方法对象

4.调用方法

 

public Object executeMethod(Class<T> t,String methodName){

1.获取字节码对象

2.创建对象

3.获取方法对象

4.调用方法

}

 

get方法有返回值而且是无参

set方法无返回值而且是有参

EL表达式+JSTL标签

EL表达式:<%=  %>数据来源主要是从域对象中来

EL语法:

${ 数据名称 }:如果获取pageContext中的数据

问题:不同域对象中存在相同的数据名称

${ 数据名称 }:pageContext>request>session>application【servletContext】

${ 域对象Scope.数据名称 }

问题:数据名称中有.怎么获取?

JSTL标签

第三方开源的标签库

导包 jstl.jar&standar.jar

1.页面先引入jstl的引用

 

<c:if test="条件">相当于后台中if(条件)

可以在标签之间嵌套,还可以在标签内嵌套

 

<c:choose> 相当于if-else、switch

<c:foreach>遍历,根据属性不一样确定遍历的方式不一样

for(int i=0;i<5;i++)

i:当前循环的变量

<c:foreach var="i" begin=""  end="" >相当于<=

 

遍历list:

foreach(类型  变量: list)

<c:foreach var="i" items="" varStatus="a"  >items属性中就相当于你的数据源

JS语法

JS的基本入门语法【按照JAVA语法】

      • JS的目的:针对网页中的标签进行一个CRUD的操作
      • JS的三种写法【CSS的三种写法】
        1. 行内JS:写在标签内的JS代码
          1. 前端页面中单引号、双引号都是字符串
          2. javascript:alert(数据)
            1. javascript:伪协议
          3. 特点:行内JS太麻烦,如果有相同效果的JS,不能实现代码覆写

页面内JS

          1. 页面内定义一个<script>标签
          2. 在<script>标签内写JS代码
          3. 页面内的JS代码的执行顺序:从上往下【重点】
            1. 找不到HTML标签
          4. 特点:在当前页面内的相同JS代码效果是可以重用

外部JS【多个页面重用】

          1. 定义一个外部的JS文件
          2. 将外部JS文件和当前页面关联
            1. <script type="text/javascript" src="js文件的路径"/>
          3. 特点:在不同的页面中,可以使用相同的JS代码

定义变量

        1. 声明变量的类型只有一个:var【弱类型】
        2. 强类型和弱类型的区别?
          1. 强类型:就是在变量声明的时候就已经知道变量的类型
          2. 弱类型:弱类型变量的类型是靠值决定
      1. 方法的定义
        1. function 方法名(参数列表){ JS代码 }
          1. 不是靠参数去区别
          2. 方法调用找的是最后一个

JS中对象

      • 自定义对象
        1. 定义对象使用的是fucntion关键字
          1. 构造:new 方法名()
          2. 方法:方法名()
          3. 对象:方法名
        2. 临时给一个创建的对象添加方法
          1. new一个对象
          2. 使用创建的对象关联一个匿名函数
        3. 永久性的添加一个方法给对象
          1. 定义对象的时候使用this
            1. 关联关系需要在function中就已经定义好了

 

内置对象【本地对象】

        1. Array【数组/当作JAVA中的集合使用】
          1. 声明
            1. var 变量名=[元素,元素2];
          2. 将数组转换成字符串
            1. join()
              1. 默认是逗号
              2. 不要逗号,就自定义一个参数
          3. 将数组元素反转
            1. reverse
          4. 针对数组的添加、删除、修改
              1. shift删除
              2. unshift添加一个或多个
              1. pop:删除
              2. push:添加
            1. 任意位置
              1. splice(下标,个数,添加元素【可选】)

global【全局】

  1. 编码、解码
    1. parseInt:将数据转换成整数【一开始就转换不了就NAN】
    2. eval:将字符串作为JS代码去执行
    3. encodeURI/decodeURI
    4. encodeURIComponent/decodeURIComponent【可以将符号转换】

Math【数学运算:随机数】

  1. ceil:向上取整,可以用于分页
    1. 随机数:取整(随机数*取值范围)+初始值

String

  1. 分割字符串
    1. 转换大小写
      1. toLowerCase
      2. toUpperCase截取字符串
        1. substr(下标,长度)
        2. substring(起始下标,结束下标)
    2. split
  2. 获取ASCII/将ASCII转换成字符
    1. charCodeAt:获取字母的ASCII
    2. fromCharCode:将ASCII转换成字符
    3. Boolean
    4. Number【数字类型】
      1. NAN:非数,自身不相等
        1. isNaN:是否是非数
      2. Infinaty:无穷
        1. isFinate:判断数据是否有限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值