Jsp详细

 

九大内置对象

Out jsp的输出流,用来向客户端响应

page 当前jsp对象!他的引用类型是object,即真身中有如下代码:object page=this;

Session httpsession

request     httprequest

response httpsponse

Exception Throwable

application servletcontext

config servletconfig

pagecontext 一个顶九个

 

 

pagecontext

一个顶九个

Servlet中有三大域。Jsp有四大域

1servletContext 整个应用程序

2Session:整个会话(一个会话只有一个用户)

3request一个请求连

4pageContext 一个jsp页面,这个域是在jsp页面和当前jsp页面中使用的标签中共享数据

域对象 可以代理其他域!

 

 

 

Jsp三大指令

一个jsp页面可以配置多个指令。

 

1.Page

%@page language="java" info="xxx"....%

pageEncoding:指定当前页面的编码,在服务器把jsp编译成.java时需要使用pageEncoding

ContentType:它表示一个响应头,Content—type!等同于response.setContentType("text/html;charset=utf-8    ");

Import 导包,可以出现多次

ErrorPage和iserrorpage

如果当前页面抛出异常,那么要转发到一个页面,有errorpage来指定。

Iserrorpage 表示当前页面是否为处理页面!当属性为true时这个页面会设置状态码为500,而且这个页面可以使用九大内置对象的exception。

 

AutoFlush指定jsp的输出流缓冲区满时,是否自动刷新,默认为true,如果为false,那么缓冲区满时抛出异常。

Buffer 指定缓冲区大小,默认为8kb,通常不需要修改。

IsELIgnored 是否忽略el表达式,默认为false,不忽略,即支持!、

 

 

2Include—》静态包含 在运行8之前就已经包含了。

与requestDispatcher的include()方法功能类似

<%@include%> 她在jsp编译成Java文件时完成,共同生成一个Java,然后生成class文件

两个页面的内容不能有相同的标签。被包含的页面路径不能为变量,因为是在编译的时候就要合并页面了,而变量是在运行时才有值。

RequestDispatcher的include()方法,包含和被包含的是两个servlet,及两个.class他只是在响应的时候将包含的内容包含在一块了。

作用:把页面分解了,适用包含的方式组合在一起,这样一个页面中不变的部分,就是一个独立的jsp,而我们只需处理变化的页面。

 

3Taglib—导入标签库

两个属性:

Prefix:指定标签库在本页面的前缀!由是我们自己来起名字

Uri:指定标签库的位置。

 

 

Jsp的动作标签

这些jsp的动作标签,与html提供的标签有本质的区别。

动作标签是由tomcat(服务器)来解释执行!它和Java代码一样,都是在服务器端执行。

Html有浏览器执行

<jsp:forward>:转发 他与requestDispatcher的forward方法一样的,一个是在servlet中使用,一个是在jsp中使用!

<jsp:include>:包含 它与requestDispatcher的include方法一样的,一个是在servlet中使用,一个是在jsp中使用!

<%@include%>静态包含 代码编译到一块和<jsp:include>动态包含 各编译各自的代码

<jsp:param>

 

 

Java bean

    @Test

    public
void fun1() throws Exception{

        String className="com.pcx.domain.Person";

        Class clazz=Class.forName(className);

        Object bean=clazz.newInstance();

        

        BeanUtils.setProperty(bean, "name","张三");

        BeanUtils.setProperty(bean, "age","21");

        BeanUtils.setProperty(bean, "gander","男");

        //拿到其中的属性

        String age=BeanUtils.getProperty(bean, "age");

        System.out.println("年龄为:"+age);

        

        System.out.println(bean);

    }

    

    /**

     * 将一个map中的值封装成一个user对象

     */

    @Test

    public
void fun2() throws Exception{

        Map<String, String>map=new HashMap<String, String>();

        map.put("username", "张三");

        map.put("password", "123");

        User u=new User();

        BeanUtils.populate(u, map);

        System.out.println(u);

    }

    
 

    

    /**

     * 测试传智给的jar包

     */

    @Test

    public
void
fun3(){

        Map<String, String>map=new HashMap<String, String>();

        map.put("username", "张三");

        map.put("password", "123");

        User user=CommonUtils.toBean(map, User.class);

        System.out.println(user);

        

    }

 

El表达式

Jsp内置的表达式语言。

全域查找 ${}

指定区域

${pageScope.xxx}

${requestScope.xxx}

${sessionScope.xxx}

${applicationScope.xxx}

 

El代替的是<%=…%>也就是说el只能做输出!

El表达式可以操作四大域。

如果不存在,则输出空字符串。

而不是null

<body>

 

<%

Adress adress=new Adress();

adress.setCity("济南");

adress.setStreet("长青");

 

Employee emp=new Employee();

emp.setName("李四");

emp.setSalary(124354);

emp.setAdress(adress);

 

request.setAttribute("emp", emp);

%>

el获取request域中的emp属性
<br>

