什么是JSP

JSP全称Java Server Pages即 java服务页面,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

  • JSP是一种Java servlet【JSP 的本质就是一个servlet】,主要用于实现Java web应用程序的用户界面部分。
  • 它和servelt 一样 可以提供 动态的HTML 响应。 不同的是 Servlet 以java代码为主,
    JSP 以 html 为主 然后内嵌少量的java 代码。   

一个JSP页面分为以下几部分组成:

一、静态内容:HTML静态文本

二、JSP指令

语法:<%@     %>

  • include指令:把另外一个文件完全包含入当前文件中

 <%@ include file = " Filename" %>

  • page指令:通过设置内部的多个属性来定义整个页面的属性

 语法:<%@ page 属性1="属性值" 属性2="属性值1,属性值2"… 属性n="属性值n"%>

 常用属性:

 language:指定JSP页面使用的脚本语言,默认为Java。

 import:通过该属性来引用脚本语言中使用得到的类文件。

 contentType:用来指定JSP页面所采用的编码方式,默认为text/html。

 举例如下:

 

  • 注释:

 HTML的注释:<!-- 这是注释,但客户端可以查看到 -->

 JSP注释:<%-- 这也是注释,但客户端不能查看到 --%>

 在JSP脚本中注释: <% //单行注释 %>

          <% /*多行注释 */ %>

三、JSP脚本元素和内置对象

  • JSP脚本元素:用来嵌入Java代码的,主要用来实现页面的动态请求

(1)小脚本:在JSP页面里嵌入一段Java代码

 语法:<% Java代码 %>

 

(2)表达式:对数据的表示,系统将其作为一个值进行计算和显示

 语法:<% = Java表达式/变量 %>

 

(3)方法声明:在JSP页面中定义Java方法

 语法:< % ! Java 代码 %>

 

  •  JSP内置对象:

 JSP 内置对象是 Web 容器创建的一组对象

 JSP 内置对象是可以直接在JSP页面使用的对象 ,无需使用“new”获取实例

 JSP 内置对象的名称是 JSP 的保留字

(1)out对象:用于向客户端输出数据

 常用方法:

 print():在页面中打印出字符串信息

  

(2)request对象:主要用于处理客户端请求

 常用方法:

 

(3)response对象:用于响应客户请求并向客户端输出信息

 常用方法:

 void sendRedirect (String location):将请求重新定位到一个不同的URL

(4)session对象:用来存储有关用户会话的所有信息

 常用方法:

 void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到session中

 

 Object getAttribute(String key):根据名称去获取session中存放对象的值

 

访问控制就是基于session来完成的。

(5)application对象:类似于系统的“全局变量”,用于实现用户之间的数据共享

 常用方法:

 void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中

 

 Object getAttribute(String key):根据键去获取application中存放对象的值

 

四、JSP动作:

  • 包含动作 

   <jsp:include   page="被包含页面的路径" >  9
   用来包含指定的 jsp 或者  html 页面,这个包含动作 也叫动态包含。 它会先把被包含页面 
   转换成对应的servlet  然后 再进行包含。所以这样有两个servlet 产生。
  包含页面 还可以向被包含的页面传递参数数据。   使用 <jsp:param  name=""  value="" />


<jsp:include page="demo1.jsp">
    <jsp:param value="liweijie" name="teacherName"/>
</jsp:include>

  

  • 转发动作   
   <jsp:forward   转发动作 
   <jsp:param   name=""  value="" />

<jsp:forward page="demo6.jsp">
         <jsp:param value="gggg" name="username"/>
         <jsp:param value="27" name="age"/>
 </jsp:forward>
<body>
    //demo6文件
  <h1> demo6.jsp </h1>
  username:<%=request.getParameter("username") %>
  age:<%=request.getParameter("age") %>
</body>

静态包含命令:<%@include file="xxx.jsp" %>,主页面会把子页面的源代码包含进来,然后整体编译成servlet。

动态包含命令:<jsp:include page="xxx.jsp">,主页面和子页面分别单独编译成相应的servlet。

所以,当子页面的代码发生变化后,通过静态包含命令引入该子页面的主页面需要重新编译。而通过动态命令包含该子页面的主页面就不需要重新编译。举个例子,现在有三个页面,分别为A.jsp,B.jsp和C.jsp。

在A.jsp中,静态包含<%@include file="C.jsp" %>

 

