前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速入门

快速入门

作者头像
鸡先生
发布2022-10-29 17:22:50
1K0
发布2022-10-29 17:22:50
举报
文章被收录于专栏:鸡先生

概念

全称:Java Server Pages, Java服务端页面 描述:一种动态的网页技术,可以在其中定义HTML、JS、CSS等静态内容,以及Java代码的动态内容 说明:JSP = HTML + Java 作用:简化开发,避免了在Servlet中直接输出 HTML 标签

原理JSP本质上就是一个Servlet。在被访问时,由JSP容器(Tomcat)将其转换为Java文件(Servlet),在由JSP容器将其编译,最终对外提供服务的其实就是这个字节码文件

image
image

快速入门

  1. 导入JSP坐标
代码语言:javascript
复制
<dependency>
  <groupld>javax.servlet.jsp</groupld>
  <artifactld>jsp-api</artifactld>
  <version>2.2</version>
  <scope>provided</scope>
</dependency>
  1. 创建 JSP文件
  2. 编写 HTML标签和 Java代码
代码语言:javascript
复制
<body>
  <h1>hallo jsp</h1>
  <% System.out.printf("jsp hello");%>
</body>

JSP 脚本

  • 用于在JSP页面内定义 Java代码
  • 分类:
    • <%...%>:内容会直接放到_jspServlet()方法之中
    • <%=...%>:内容会放到out.print()中,作为out.print()的参数
    • <%!...%>:内容会放到_jspServlet()方法之外,被类直接包含

小技巧:

代码语言:javascript
复制
<%
  for(int i=0;i<brands.size();i++){
    Brand brand = brands.get(i);
  }
%>
<tr align="center">
  <td>1</td>
  <td>三只松鼠</td>
  <td>三只松鼠</td>
  <td>100</td>
  <td>三只松鼠,好吃不上火</td>
  <td>启动</td>
  <td><a href="#">修改</a><a href="#">删除</a></td>
</tr>
<%
  }
%>

说明:<%...%>标签是可以分段的,这样写,只是为了让我们更直观的知道get后值赋给谁

JSP 缺点


  • 由于JSP页面内,既可以定义 HTML 标签,又可以定义 Java代码,造成了以下问题: 1.书写麻烦;特别是复杂的页面 2.阅读麻烦 3.复杂度高:运行需要依赖于各种环境,JRE,JSP容器,JavaEE... 4.占用空间和磁盘:JSP会自动生成 .java 和 .class文件占用磁盘,运行的是.class文件占内存 5.调试困难:出错后,需要找到自动生成的.java文件进行调试 6.不利于团队协作:前端人员不会 java,后端人员不精 HTML 7.xxx
image
image

EL 表达式


全称:Expression Language 表达式语言,用于简化 JSP页面内的Java代码 主要功能:获取数据 语法

代码语言:javascript
复制
${expression}
//例子
${brands}//获取域中存储的key为brands的数据

JavaWeb中的四大域对象: 1.page:当前页面有效 2.request:当前请求有效 3.session:当前会话有效 4.application:当前应用有效

el表达式获取数据,会依次从这4个域中寻找,知道找到为止

image
image

JSTL 标签


全称:JSP标准标签库(Jsp Standard Tag Library),使用标签取代JSP页面上的Java代码

代码语言:javascript
复制
//例子
<c:if test="${flag == 1}"> 男 </c:if>
<c:if test="${flag == 2}"> 女 </c:if>

JSTL 库中有很多不同的标签,这里就只说明两个最常用的标签。 其他可点击链接查阅:https://www.runoob.com/jsp/jsp-jstl.html

快速入门

image
image

<c:if>

用来完成逻辑判断,也就是替换Java 代码中的if else

代码语言:javascript
复制
<c:if test="true">
  <h1>true</h1>
</c:if>

<c:if test="false">
  <h1>false</h1>
</c:if>

当test为中值为ture时,就会执行其包裹的代码块里的代码 一般会和EL表达式配合使用,EL表达式获取数据,<c:if>标签做逻辑判断

<c:froEach>

image
image

MVC 模式

MVC 是一种分层开发的模块,其中:

  • M:Model,业务模型,处理业务
  • View,视图,界面展示
  • Controller,控制器,处理请求,调用模型和视图
image
image

MVC 好处

  • 职责单一,互补影响
  • 有利于分工协助
  • 有利于组件重用

类似于三层架构

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念
  • 快速入门
  • JSP 脚本
  • JSP 缺点
  • EL 表达式
  • JSTL 标签
    • 快速入门
      • <c:if>
      • <c:froEach>
  • MVC 模式
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档