java学习JSP

概念

简化的Servlet设计,在HTML标签中嵌套Java代码,用以高效开发Web应用的动态网页

作用

替换显示页面部分的Servlet(使用"jsp文件替换XxxJSP.java)

JSP开发

1、创建JSP

在web目录下新建 “.jsp文件”(与WEB-INF平级)

2、编写代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%= new java.util.Date()%>
</body>
</html>

Jsp与Servlet

关系
:

  • JSP文件在容器中会转换成Servlet执行。
  • JSP是对Servlet的一种高级封装。本质还是Servlet。
    区别
:
  • 与Servlet相比∶JSP可以很方便的编写或者修改HTML网页而不用去面对大量的printn语句。

Jsp实现原理

Tomcat会将xjsp转换成Java代码,进而编译成cass文件运行,最终将运行结果通过response响应给客户端。

文件位置

编译后的jsp在控制台可以看到

	Using CATALINA_BASE:   "C:\Users\bonia\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_37_JspLearn"

JSP与HTML集成开发

脚本

脚本可以编写Java语句、变量、方法或表达式。

普通脚本

<% java代码%>

经验∶普通脚本可以使用所有Java语法,除了定义函数。
注意∶脚本与脚本之间不可嵌套,脚本与HTML标签不可嵌套

声明脚本

<%! 定义变量 、函数%>

注意∶声明脚本声明的变量是全局变量。
声明脚本的内容必须在普通脚本<% %>中调用。

如果声明脚本中的函数具有返回值,可以使用输出脚本调用<%=%>

输出脚本

<%=java表达式%>

表达式不要加分号
它实际就是普通脚本的out.println(方法名);输出的

注释

在这里插入图片描述

指令

用来设置与整个jsp页面下相关的属性
在这里插入图片描述

Page指令

<%@page attribute1="value1" attribute2="value2"%>

为容器提供当前页面的使用说明,一个JSP页面可以包含多个page指令
在这里插入图片描述

include指令

在这里插入图片描述
在这里插入图片描述
如果header.jsp中声明了message变量,再到footer里声明了一个message会发生错误,相同作用域内相同变量,会有重名的冲突问题,不建议使用

taglib

在这里插入图片描述

动作标签

<jsp:action name attribute="value"/>

动作标签指的是jsp页面在运行期间的命令

include

语法∶<jsp∶include page=相对URL地址"/
>

<jsp∶include>动作元素会将外部文件输出结果包含在JSP中(动态包含)。

在这里插入图片描述

'<jsp:include page="index.jsp"/>


注意∶前面已经介绍过include指令,它是将外部文件的输出代码复制到了当前JSP文件中。而这里的jsp∶include动作不同,是将外部文件的输出结果引入到了当前JSP文件中。

useBean

<jsp:useBean id="name" class="classname"/>

jsp∶useBean动作用来加载一个将在JSP页面中使用的JavaBean。

在类载入后,我们可以通过jsp∶setProperty和jsp∶getProperty动作来修改和获取bean的属性。

setProperty

可以在jsp∶useBean元素之后使用jsp∶setProperty进行属性的赋值

在这里插入图片描述
在这里插入图片描述

getProperty

在这里插入图片描述

forward

<jsp:forward page=“url”/>
jsp:forward动作把请求转到另外的界面

param

在这里插入图片描述
在下一个页面通过request.getAttribute();获取

9大内置对象

在这里插入图片描述

四大作用域对象

在这里插入图片描述

pageContext

  • pageContext对象是javax.servlet.jsp.PageContet类的实例,拥有作用域,用来代表整个JSP页面。
  • 当前页面的作用域对象,一旦跳转则失效
  • 通过setattibute("name’value;存储值
  • 通过getAttribute(“name”;获取值
  • 用于获取其他8个内置对象或者操作其他对象的作用域
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

EL表达式

EL使JSP写起来更简单、简洁。主要用于获取作用域中的数据

作用

替换作用域对象.getAttribute(“name”);

应用

在这里插入图片描述
例如:
${requestScope.属性名}若是无值返回的是空,不是null

获取引用类型

存储用setName方法
${requestScope.e.name}调用的是getName方法

EL运算符

在这里插入图片描述

隐式对象

在这里插入图片描述

在这里插入图片描述

JSTL

什么是JSTL

JSTL∶全称Java Server Pages Standard TagLibrary
JSP标准标签库(JSTL)是一个JSP标签集合。

JSTL作用

可对EL获取到的数据进行逻辑操作。
与EL合作完成数据的展示。

导入两个jar文件∶standard.jar和jstljar文件拷贝到/NEB-INF/lib/下
在JSP页面引入标签库
<%@taglib uri=“http∶//java.sun.com/jsp/jst/core” prefix=“c”>

核心标签

条件标签

语法:<c:if test="条件">   </c:if>

多条件

<c:choose>
	<c:when test="条件"> </c:when>
	<c:otherwise>  </c:otherwise>
</c:choose>

迭代foreach标签

在这里插入图片描述
在这里插入图片描述

MVC框架

MVC又称为编程模式,是一种软件设计思想,将数据操作、页面展示、业务逻辑分为三个层级(模块),独立完成,相互调用

● 模型层(Model)
● 视图(View)
● 控制器(Controller)

MVC并不是Java独有的,现在几乎所有的B/S的架构都采用了MVC模式

● 视图view∶视图即是用户看到并与之交互的界面,比如HTML(静态资源),JSP(动态资源)等等。
●控制器Controller∶控制器即是控制请求的处理逻辑,对请求进行处理,负责流程跳转(转发和重定向)。
● 模型Model∶对客观世界的一种代表和模拟(业务模拟、对象模拟)。

优点

低耦合性∶模块与模块之间的关联性不强,不与某一种具体实现产生密不可分的关联性
高维护性∶基于低耦合性,可做到不同层级的功能模块灵活更换、插拔

高重用性∶相同的数据库操作,可以服务于不同的业务处理。将数据作为独立模块,提高重用性

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值