在B.jsp中,动态包含<jsp:include page="C.jsp">

那么,当C.jsp被修改之后,就需要重新编译C.jsp和A.jsp,而B.jsp不需要重新编译。

因此,对于内容会经常发生变化的子页面,通常使用动态包含命令来引用。

jsp页面中,通常需要包含各种标签库,例如:

 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

 

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

 

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

 

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

 

为了管理的方便,我们把这部分代码抽出来,放到taglib.jsp中,其他的jsp页面包含taglib.jsp就可以了。这个时候需要特别注意的是,只能使用静态包含。原因是,每个jsp页面都用到了这些标签,如果使用动态包含,那么这些jsp页面和taglib.jsp是分别编译的,编译这些jsp页面的时候,编译器就不认识这些标签,只把这些标签当作文本来处理,虽然编译通过,但是会导致运行时错误。

### 回答1: JSP,即JavaServer Pages,是一种基于Java语言的动态网页技术。它可以实现在HTML页面中嵌入Java代码,并且与JavaBean、JSTL等技术一起来简化网页制作。 而Servlet,即Java Servlet,是Java语言实现的一种技术,也是Web开发的基础之一。它可以接收请求和响应数据,处理客户端和服务器之间的请求和响应。与JSP不同,Servlet将Java代码写在Servlet容器中,然后通过HTTP请求进行调用。 简单来说,JSP更多地用于视图层,Servlet更多地用于控制层。 ### 回答2: JSP(Java Server Pages)是一种用于开发动态网页的Java技术。它将Java代码嵌入到HTML页面中,使得可以动态地生成网页内容。JSP页面在服务器端被解析和编译为Java Servlet,然后由服务器执行,最终生成动态的HTML网页。 JSP和Servlet都属于Java Web开发的技术,但有一些区别: 1. 语法:JSP使用HTML作为主要的页面语言,通过<% %>标签将Java代码嵌入到HTML中。而Servlet是纯Java代码,没有HTML的限制。 2. 关注点:JSP主要关注于页面的视图层,用于展示动态内容。而Servlet主要关注于业务逻辑的处理,负责控制逻辑、数据库交互等后台操作。 3. 复用性:由于JSP中有大量的HTML和页面样式,因此JSP页面通常在视图层面上的复用性较差。而Servlet的复用性较好,可以通过返回不同的URL来处理不同的请求。 4. 可维护性:JSP的维护相对容易,因为它使用HTML作为主要语言,开发人员和设计人员可以分别处理页面和代码。而Servlet通常需要在Java代码中处理视图相关的逻辑,因此维护上的复杂度较高。 5. 异常处理:在JSP中,异常通常通过try-catch块捕获并显示错误页面。而Servlet可以使用Java异常处理机制,从而更好地控制异常情况和错误处理。 总的来说,JSP是Servlet的一种特殊形式,用于方便地开发和维护动态网页。JSP重点关注于视图层面的实现,而Servlet则更多地关注于实现后台的业务逻辑。 ### 回答3: JSP(Java Server Pages)是一种用于构建动态Web页面的Java技术。使用JSP,可以在HTML页面中嵌入Java代码,并且这些代码在服务器端被执行,生成最终的HTML页面并返回给客户端浏览器。 JSP和Servlet都是Java在Web开发中的重要组成部分,但它们有一些区别: 1. 编程模型:JSP是基于HTML的,在HTML页面中嵌入Java代码。而Servlet是完全用Java编写的,没有HTML的限制。 2. 语法:JSP采用类似HTML的标记语法,通过使用<% %>包裹Java代码。而Servlet则是纯Java代码,没有特定的标记。 3. 执行方式:JSP在服务器启动时会被编译成Servlet类,然后被服务器加载和执行。而Servlet直接通过Java编译器编译成字节码文件,然后被服务器加载和执行。 4. 可读性与维护性:由于JSP采用HTML的标记语法,所以对于前端开发者来说更易于理解和维护。而Servlet则需要熟悉Java的开发人员来编写和维护。 5. 用途:JSP主要用于页面展示和交互,对于前端页面的动态生成非常适用。而Servlet则更加灵活,可以实现更复杂的业务逻辑和控制。 总的来说,JSP适合于前端页面的展示和交互,而Servlet适合于后端的业务逻辑处理。实际开发中,JSP和Servlet可以结合使用,共同完成一个完整的Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值