Java Web -- jsp

JSP概念

  • JSP服务端页面
  • 一种动态的网页技术,其中既可以定义HTML,CSS,JS等静态的内容,还可以定义Java代码等动态内容
  • JSP=Java+HTML

JSP作用:

简化开发,避免了在Servlet中直接输入HTML标签

JSP快速入门

1.导入JSP坐标

groupId:javax.servlet.jsp

artifactId:jsp-api

version:2.2

scope:provided

2.创建JSP文件

3.编写HTML标签和Java代码

JSP原理

浏览器访问jsp文件时,Tomcat会自动将jsp转换成servlet(Java文件),再通过Tomcat自动编译,编译成字节码文件,真正响应的是这个字节码文件,所以,JSP本质上就是Servlet

JSP脚本

用于在JSP页面内定义Java代码

脚本分类

1.<%…%>:内容会直接放到_jspService()方法中,即放在main方法中

2.<%=…%>:内容会放到out.print()中,作为out.print()的参数,打印出来(直接在页面上输出)

3.<%!…%>:内容会放到_jspService()方法外,被类直接包含,即成员位置

JSP的缺点

由于JSP不利于团队协作,不利于阅读等等,现在主流开发方式为Servlet+HTML+AJAX 或 Servlet+JSP,其中Servlet负责逻辑处理,封装数据,JSP负责获取数据,遍历展现数据,不提倡在JSP中直接写Java代码,在Servlet中书写即可

但是获取数据和遍历数据不可避免的要在jsp中写Java代码,所以这两种方式可以用其他方式替换

Servlet和jsp配合使用的方法

servlet负责数据的获取和处理,将数据放到request域中,再转发到jsp中,由jsp来做展示

EL表达式

由于JSP的缺点,EL表达式用来替换获取数据的代码

语法

${expression}

如 ${brands} :获取域中存储的key为brands的数据

${cookie.key.value}:可用于页面获取Cookie数据,key指Cookie中的键,value指值

倘若无法显示,在jsp中的page标签加上isELIgnored=“false”,表示不忽略el表达式即可

JavaWeb中的四大域对象

  1. page:当前页面有效
  2. request:当前请求有效
  3. session:当前会话有效
  4. application:当前应用有效

这四个域对象范围逐渐递增

EL表达式获取数据,会依次从这四个域中寻找,直到找到为止

JSTL标签

用来替换循环遍历的代码

JSP标准标签库,使用标签取代JSP页面上的Java代码

JSTL入门

1.导入坐标

2.在JSP页面上引入JSTL标签库

3.使用

c:if 标签

来完成逻辑判断,替换Java中的if else

<c:if  test=“true” ></c:if>

其中test为必须属性,引号包裹的是判断语句,若判断语句结果为true时,就会执行标签包裹范围内的语句,一般与EL表达式结合使用,由EL表达式获取数据,由JSTL标签来判断,从而执行相应代码

c:forEach 标签

相当于增强for循环

  • items:被遍历的容器
  • var:遍历产生的临时变量
  • varStatus:遍历状态对象
    • 属性1:count (从1开始排)
    • 属性2:index (从0开始)
<c:forEach items="${brands}" var="brand">
    
</c:forEach>

相当于普通for循环

  • begin:开始数
  • end:结束数
  • step:步长
  • var: 遍历产生的临时变量
<c:forEach begin="0" end="10" step="1" var="i">
    ${i}
</c:forEach>

MVC模式

是一种分层开发的模式

  • M:Model,业务模型(将数据交给控制器)
  • V:View,视图,界面展示
  • C:Controller,控制器,处理请求,调用模型(获取数据)和视图

在servlet+jsp的开发方式中:

  • M:JavaBean类
  • V:JSP
  • C:Servlet

三层架构

  • 数据访问层:对数据库的CRUD基本操作
  • 业务逻辑层:对业务逻辑进行封装,组合数据访问层的功能,形成复杂的业务逻辑功能
  • 表现层:接受请求,封装数据,调用业务逻辑层,响应数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值