超详细 JSP 快速入门详解干货 (八)

广告位

4 目录 JSP 一.JSP简述&和HTML区别 JSP全名是Java Server Pages, J…

4

目录

JSP

一.JSP简述&和HTML区别

JSP全名是Java Server Pages, Java服务器页面

它是建立在Servlet规范之上的动态网页开发技术.

JSP:可以写Java代码

JSP本质:Servlet

JSP是Java独有,除了可以书写HTML/CSS/JS代码,

更支持书写Java代码和EL表达式等强大功能。

扩展名: .jsp

  • JSP:动态效果、静态效果 (早出现)
  • HTML:静态效果。       (HTML+JS+VUE)

二.JSP原理

超详细 JSP 快速入门详解干货 (八)

小结: JSP被修改后的第一次才会出现翻译、编译、执行过程

JSP被修改后的第N次,直接执行servlet(无翻译、编译过程)

三.JSP基本语法

1.脚本元素

允许在JSP上书写Java代码。

格式: <%  java代码  %>

代码:

<%     //java代码     String str = "么么哒";     //输出页面     out.write("<h1>"+str+"</h1>"); %> 

2.脚本表达式(了解)

替代out.write()进行页面展示。

格式:<%=数据/变量  %>

<%     //java代码     String str = "么么哒";     //输出页面     out.write("<h1>"+str+"</h1>"); %> <%="<h1>"+str+"</h1>"%> 

3.JSP注释

JSP页面上ctrl+/

格式: <%–  JSP注释  –%>

HTML注释:主要出现HTML页面源码中

Java注释:主要出现在翻译后的Java代码中,JSP源码中

JSP注释:仅出现JSP源码中。

建议:写JSP注释

四.​​​​​​​JSP指令

JSP指令,可以大大节约Java代码的时间。

1. page——练习(errorPage,import)

页面指令

<%@ page 属性名1= “属性值1” 属性名2= “属性值2” …%>

属性名称

取值or范围

描述

pageEncoding

当前页面

指定页面编码格式 utf-8

contentType

有效的文档类型

客户端浏览器根据该属性判断文档类型,例如:

HTML格式为text/html

纯文本格式为text/plain

JPG图像为image/jpeg

GIF图像为image/gif

Word文档为application/msword

buffer

8kb

jsp缓存大小

autoFlush

true / false

是否自动刷新

errorPage

某个JSP页面的相对路径

指定一个错误页面,如果该JSP程序抛出一个未捕捉的异常,则转到errorPage指定的页面。errorPage指定页面的isErrorPage属性为true,且内置的exception对象为未捕捉的异常

页面出错,就进行跳转(请求转发)

isErrorPage

true / false

指定该页面是否为错误处理页面,如果为true,则该JSP内置有一个Exception对象的exception,可直接使用。默认情况下,isErrorPage的值为false

import

任何包名、类名

指定在JSP页面翻译成的Servlet源文件中导入的包或类。import是唯一可以声明多次的page指令属性。一个import属性可以引用多个类,中间用英文逗号隔开。

Alt+回车

language

java

指明解释该JSP文件时采用的语言,默认为Java

session

true、false

指明该JSP内是否内置Session对象,如果为true,则说明内置Session对象,可以直接使用,否则没有内置Session对象。默认情况下,session属性的值为true。需要注意的是,JSP 引擎自动导入以下4个包:

java.lang.*

javax.servlet.*

javax.servlet.jsp.*

javax.servlet.http.*

代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="/demoxx.jsp" %> <html> <head>     <title>Title</title> </head> <body>     <%         int a = 1/0;     %> </body> </html> 

demoxx.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %> <html> <head>     <title>Title</title> </head> <body>     <h1>客官,小二出错了         <%=exception.getMessage()%>     </h1>     <img src="img/err.png" width="600"/> </body> </html> 

2.include

合并JSP文件

<%@ include file=”被包含的文件地址”%>

Demo3_1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head>     <title>Title</title> </head> <body>     <%         String str = "小煌煌";     %> </body> </html> 

Demo3_2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head>     <title>Title</title> </head> <body>     <%@ include file="/demo3_1.jsp"%>     <%=str%> </body> </html> 

3.taglib—练习(jstl)

导入标签库。

JSTL标签

导入jar包:

超详细 JSP 快速入门详解干货 (八)

代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head>     <title>Title</title> </head> <body>     <c:if test="">              </c:if> </body> </html> 

五.​​​​​​​JSP九大内置对象

1.简述

内置对象:JSP内部已经定义好的对象,程序员只需使用即可

名称

类型

描述

out

javax.servlet.jsp.JspWriter

用于页面输出

request

javax.servlet.http.HttpServletRequest

得到用户请求信息,

response

javax.servlet.http.HttpServletResponse

服务器向客户端的回应信息

config

javax.servlet.ServletConfig

服务器配置,可以取得初始化参数

session

javax.servlet.http.HttpSession

用来保存用户的信息

application

javax.servlet.ServletContext

所有用户的共享信息

page

java.lang.Object

指当前页面转换后的Servlet类的实例

pageContext

javax.servlet.jsp.PageContext

JSP的页面容器

最小域对象,当前页面

exception

java.lang.Throwable

表示JSP页面所发生的异常,在错误页中才起作用

isErrorPage=”true”

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %> <html> <head>     <title>Title</title> </head> <body>     <%         exception.getMessage();     %> </body> </html> 

2.pageContext—练习(findAttribute)

最小的域对象,作用范围仅限于当前JSP页面。几乎不向pageContext作用域存储键值对

1. 获取其他八大内置对象(了解)

例如:getRequest()

  getSession()

例如:定义一个方法,需要传递JSP九大内置对象,传递pageContext

2.findAttribute查找键值对

可以去JSP四大作用域,查找键值对:pageContext,request,session,application

超详细 JSP 快速入门详解干货 (八)

Object 值 = findAttribute(“名”);

查找顺序:pageContext,request,session,application

找到就返回,找不到就去更大作用域查找,都找不到,返回null

3.out (了解)

用于进行页面输出展示

和response.getWriter()区别

超详细 JSP 快速入门详解干货 (八)

六.JSP四大作用域

scope:范围、域

PageContext常量名

描述

作用域名称

域对象类型

PageScope

当前页面中有效

页面范围(最小)

JSP独有的

pageContext

PageContext

RequestScope

一次请求范围

请求范围

request

HttpServletRequest

SessionScope

一次会话范围

会话范围

session

HttpSession

ApplicationScope

应用范围(最大)

application

ServletContext

pageContext不作为域对象使用,太小了

优先考虑:request,request用不了,考虑session,session用不了,最后考虑servletContext

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

注: 如果本篇有需要改进的地方或错误,欢迎大神们指定一二~~

潇洒哥, 程

关于作者: 潇洒哥

为您推荐