服务器端——jsp

jsp一种动态web开发技术,JSP全名为Java Server Pages

jsp、el、jstl

https://github.com/StingLon/WEB-/blob/master/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF-jsp#L7

 

和servlet技术一样都是用于动态开发web页面的技术,jsp本质是servlet其特点就是HTML和Java代码共同存在

JSP是为了简化Servlet的工作出现的替代品,Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的。

Servlet和JSP最主要的不同点在于:Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Servlet主要用于控制逻辑。

 

JSP是如何被执行的:

当客户端向一个jsp页面发送请求时,Web Container将jsp转化成servlet的源代码(只在第一次请求时),然后编译转化后的servlet并加载到内存中执行,执行的结果response到客户端
jsp只在第一次执行的时候会转化成servlet,以后每次执行,web容器都是直接执行编译后的servlet,所以jsp和servlet只是在第一次执行的时候不一样,jsp慢一点,以后的执行都是相同的

 

jsp的缺点?
1)不好调试
2)可读性差

 


1.语法:
什么让jsp有自己的方法:<% (方法) %>

注释方法: jsp: <%-- --%>
html/xml注释方法: <!-- -->

 

2.JSP指令:(taglib、include 、page)

为TOMCAT设计,只是告诉tomcat如何处理JSP页面中的其他部分。 格式: <$@ 指令 属性名="值" %> 

1.page指令:导包

(head前添加)

例如:

<%@page contentType="text/html;charset=UTF-8" language="java" %>

 

2.include指令:引入其他JSP

(body中添加) 
静态包含: <%@ include file="路径" %> 把文件的代码内容都包含进来,再编译
动态包含: <jsp:include page=""/>

<jsp:include page="foot.jsp"/>

区别:动态包含是运行时包含把所有JSP编程成单独的servlet,静态包含是编译时包含把所有JSP编译成一个servlet,效率比动态好
【如果有相同名称的参数,使用静态包含就会报错!】!

3.taglib指令(导入标签库使用 :<%@ taglib uri="/struts-tags" prefix="s"%> )

 

 

3.JSP常用标签(行为)

1.include行为 <jsp:include page=""/> include行为是动态包含

2.param行为 <jsp:param page=""> 
<jsp:param name="username" value="zhongfucheng"/>
</jsp:forward>

3forward行为 <jsp:forward page=""/> 其实forward行为就是对其封装!

例: <jsp:forward page="head.jsp">


//4.directive行为
//5.javaBean行为

 

(4)九大隐式对象:
Request 用户端请求,此请求会包含来自GET/POST请求的参数
Response (网页传回用户端的回应)
Session (用来保存用户信息 ,与请求有关的会话期) 内置对象session其实就是HttpSession
Application (正在执行的内容) 内置对象application其实就是ServletContext对象
Config (服务器配置,可以取得初始化参数)
Page (指当前页面转换后的servlet类的实例 JSP网页本身) page对象相当于普通java类的this
Exception (错误页面中使用) java.lang.Exception类的对象
Out (用于页面输出)
pageContext (页的属性是在这里管理,代表的编译后JSP内容,例如.getRequest()返回request对象) 代表着JSP页面编译后的内容,当前JSP页面


pageContext 的方法:
setAttribute(String name,Objcet o)
getAttribute(String name)
removeAttribute(String name)
findAttribute(String name)

PageContext类中定义了一个forward方法和两个include方法来分别简化和替代RequestDispatcher.forward方法和include方法。
pageContext.forward(String url)
pageContext.include(String url)

 

 


4种属性;
page【只在一个页面中保存属性,跳转页面无效】
requet【只在一次请求中保存属性,服务器跳转有效,浏览器跳转无效】
session【在一个会话范围中保存属性,无论何种跳转均有效,关闭浏览器后无效】
application【在整个服务器中保存,所有用户都可以使用】

 

 


JSP两种技术
1.el
2.JSTL

 

1.EL 表达式语言
EL表达式是用"${}"括起来的脚本,用来更方便的读取对象
EL表达式主要用来读取数据,进行内容的显示!

语法:${标识符}
EL表达式如果找不到相应的对象属性,返回的的空白字符串“”,而不是null,这是EL表达式最大的特点!

 

 

2.JSTL                  JSP Standard Tag Library 即JSP标准标签库。

实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!


使用JSTL标签库步骤:
1.导入jstl.jar和standard.jar开发包
2.在JSP页面中用tablib指令引入需要用到的JSTL标签

 

core标签库
core标签库是JSTL的核心标签库,实现了最基本的功能:流程控制、迭代输出等操作! core标签库的前缀一般是c
c:out
c:set
c:remove
c:catch
c:if
c:choose
c:forEach
c:forTokens
c:import
c:param
c:url
c:redirect

 

 

 自定义标签

JSTL标签库只提供了简单的输出等功能,没有实现任何的HTML代码封装,并且某些复杂类型转换,或者逻辑处理的时候,JSTL标签库完成不了,需要自定义标签!

我们可以有两种方式来实现自定义标签:

传统方式,实现Tag接口(老方法)
简单方式,继承SimpleTagSupport类, 一般调用doTag方法或者实现SimpleTag接口

 

转载于:https://www.cnblogs.com/StingLon/p/9816706.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSPJavaServer Pages)是一种服务器端的动态网页开发技术,它可以将 Java 代码嵌入 HTML 页面中,从而实现动态网页的生成。 JSP 的基本原理是将 JSP 页面翻译成 Servlet,在服务器端执行 Servlet 代码,再将执行结果返回给客户端。因此,我们在使用 JSP 开发网页时,需要先了解 Servlet 的相关知识。 JSP 的语法基本上就是 HTML 标签加上 Java 代码。以下是一些基本的 JSP 标签: 1. <% ... %>:嵌入 Java 代码,可以用于定义变量、写循环、判断语句等。 2. <%= ... %>:输出 Java 代码的执行结果。 3. <%-- ... --%>:注释,不会被翻译成 Servlet。 4. <jsp:include ... />:包含其他 JSP 页面或 HTML 页面。 5. <jsp:forward ... />:将请求转发到其他资源(JSP 页面、Servlet 或 HTML 页面)。 6. <jsp:useBean ... />:创建 JavaBean 对象。 7. <jsp:setProperty ... />:为 JavaBean 对象设置属性。 8. <jsp:getProperty ... />:取得 JavaBean 对象的属性值。 在 JSP 页面中,我们还可以使用 EL 表达式和 JSTL 标签库来简化代码编写,提高开发效率。 EL(Expression Language)表达式是一种简化的表达式语言,可以用于取值、赋值、计算等操作。例如,${name} 表示取得名为 name 的变量的值。 JSTL(JavaServer Pages Standard Tag Library)是一套标签库,提供了循环、条件判断、格式化、国际化等常用功能的标签。例如,<c:forEach> 标签可以用于循环遍历集合,<c:if> 标签可以用于条件判断。 除了以上标签库,JSP 还支持自定义标签库。我们可以通过编写标签处理器来扩展 JSP 的功能。 JSP 的优点是可以将 Java 代码嵌入 HTML 页面中,使得网页的开发更加灵活和方便。但是,由于 JSP 页面需要翻译成 Servlet,因此会增加服务器的负担和响应时间。此外,JSP 页面中夹杂着 Java 代码,也不利于代码的维护和调试。因此,在开发大型网站时,建议使用 MVC 设计模式,将业务逻辑和视图分离,使得代码更加清晰和易于维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值