【JavaWeb】JSP学习笔记(一)环境|目录|JSP基础语法|内置对象

来源:互联网 发布:淘宝评价管理在哪 编辑:程序博客网 时间:2024/04/27 10:55

  • 环境配置及目录基础
    • 1TomCat服务器配置
    • 2MyEclipse配置
    • 3关于修改Tomcat默认服务端口
    • 4MyEclipse的第一个Demo流程
    • 5Tomcat目录结构
    • 6MyEclipse目录结构
    • 7WEB-INF目录结构
  • JSP基础语法
    • 1JSP页面组成元素
      • 1静态内容
      • 2指令
      • 3表达式
      • 4脚本元素
      • 5声明
      • 6注释
    • 2JSP生命周期
  • 内置对象
    • web应用程序的请求相应模式
    • 缓冲区的理解
    • out对象
    • get与post
    • request对象
    • response对象
      • 请求转发与请求重定向
    • session对象
      • 关于Session的生命周期
    • Application对象
    • Page对象
    • PageContext
    • Config对象
    • Expection对象

本文部分图片来自中慕课网,特此说明

环境配置及目录基础

1、TomCat服务器配置

  官网下载

2、MyEclipse配置

###(1)配置jre
window->preferences->java 选择非默认的JDK
这里写图片描述
###(2)配置TomCat
window->preferences->MyEclipse->Servers->Tomcat 选择本机的Tomcat服务器
这里写图片描述

3、关于修改Tomcat默认服务端口

在TomCat安装目录下的conf Server.xml当中
这里写图片描述
这里写图片描述

4、MyEclipse的第一个Demo流程

new->web project 点击next 勾选生产web.xml
这里写图片描述

5、Tomcat目录结构

图片来自慕课网

6、MyEclipse目录结构

这里写图片描述

7、WEB-INF目录结构

这里写图片描述

JSP基础语法

1、JSP页面组成元素

(1)静态内容

所谓静态内容,可以简单理解为纯HTML页面,相当于页面的骨架例如如下的代码片段:
这里写图片描述

这里可能会涉及到另外一个块内容:页面静态化

  如果一个页面在一定的时间内,其内容没有发生改变,那么就不必为每一次对它的访问进行一次“新”的编译或执行。我们可以把它在这段没有发生改变的时间内的 结果保存到一个静态的页面里面,然后每次访问这个页面时,就用刚才保存的静态页面进行回复。这样便能大大地减少系统资源的消耗,并且提高对客户的响应速 度。而这个过程就称之为页面静态化。
  现在所面临的问题就是如何在JSP中将页面的内容保存下来。
  在访问JSP页面的时候,服务器会先将JSP文件编译为Servlet文件,然后对这个Servlet编译、执行,并最终把结果返回给客户端。而我们的任务就是要把这个最终生成的HTML静态页面保留下来,存放在服务器上。
  解决的方法其实很简单。普通的对于JSP的访问,最终的数据流是回写到客户端的,如果我们把它重定向,让它回写到服务器上一个本地的文件,这样就能把JSP的执行结果保存起来,而这个文件就是我们想要得到的静态化的结果。

详情见:页面静态化

(2)指令

这里写图片描述

【page指令】
功能:设定整个JSP网页的静态属性。
语法:<%@ page 标签元素=“值”%>,比如 <%@ page language=“java”%>
标签元素:language、import、contentType、session、errorPage、isErrorPage等等。

这里写图片描述
【include指令】
功能:include指令用来向当前页面插入一个静态文件的内容。这个文件可以是JSP、HTML、文本或是Java程序。
语法:<%@ include file=“filename” %> 比如 <%@ include file=“111.txt” %>
标签元素:file

注意:include指令元素和行为元素主要有两个方面的不同点。
1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。所以file不能是一个变量,也不能在file后接任何参数。

2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。

3、<%@ include file=“filename” %>如果直接以文件名开头,指的是正在使用的JSP文件所在的路径,

扩展:

JSP基本动作(行为元素)
JSP中的动作元素包括:include、forward、useBean、getProperty、setProperty、plugin、param。
1.include动作
标签用来包含一个静态或者动态的文件。
2.forward动作
标签用来重定向一个静态HTML文件、JSP文件或者是一个程序段。
3.useBean动作
标签用来在JSP页面中创建一个Bean实例,并指定其名称和作用范围。
4.getProperty动作
标签用来获取Bean的属性值(在此之前必须用创建它),并将之转化为一个字符串,然后将其插入到输出的页面中。
5.setProperty动作
标签表示用来设置Bean中的属性值。
6.plugin动作
标签用于在浏览器中播放或显示一个对象(典型为applet和Bean),这种显示需要在浏览器上安装Java插件。当JSP文件被编译后送往浏览器时,元素将会根据浏览器的版本替换成或者元素。
7.param动作
标签用来传递参数,必须与forward、include及plugin动作配合使用。

【taglib指令】
功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
当页面引用了用户自定义标签时,taglib指令用于引用自定义标签库,并指定标签的前缀。
语法:<%@ taglib uri=”URIToTagLibrary” prefix=”tagPrefix” %>
如<%@ taglib uri=”http://www.jspcentral.com/tags” prefix=”JAXP” %>
标签元素:uri、Prefixpage指令元素的属性

uri=”tagLibraryURI” 标签库描述器的URI,主要是说是tagLibrary的存放位置。
prefix=”tagPrefix” 用于标识在页面后面部分使用定制标签的唯一前缀。
前缀在标签的名字前面使用,例如,在中public在loop前面。空的前缀将被忽略。如果你正在开发或使用自定义的标签的话,你不能使用标签前缀:jsp,jspx,java,javax,servlet,sun和sunw等,因为他们已经被Sun的系统的所使用。

(3)表达式

这里写图片描述

(4)脚本元素

在jsp当中包含一些可以执行的java代码,这些代码都写在了一个jsp标签当中

这里写图片描述

(5)声明

完成变量方法的定义

(6)注释

这里写图片描述
客户端可见——在浏览器当中查看源码,可以看见注释内容
客户端不可见——与上面反之

2、JSP生命周期

JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。
以下是JSP生命周期中所走过的几个阶段:

  • 编译阶段:
    servlet容器编译servlet源文件,生成servlet类
  • 初始化阶段:
    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
  • 执行阶段:
    调用与JSP对应的servlet实例的服务方法
  • 销毁阶段:
    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
    这里写图片描述

这里写图片描述
详见JSP 生命周期

内置对象

Jsp内置对象是指web容器创建的一组对象,无需使用new关键字,就可直接使用。

JSP拥有9大内置对象

这里写图片描述

web应用程序的请求相应模式

这里写图片描述

缓冲区的理解

这里写图片描述

out对象

out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。

最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作。可以在page指令中使用buffered=’false’属性来轻松关闭缓存。

JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter新增了一些专为处理缓存而设计的方法。还有就是,JspWriter类会抛出IOExceptions异常,而PrintWriter不会。

这里写图片描述

get与post

这里写图片描述

request对象

request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。

request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

这里写图片描述

解决中文乱码问题:
(1)reques.setCharacterEncoding(“utf-8”);可以解决post表单提交中文时的乱码问题

(2)修改Tomcat服务器的配置:conf/server.xml

这里写图片描述

response对象

response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。

response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

这里写图片描述

注意:
response对象生成的输出流对象(response.getWriter)在输出时总是提前与内置的out对象产生的输出流

请求转发与请求重定向

【请求重定向】
语法:response.sendRedirect()
特点:客户端行为
实质:相当于客户端进行了两次请求,前一次的请求对象不会保存,Url地址栏的地址会发生改变

【请求转发】
语法:request.getRequestDispatcher.forward(req,resp)
特点:服务端行为
实质:一次请求转发后会保存请求对象,且Url地址栏不会发生改变

session对象

session表示应用和服务器之间的一次对话,是一种时间上的概念。
这里写图片描述
这里写图片描述
这里写图片描述

关于Session的生命周期:

这里写图片描述

这里写图片描述

这里写图片描述

Application对象

这里写图片描述

这里写图片描述

Page对象

这里写图片描述

PageContext

这里写图片描述

这里写图片描述

Config对象

这里写图片描述

Expection对象

这里写图片描述

0 0
原创粉丝点击