JSP基础知识点(详细总结) 您所在的位置:网站首页 语法知识总结 JSP基础知识点(详细总结)

JSP基础知识点(详细总结)

2024-06-30 17:41| 来源: 网络整理| 查看: 265

目录

1、JSP

1.1、JSP概述

1.1.1、什么是JSP

1.1.2、JSP的本质

1.2、脚本和注释

1.2.1、JSP脚本

1.2.2、JSP和Servlet的区别

1.2.3、JSP注释

1.3、JSP指令

1.3.1、什么是指令?

1.3.2、指令格式

1.3.3、page指令

1.3.4、include指令

1.3.5、taglib指令

1.4、JSP内置对象

1.4.1、九大内置对象

1.4.2、常用内置对象

1.4.3、pageContext

1.5、JSP标签介绍

1.5.1、jsp:useBean标签

1.5.2、jsp:include标签

1.5.3、jsp:forward标签

2、EL表达式

2.1、EL取值

2.1.1、pageContext域

2.1.2、数组

2.1.3、list集合

2.1.4、map集合

2.1.5、java对象

2.1.6、集合对象

2.2、EL运算

2.2.1、常见的运算符

3、JSTL的核心标签库

3.1、什么是JSTL

3.2、JSTL的作用

3.3、c:if标签

3.4、c:choose、c:when、c:otherwise标签

3.5、c:set标签

3.6、c:out标签

3.7、c:forEach标签

 

1、JSP 1.1、JSP概述 1.1.1、什么是JSP

在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。 为了弥补Servlet的缺陷,SUN公司在Servlet的基础上推出了JSP(Java Server Pages)页面服务器。

JSP是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,页面动态资源使用java代码,页面静态资源使用html标签。

简单来说:可以在html标签中嵌套java代码。

作用:简化书写,展示动态页面。

1.1.2、JSP的本质

JSP本质上就是一个Servlet。

JSP页面,运行的时候 ,会先生成一个Java文件,必须进行编译,再去执行。

C:\Users\Administrator\.IntelliJIdea2018.3\system\tomcat\Tomcat_9_0_54_day03_JDBCTemplate_MVC\work\Catalina\localhost\ROOT\org\apache\jsp

login.jsp 会被翻译成login_jsp.java,再编译时期被编译为login_jsp.class文件,jsp页面的名字加上下划线加上jsp。

每一段html的内容,都会被翻译成一个out.write("")这样的一段代码。service方法中。 

1.2、脚本和注释 1.2.1、JSP脚本

脚本片段,生成在service方法中,每次请求的时候都会执行

声明片段,在java代码中声明成员,放在jsp生成java文件中的成员位置

输出脚本片段,相当于out.print("代码") 方法,输出到jsp页面

                 // System.out.println(i);             out.print(i);         }     %>         

1.2.2、JSP和Servlet的区别

jsp主要以页面为主,尽量不要书写java代码。 servlet主要以业务逻辑为主,尽量不要书写页面。

1.2.3、JSP注释

html注释

JSP注释

Java注释(JSP脚本内使用)

// 单行 /* 多行 */ /**文档 */

JSP注释的作用范围 

html注释可以通过查看网页源代码可以查看

jsp注释可以通过查看网页源代码不可以查看

1.3、JSP指令 1.3.1、什么是指令?

用于配置JSP页面,导入资源文件。

1.3.2、指令格式 1.3.3、page指令

主要用于配置当前jsp页面的一些信息

属性名说明pageEncoding编码方式language目前仅支持java语言import导入jar包errorPage当前页面报错后,跳转指定错误提示页面isErrorPage声明当前jsp页面是一个异常处理页面,打开异常开关 false:(默认) true:可以操作exception异常对象autoFlush它是指在使用out方法输出的时候,是否自动刷新. 默认是true。会自动刷新buffer="8kb"当前页面的输出流的缓冲区大小。如果设置buffer=0 ,表示没有缓冲区isELIgnored是否运行使用el表达式 ,false允许使用 true是不允许使用。session指定一个http会话中是否使用会话

1、配置单个友好报错页面

errorPage属性

Title

2、配置全局友好报错页面

404 /404error.jsp 500 /500error.jsp

3、isErrorPage属性获取异常信息

当前是一个错误的友好页面 1.3.4、include指令

页面包含的。导入页面的资源文件

我是头部 我是脚部 我是身体 1.3.5、taglib指令

导入资源, 在jstl中我们会使用该指令导入标签库

属性名说明prefix自定义前缀 Title 1.4、JSP内置对象

作用:在JSP页面中不需要获取和创建,可以直接使用的对象,查看jsp底层源码service方法。