${requestScope.emp.adress.street }

</body>

 

El十一大内置对象

Page Request Session application

11个内置对象 10个是map pagecontext不是map 他就是pageContext 一个顶10个

Param

一个参数${param.username }

访问:/1.jsp?username=123

 

多个参数

${paramValues.hobby[0] }

${paramValues.hobby[1] }

 

访问:1.jsp?hobby=c1&hobby=sj

 

${header['User-Agent'] }

效果: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36

 

 

初始化参数

${initParam.xxx}

 

<context-param>

<param-name>xxx</param-name>

<param-value>XXX</param-value>

</context-param>

<context-param>

<param-name>yyy</param-name>

<param-value>YYY</param-value>

</context-param>

 

拿到cookie对象

${cookie.JSESSIONID }

拿到cookie的值

${cookie.JSESSIONID.value
}

 

 

PageContext

${pageContext.request.contextPath}

 

El函数库(由jstl提供)

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

自定义函数库

写一个类 有静态方法。

写一个在web-inf目录下创建一个tld配置文件

在jsp页面中就可以用了

 

重温jsp③的更多相关文章

  1. 重温JSP学习笔记--与日期数字格式化有关的jstl标签库

    上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...

  2. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  3. 重温JSP学习笔记--El函数库

    EL函数库(由JSTL提供的) * 导入标签库:<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/f ...

  4. 重温JSP学习笔记--El表达式

    el表达式是jsp内置的表达式语言,jsp从jsp2.0开始,就不再提倡使用java脚本,而是用el表达式和动态标签来替代,而el表达式主要替代的是jsp中的<%=....%>,也就是说e ...

  5. 重温JSP学习笔记--JSP动作标签

    上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写 ...

  6. 重温JSP学习笔记--三大指令九大内置对象

    最近在温习javaweb的相关基础知识,鉴于我弄丢了记满了整整一本的笔记,决定以后把笔记和一些学习上的心得以及碰到的一些问题统统都放在网上,今天看了一下jsp的相关基础,以下是笔记: JSP三大指令: ...

  7. 重温jsp①

    Jsp就是一个servlet servlet的缺点 不适合设置html响应体,需要response.Getwriter.print(); 优点:动态资源,可以编程. Jsp:在原有的html中加入了J ...

  8. 重温 JSP 与 Servlet

    Java Web使用SSH框架多了,很多基础的 JSP 与 Servlet 的东西都忘记了.最近在 JSP 标签 和 Struts2 包装的 Session 对象的混合使用时弄晕了,就翻书温习下. J ...

  9. 重温JSP学习笔记

    <% double d1 = 3.5; double d2 = 4.4; pageContext.setAttribute("d1", d1); pageContext.se ...

随机推荐

  1. BZOJ3569:DZY Loves Chinese II(线性基)

    Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生.   今Dzy有一魞歄图, ...

  2. apache,R,P,url重写,伪静态,反向代理

    需求: 1,浏览器地址栏中URL不变 2,伪静态重写生效 ===================== <VirtualHost *> ServerName xinwen.888.com.c ...

  3. [转]Bing Maps Tile System 学习

    原文链接:Bing Maps Tile System 学习

  4. 如何为一个类型为Color的属性设置默认值

    最近在研究GDI+的时候,用winform来写自定义控件遇到需要为控件的属性设置默认值,但这个属性的类型是System.Drawing.Color.本文只是总结一下各种设置的方法. Example [ ...

  5. c# Findwindow sendMessage

    using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServi ...

  6. Hiberante持久化对象的3种状态

        近日一同事问我关于Hibernate中对象的3种状态的问题,因此特意总结一下.在Hibernate中对象是有以下3中状态: 瞬时态(transient object): 没有OID值,没有被s ...

  7. WPF 初学VisifireChart

    visifire今天登陆他们官网的时候,发现好像是挂掉了,不知道是不再运营了,还是单纯服务器出了问题. VisifireChart的效果不炫,但是对于一些项目,感觉够用的,所以,今天大概看了几篇博客, ...

  8. 赚钱的小生意,VC对你没兴趣

    创业者,赚钱的生意就不要去找VC(风险投资)了,因为人家对你的生意没有兴趣. 无论是创业者,VC,股权投资散户,都需要对一个"生意"的规模有个总体的认识. 就"生意&qu ...

  9. 6、使用jconsole+VisualVM分析JVM

    一.不断增加对象触发GC的代码 VM 参数:-Xms100m -Xmx100m -XX:+UseSerialGC import java.util.ArrayList; import java.uti ...

  10. 【Java框架型项目从入门到装逼】第十三节 用户新增功能完结篇

    这一节,我们把用户新增的功能继续做一个完善.首先,新增成功后,需要给前台返回一个信息,就是告诉浏览器,这次用户新增的操作到底是成功了呢,还是失败了呢?为此,我们需要专门引入一个结果类,里面只有两个属性 ...