jsp动态读取表格一行内容传到另一个页面_jsp技术

34afa7ed35ab155e142f0de6a32798d2.png

在学习了servlet之后,使用servlet进行页面展现,代码的书写过于麻烦。极大的影响了开发的效率,那么怎么样可以像写网络编程那样简单方便的写出页面代码呢?

这个时候我们就可以使用jsp技术了,那jsp又是什么呢?

Jsp全名是java server page中文名叫做java服务器页面,其根本就是一个简化的servlet。

jsp的特点是:本质上还是servlet;跨平台,一次编译,各处使用;组件跨平台;健壮和安全性;健壮是代码健壮比较强,就是逻辑很强,可以处理多种情况的发生 ;

jsp是怎么运行达到我们要的效果:

164970a5e7e7684f96c1004f4aacbe72.png

服务器在接受到请求之后会去找响应的文件,在项目目录下找jsp,找不到去服务器目录下找jsp,找到后,会使用调用jspserlet(jsp引擎);它可以将jsp文件转译为可执行的java文件,其实就是一个servlet文件(它的父类有service方法)。然后服务器执行相应的servlet。

这里面呢主要是转译后的文件继承了HTTPJspBase,它又继承自HttpServlet,它里面有service方法,经由服务器调用可以生成request与response来解析处理这次请求。

jsp文件大致是这样的

815cb55c5ea27fc00b54f723209d76ec.png

他们的含义语法是这样的

  1. page的作用
    1. 设置jsp转译时侯的一些配置信息,当然下列写的可以写到一行里面
  • <%@page language="java"%><%-- 声明转义得语言 --%>
  • <%@page import="java.util.*"%><%-- 声明转译时导入得Java包 --%>
  • <%@page pageEncoding="utf-8" %><%-- 两个作用,一个页面得编码,与jsp文件保存的的编码格式 --%>
  • <%@page contentType="text/html; charset=utf-8" %><%-- 设置数据的响应处理格式 --%>
  • <%@page session="true" %><%-- 设置session的状态,默认为true --%>
  • <%@page isErrorPage="true" %> <%-- 默认为false,true表示开启异常对象exception的使用 --%>
  • <%@page errorPage="error.jsp" %><%-- 指定当jsp运行出现异常错误时跳转指定的页面 --%>

2.局部代码块,全局代码

局部代码

  • 声明方式:<%局部代码块%>
  • 特点:
  • 使用局部代码块声明的java代码会被原样转译到——jspservice方法中,也就是局部代码。

全局代码

  • 声明方式:<!%局部代码块%>
  • 特点:
  • 全局代码块中声明的java代码,在被转译时,会被转移成jsp对应的java文件的全局代码
  • 作用:
  • 声明方法和全局变量

注意:

  • 使用全局代码块声明方法,使用局部代码块调用方法。
  • 注意:除了全局声明,其他的内容都是写在jspservice中

Java脚本段、表达式

  • 声明方式<%=变量名或者方法名()%>
  • 作用:将java代码的运算结果数据或者其他数据响应给浏览器
  • 注意:
  • 在表达式中不能以分号结尾

3.jsp的注释,jsp文件中可以写其他语言代码,那么他们的注释也可以写进去

  • HTML注释:会被转译,也会被响应给浏览器;但是浏览器不会执行
  • Css注释:会被转译,也会被响应给浏览器;但是浏览器不会执行
  • Js注释:会被转译,也会被响应给浏览器;但是浏览器不会执行
  • Java注释:会被转译,但不会执行
  • Jsp注释:不会被转译,也不会被执行

4.动态导入与静态动态导入

  • 问题:不同的jsp页面会使用相同的资源。如果将资源 在每个jsp野蛮都单独声明则会造成代码冗余量过高,不宜与代码的维护和升级。
  • 解决:使用静态引入和动态引入的方式
  • 使用:静态引入.
  1. <%@include file =“要引入的资源的相对路径”%>
  2. 特点:被引入的jsp与原来的jsp文件会合并为一个
  3. 注意,静态引入的相关jsp文件不能出现同一变量

动态引入

  • <jsp:include page="引入资源的相对路径"></jsp:include>
  • 特点:被引入的文件会被单独转译,原有jsp文件会调用被引入jsp文件。
  • 注意:动态引入的相关jsp文件可以声明同名变量当引入jsp文件中不需要写入java代码可以使用静态引用,否则适合动态引入

作用:实现资源的共享

5.jsp的forward标签

  • 问题:不同的jsp在处理请求的时,有可能会将当前的请求转发给另外的jsp进行处理
  • 解决:使用forward调用其他jsp的指令
  • 声明方式:<jsp:forward page="转入资源的相对路径" ></jsp:forward>
  • 特点: 从当前 jsp跳转到另一个jsp页面。
  • 注意:forward标签中除了<jsp:param value="" name=""/>(声明转发的附带数据)外,不能有其他任何的内容,否则将会报错

6.Jsp内置对象的学习

  • 内置对象:jsp在转译成其对应的java文件(也就是servlet)时,会默认在_jspservice中声明创建几个对象
  • 特点,我们可以在jsp页面中声明java局部代码块中直接使用内置对象
  • 对像:
  1. Request:封存了请求的相关数据,由服务器创建
  2. Session:解决了同一用户不同请求之间数据共享的问题
  3. Application:servletContext对象,解决了不同用户之间数据共享问题
  4. Out:响应数据的对象,较于response对象,out对象底层使用了缓冲区,他的效率高于response
  5. Response:响应对象
  6. Page:指当前在执行的jsp转译的java文件的对象
  7. Cpnfig:servletConfig对象:使用此对象完成数据的初始化
  8. exception:jsp页面的异常对象,封存了异常信息
  9. pageContext:页面上下文对象,此对象封存了另外8个对象
    1. 一个jsp页面一个pageContext对象。pageContext对象每次请求都会被重新创建。作用域:当前jsp页面
注意:对象的名字必须是转译好的java文件中声明的对象名

7。Servlet请求转发和重新定向jsp页面及相对路径

  • resp.sendRedirect("jsp文件名/相对路径");
  • req.getRequestDispatcher("jsp文件名/相对路径").forward(req, resp);
  • 服务器根目录:webapps的目录路径
  • 项目根目录:webapps的目录路径下的项目目录
  • 注意;都是写的相对路径
  • 绝对路径:
  • 重定向:第一个斜杠叫做服务器根目录
  • resp.sendRedirect("/虚拟项目名/资源路径");
  • 请求转发:/第一个斜杠叫做项目根目录
  • req.getRequestDispatcher("/资源路径").forward(req, resp);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值