1.4.1、九大内置对象 变量名说明作用pageContextPageContext当前页面中共享数据(域对象)requestHttpServletRequest一次请求中共享数据(域对象)session         HttpSession一次会话中共享数据(域对象)applicationServletContext整个web应用共享数据(域对象)responseHttpServletResponse响应对象page(this)Object当前页面(servlet)对象outJSPWriter输出对象configServletConfigservlet配置对象exceptionThrowable异常对象(默认关闭...) 1.4.2、常用内置对象 变量名说明pageContext当前页面的域对象和获取其他八个内置对象。request接收用户请求(参数)和 获取一次请求中域对象。response设置响应:字节流和字符流。out

专门在jsp中处理字符流。

print(): 可以输出一切类型。

write():只能输出字符类型。

1.4.3、pageContext

向四大域中存取数据

Title page: page: request: session: application: find:

四个域对象作用范围

page  <  request  <  session  < ServletContext(application)

1.5、JSP标签介绍 1.5.1、jsp:useBean标签

代替java代码在jsp中的书写,用标签即可完成

1.5.2、jsp:include标签 我是内容 1.5.3、jsp:forward标签

可以实现转发

2、EL表达式

EL 全名为Expression Language,翻译成中文表达式语言 语法:${标识符} 作用就是输出标识符的所代表的值。 el出现目的:代替,代替out.print(); 常用功能: 获取各种域(各种数据范围,servletContext(全局的),request(一次请求)中存储的数据

2.1、EL取值 2.1.1、pageContext域 ${pageScope.username} ${requestScope.username} ${sessionScope.username} ${applicationScope.username} ${username} 2.1.2、数组 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //业务层 dao //把查到的数据返回给web层 int[] arr = {11,22,33,44,55,66}; request.setAttribute("arr",arr); request.getRequestDispatcher("show.jsp").forward(request,response); }

show.jsp 

${requestScope.arr[0]} ${requestScope.arr[1]} ${requestScope.arr[2]} ${requestScope.arr[3]} ${requestScope.arr[4]} ${requestScope.arr[5]} ${i} 2.1.3、list集合 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //web service dao //把查询的结果放在list集合 List list = new ArrayList(); list.add("tom"); list.add("jack"); list.add("rose"); list.add("yiyan"); request.setAttribute("list",list); request.getRequestDispatcher("show.jsp").forward(request,response); }

show.jsp 

${list} 2.1.4、map集合 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //web service dao //把查询的结果放在map集合 Map map = new HashMap(); map.put("a","aaa"); map.put("b","bbb"); map.put("c","ccc"); map.put("d","ddd"); request.setAttribute("map",map); request.getRequestDispatcher("show.jsp").forward(request,response); }

show.jsp 

${requestScope.map.a} ${requestScope.map.b} ${requestScope.map.c} ${requestScope.map.d} key:${map.key} value:${map.value} ${requestScope.map["1"]} ${requestScope.map["2"]} ${requestScope.map["3"]} ${requestScope.map["4"]} key:${map.key} value:${map.value} 2.1.5、java对象 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //web service dao //把查询的结果放在user对象 User user = new User(); user.setUsername("jack"); user.setAddr("郑州"); request.setAttribute("user",user); request.getRequestDispatcher("show.jsp").forward(request,response); } ${requestScope.user.username} ${requestScope.user.addr} 2.1.6、集合对象 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //web service dao //把查询的结果放在list集合 List list = new ArrayList(); User user = new User(); user.setUsername("jack"); user.setAddr("郑州"); list.add(user); request.setAttribute("list",list); request.getRequestDispatcher("show.jsp").forward(request,response); } ${user.username} ${user.addr} 2.2、EL运算 2.2.1、常见的运算符 运算符说明算术运算符+、- 、*、 /(div)、 %(mod)比较运算符> 、=、 list对象: ${not empty list} list对象: ${empty list} 3、JSTL的核心标签库 3.1、什么是JSTL

JavaServer Pages Tag Library JSP标准标签库 是由Apache组织提供的开源的免费的jsp标签

3.2、JSTL的作用

用于简化和替换jsp页面上的java代码的编写

注意事项:需要手动添加jstl的jar包

3.3、c:if标签

相当于java代码中if语句

使用c:if 标签,在JSP页面上可以完成if判断。注意在JSTL核心标签库中没有c:else.只有c:if

登录失败! 登录成功! 3.4、c:choose、c:when、c:otherwise标签

c:choose标签用于指定多个条件选择的组合边界,它必须与c:when和c:otherwise标签一起使用。

使用c:choose,c:when和c:otherwise三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。

c:when ,c:otherwise 属于同一级别标签。同时是c:choose的子标签

它可以理解成switch结构。 ​ c:choose 相当于switch ​ c:when 相当于 case ​ c:otherwise 相当于 default

星期一 星期二 星期三 星期八 3.5、c:set标签 ${pageScope.name} 原始数据: ${requestScope.user.username} 修改后数据: ${requestScope.user.username} 3.6、c:out标签 3.7、c:forEach标签 ${i} ${arr[i]}


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有