JSP学习笔记

1.什么是jsp

JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实际上就是Servlet。

JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

2.JSP概述

JSP=HTML+Java

Servlet:控制业务逻辑

JSP:显示

动态资源生成静态资源的,用户看到的永远都是静态资源,即看到的都是动态资源生成的结果。

学好JSP的关键:在写JSP的某部分内容时,一定要知道他在Servlet中的位置。

3.JSP基本语法

1、JSP模版元素:就是JSP中的HTML的内容。界面展示。(美工)建议先把模板弄好。

2、JSP脚本表达式 :

作用:把某个变量的值输出到页面上。(等同于out.write())

语法:<%=表达式%> 当前时间:<%= new java.util.Date() %>

JSP脚本表达式中的变量或表达式后面不能有分号(;)

没有返回值的就不用写=

3、JSP的脚本片段:

作用:书写java逻辑

语法:<%

语句1;

语句2;

%>

4、JSP声明

<%! %>

作用:定义JSP对应的Servlet的成员变量或方法

语法:

<%!

private int age = 100;

public void m(){

}

static{

}

%>

5、 JSP注释

语法:<%--这是注释--%>

结果:被注释的代码,服务器根本不翻译。

实际开发中:除了下面要讲的指令。JSP中不能出现一行<%%>

4. JSP的指令:

作用:给服务器用的。

语法:<%@ page|taglib|include 属性1="值1" ...%>

1、page:

language:指定JSP中使用的脚本的语言。默认值java,目前只支持java。

*import:导入jsp中使用的类或包。作用和java中的import完全一样。

import="java.io.InputStream,java.util.Date"

*session:指示是否创建HttpSession对象。默认是true,创建。

buffer:指示输出字符流的缓存大小。默认是8kb。

*errorPage:指定出错时,转发到哪里去。取值就是一个uri地址。如果以"/"开头,它就代表当前应用。

配置全局错误提示页面:(不是转发)

web.xml

<error-page>

<exception-type>java.lang.Exception</exception-type>

<location>/error.jsp</location>

</error-page>

<error-page>

<!-- 错误响应码 -->

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

<location>/404.jsp</location>

</error-page>

*isErrorPage:指示是否产生exception对象。true是产生。默认值是false

*contentType:通知HttpServletResponse输出时响应正文的MIME类型和编码。作用和response.setContextType="text/html;charset=UTF-8"一样

*pageEncoding:指示从磁盘上读取jsp文件时查的码表。

1、指示服务器读磁盘上的文件用的编码

2、同时制定contentType使用的编码

*isELIgnored:默认是false。指示是否忽略EL表达式。

2、taglib:引入外部定义的标签(重点)

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

3、include:实现包含(静态包含)

静态包含:2个页面对应一个Servlet

动态包含:2个页面分别对应一个Servlet。

5.JSP常用动作元素(jsp内置的标签)

jsp:include:动态包含

jsp:forward

jsp:param

6.JSP中的9个隐式对象(JSP对应的service中生成的那些局部变量)

JSP隐式对象名称类型

requestjavax.servlet.http.HttpServletRequest(域对象)

responsejavax.servlet.http.HttpServletResponse

sessionjavax.servlet.HttpSession(域对象)

applicationjavax.servlet.ServletContext(域对象)

configjavax.servlet.ServletConfig

page当前JSP对应的Servlet的实例

exceptionjava.lang.Throwable

outjavax.servlet.jsp.JspWriter(和response.getWriter()作用完全

pageContextjavax.servlet.jsp.PageContext(用JSP时很重要)

pageContext三大作用:

1、本身是一个域对象,还能操作其他三个域对象中的数据 域对象:范围是当前页面。

操作其他三个域对象中的数据:scope是一个常量:

PAGE_SCOPE(页面范围PageContext)

REQUEST_SCOPE(请求范围ServletRequest)

SESSION_SCOPE(会话范围HttpSession)

APPLICATION_SCOPE(应用范围ServletContext)

void setAttribute(String key,Object value,int scope)

void removeAttribute(String key,int scope)

Object getAttribute(String key,int scope)

查找方法:

Object findAttribute(String key):依次从

PageContext\ServletRequest\HttpSession\ServletContext中查找,找到为止。

2、获取其他八个隐式对象:用在普通类中。

3、提供了转发和包含的简易方法

pageContext.forward("/scope/2.jsp");

pageContext.include("");

7.四大域对象总结

表示的范围Map在哪个类中PageContext中的常量备注

pagePageContext:MapPAGE_SCOPE开发几乎不用:练习时用一下

requestServletRequest:MapREQUEST_SCOPE限转发,用完数据就没了

sessionHttpSession:MapSESSION_SCOPE多次使用 范围内

applicationServletContext:MapAPPLICATION_SCOPE用得少:同步处理

java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象的更多相关文章

  1. JSP学习笔记(二):动作元素

    与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用.JSP动作元素是用XML语法写成的. 利用JSP动作可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页面.为Java插件 ...

  2. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  3. java web Servlet学习笔记-2 请求重定向和请求转发的区别

    请求转发与请求重定向的区别 请求重定向和转发 1.请求重定向:浏览器的行为(通过响应对象HttpServletResponse来执行) 特点:可以重新定向访问其他Web应用下的资源 浏览器发出了2次请 ...

  4. java Web Servlet学习笔记-1 HttpServletQequest对象的学习

     HttpServletQequest对象的学习 HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求 ...

  5. java web(学习笔记)项目路径问题

    最近刚接触java web特别是是关于项目路径这一块很晕,就把自己遇到的一些疑惑和理解写下来. 首先贴上路径,这里用的是eclipse. 其中我们要注意看WebContent目录,这是web程序的根目 ...

  6. java web Servlet 学习笔记 -3 会话管理技术

     Cookie和HttpSession 什么是会话: 用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 每个用户在使用浏览器与服务器进行会话的过 ...

  7. Android开发学习笔记:浅谈显示Intent和隐式Intent

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 ...

  8. Java Web Service 学习笔记

    一.服务端 1. 创建Java工程 2. 创建接口HostipalServiceInterface package ws_server; import javax.jws.WebMethod; imp ...

  9. Scala学习笔记(七):Rational、隐式转换、偏函数、闭包、重复参数及柯里化

    class Rational(n: Int, d: Int) { require(d != 0) private val g: Int = gcd(n, d) val number: Int = n ...

随机推荐

  1. EF实例创建问题

    场景:CodeFirst 情况下,在控制器新建一个EF数据库对象,以便运行时进行表的初始化创建 Private DemoContext db=new DemoContext (): 问题:什么时候释放 ...

  2. 第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)

    目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的  (3) 分析stext函数如何启动内核:  (3.1) ...

  3. !JS实战之随机像素图

    JavaScript实例分享之----画随机像素图.随机像素图(作者自己取得名字)指的是一张图片上每一个像素的颜色都是随机的.此时应该能联想到这幅图多么眼花缭乱,好吧,我们用JS来实现它的原因是JS很 ...

  4. IT经典书籍——Head First系列【推荐】

    Head First 系列书籍是由 O'Relly 出版社发行的一系列教育书籍,中文一般翻译为"深入浅出",它强调以特殊的方式排版,由大量的图片和有趣的内容组合构成,而达到非疲劳的 ...

  5. 201521123082 《Java程序设计》第10周学习总结

    201521123082 <Java程序设计>第10周学习总结 标签(空格分隔): java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. A ...

  6. 201521123003《Java程序设计》第5周学习总结

    1. 本章学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 Q1.代码阅读:Child压缩包内源代码 1.1 com.parent包中C ...

  7. 多线程面试题系列(14):读者写者问题继 读写锁SRWLock

    在第十一篇文章中我们使用事件和一个记录读者个数的变量来解决读者写者问题.问题虽然得到了解决,但代码有点复杂.本篇将介绍一种新方法--读写锁SRWLock来解决这一问题.读写锁在对资源进行保护的同时,还 ...

  8. C#设计模式(6)-原型模式

    引言 上一篇介绍了设计模式中的抽象工厂模式-C#设计模式(3)-建造者模式,本篇将介绍原型模式: 点击这里查看全部设计模式系列文章导航 原型模式简介 原型模式:用原型实例指定创建对象的种类,并且通过拷 ...

  9. grep与正则表达式基础

    目录 grep 正则表达式 grep用法简介 我们介绍GREP的用法,主要用于匹配行,我们借助下面的正则表达式来介绍如何使用grep,还有就是正则表达式在linux中是极为重要的一部分. 命令:gre ...

  10. [07] String字符串

    1.相同又不同的字符串 String str1 = new String("String"); String str2 = "String"; String s ...