分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

JSP

发布时间:2023-09-06 01:22责任编辑:蔡小小关键词:暂无标签

1 什么是jsp?

  • jsp全称是Java Server Page,它和Servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术。
  • jsp实际上就是Servlet。
  • jsp这门技术最大的特点在于,写jsp就像在写HTML,但它和HTML相比,HTML只能为用户提供静态的数据,而JSP技术允许在页面中嵌套java代码,为用户提供动态数据。
  • 为什么jsp技术也是一种动态的web资源的开发技术?
    • 因为jsp技术允许在页面中嵌套java代码,以产生动态数据,并且web服务器在执行jsp的时候,web服务器会传递web相关的对象给jsp,jsp通过这些对象,可以和浏览器进行交互,所以jsp也是一种动态的web资源的开发技术。  

2 HTML、Servlet和jsp

  • HTML:静态页面,不能包含java代码,只能有HTML相关的标记。
  • Servlet:可以写java戴安,做页面的输出,但是输出页面效率实在太低。
  • JSP:有HTML和Servlet的特点,JSP既可以显示页面,也能包含java代码。

3 输出当前的时间

<%@ page import="java.text.SimpleDateFormat" %><%@ page import="java.util.Date" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> ???<title>显示当前时间</title></head><body> ???<%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%></body></html>

4 JSP的原理和生命周期

  • JSP就是Servlet

5 JSP的语法

5.1 模板元素

  • JSP中的模板元素是指JSP中的那些HTML。开发的时候先编写模板元素,因为它们决定了页面的布局和外观(前端现在很重要哦)。

5.2 java程序片段

  • <%java程序%>,出现在JSP对应的service方法中。

5.3 java表达式

  • <%=表达式%>

5.4 jsp声明

  • <%! %>
  • 作用:
    • 声明变量,方法和静态方法,但开发中很少使用。因为Servlet是线程不安全。  

5.5 jsp的注释

  • <%-- 注释的内容 --%>

6 jsp指令

6.1 jsp指令的简介

  • 指令是为jsp引擎设计的,只是告诉jsp引擎如何jsp页面中的其它部分(非指令部分)。
  • 基本语法:<%指令 属性1="值1" 属性2="值2" %>
  • 一般jsp指令都放在页面的顶部,但不是必须的。
  • 指令的属性可以写一个指令中,也可以分开写。
      • <%指令 属性1="值1" 属性2="值2" %>
      • <%指令 属性1="值1" %>
      • <%指令  属性2="值2" %>  

6.2 page指令

  • 属性:
    • language:告知引擎,脚本用的是java,默认不写也可以。
    • import:告知引擎,导入那些包。 
    • pageEncoding:告知引擎,翻译jsp时所用的码表。 
  • 常用形式:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

6.3 include指令(静态包含)

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> ???<title>显示当前时间</title></head><body> ??<%@include file="demo.jsp"%></body></html>
  • 在翻译之前,先将demo.jsp中的源代码合到index.jsp中,然后直接翻译index.jsp。

6.4 taglib指令

  • 导入外部的标签:比如自定义标签以及el和jstl表达式。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 其中:
    • uri:表示外部标签的uri的地址。
    • prefix:表示前缀。

7 jsp中的转发和包含

7.1 转发

  • 内置标签
<jsp:forward page="demo.jsp"> ?????<jsp:param name="name" value="hehe"/> ?</jsp:forward>

7.2 包含

  • 静态包含:
<%@include file="demo.jsp"%>
  • 动态包含:
<jsp:include page="demo.jsp"/>

8 JSP的九大内置对象

jsp隐含对象名称对应的类型
requestjavax.servlet.http.HttpServletRequest
responsejavax.servlet.http.HttpServletResponse
sessionjavax.servlet.http.HttpSession
applicationjavax.servlet.ServletContext
configjavax.servlet.ServletConfig
pagejavax.servlet.http.HttpServlet
exceptionjava.lang.Throwable
outjavax.servlet.jsp.JspWriter
pageContextjavax.servlet.jsp.PageContext

9 PageContext

  • 本身就是一个域范围,还能其他3个域对象的范围。
  • 页面范围:
void setAttribute(String name,Object value)
void removeAttribute(String name);
Object getAttribute(String name)

10 JSP的最佳实践    

  • 不管是JSP还是Servlet,虽然都可以用于开发动态的web资源,但由于这2个技术各有各的特点,在长期的软件实践中,人们逐渐把Servlet作为web应用中的控制器组件来使用,而把jsp技术作为数据显示模板来使用。
  • 其原因就在意,程序的数据通常要美化后再输出。
  • 让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
  • 让Servlet既产生数据,又在里面嵌套HTML代码美化数据,同样会导致程序可读性差,难以维护。
  • 因为最好的办法就是根据这2门技术的特点,让它们各自负责各自的擅长的,Servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示由jsp来做。
  • 其中,除了jsp/Servlet这种开发模式,还有一种就是使用HTML+Freemaker,这样可以强制的在页面中不让程序员使用java代码。

JSP

原文地址:http://www.cnblogs.com/xuweiweiwoaini/p/7768904.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved