JSP学习

JSP

全名Java Server Page,中文名java服务器页面。其根本是一个简化的servlet设计。动态网页技术标准。

特点:

本质上还是Servlet;跨平台,一次编写处处运行;组件跨平台;健壮性和安全性。

JSP的访问原理

浏览器发送请求,请求JSP,请求被Tomcat服务器接收,执行。JspServlet将请求的JSP文件转译成为对应的java文件(也是servlet),然后执行转译好的java文件。

Jsp的三种注释

  1. 前端语言注释:会被转译,也会被发送,但不会被浏览器执行。<!--    -->
  2. java语言注释:会被转译,但不会被servlet执行。
  3. Jsp注释:不会被转译。<%--     --%>

JSP的语法和指令

page指令:<%@page 属性名=“属性值” 属性名=“属性值” ... %>

  • language:声明jsp要被转译的语言。
  • import:声明转译的java文件要导入的包,不同的包使用逗号隔开。
  • pageEncoding:设置jsp文件的数据编码格式。
  • contentType="text/html;charset=utf-8":设置jsp数据响应给浏览器时,浏览器的解析和编码格式。
  • session:设置转译的servlet中是否开启session支持,默认开启。
  • errorPage:设置jsp运行错误跳转的页面。
  • extends:设置jsp转译的java文件要继承的父类(包名+类名)
  • 作用:配置jsp文件的转译相关参数。

 Jsp的局部代码块:

  • 特点:局部代码块中声明的java代码会被原样转译到jsp对应的servlet类的_JspService方法中。代码块中声明的变量都是局部变量。
  • 使用:<%  java代码 %>
  • 缺点:使用局部代码块在jsp中进行逻辑判断,书写麻烦,阅读困难。
  • 开发:servlet进行请求逻辑处理,使用jsp进行页面展示。

Jsp的全局代码块:

  •  特点:声明的java代码作为全局代码转译到对应的servlet类中。
  • 使用:<%! 全局代码块 %>
  • 注意:全局代码块声明的代码,需要使用局部代码块调用。

Jsp的脚本段语句:

  •  特点:帮助我们快速的获取变量或者方法的返回值作为数据响应给浏览器。
  • 使用:<%=变量名或者方法%>
  • 注意:不要在变量名或者方法后使用分号。
  • 位置:除jsp语法要求以外的任何位置。

Jsp的静态引入:

<%@include file="要引入的JSP文件的相对路径" %>

  • 特点:会将引入的jsp文件和当前jsp文件转译成一个java(servlet)文件使用,在网页中也就显示合并后的显示效果。
  • 注意:静态引入的jsp文件不会单独转译成一个java文件,当前文件和静态引入的jsp文件中不能使用java代码块声明同名变量。

Jsp的动态引入:

 <jsp:include page="要引入的JSP文件的相对路径"></jsp:include>

  • 特点:会将引入的jsp文件单独转译,在当前文件转译好的java文件中调用引入的jsp文件的转译文件。在网页中显示合并后的效果。
  • 注意:动态引入允许文件中声明同名变量。

两种引入的优点:降低jsp代码的冗余,便于维护升级。

JSP的转发标签forward:

  • 使用:<jsp:forward page="要转发的jsp文件的先对路径"></jsp:forward>
  • 特点:一次请求,地址栏信息不变。
  • 注意:在转发标签的两个标签中间除了写<jsp:param name="str" value="aaa"/>子标签不会报错,其他任意字符都会报错。其中name属性为附带的数据键名,value为附带的数据内容。(会将数据以?的形式拼接在转发路径的后面)

 Jsp的九大内置对现象:

内置对象:jsp文件在转译成其对应的Servlet文件的时候自动生成并声明的对象。我们在jsp页面中直接使用即可。

注意:内置对象在jsp页面中使用,使用局部代码块或者脚本段语句来使用。不能使用在全局代码块中使用。

五个常用对象:

  • pageContext:页面上下文对象,封存了其它内置对象。封存了当前jsp的运行信息。
    • 注意:每个Jsp文件单独使用一个PageContext对象。
    • 作用域:当前页面。
  • request:封存当前请求数据的对象。由tomcat服务器创建。
    • 作用域:一次请求。
  • session:存储用户不同请求的共享数据。
    • 作用域:一次会话。
  • application:也就是ServletContext对象,一个项目只有一个,存储用户共享数据的对象,以及完成其他操作。
    • 作用域:项目内。
  • respond:响应对象,用来响应请求处理结果给浏览器对象,设置响应头,重定向。

JSP的路径:

 在jsp中资源路径可以使用相对路径完成跳转,但是存在一些问题:

  • 资源的文职不可以随意更改。
  • 需要使用../进行文件夹的跳出,使用比较麻烦。

使用绝对路径:/虚拟项目名/项目资源路径:eg:

<a href="/jsp/jspPro.jsp">...</a>
<a href="/jsp/a/a.jsp">...</a>

 注意:在jsp中资环的第一个"/" 表示的是服务器根目录,相当于localhost:8080

使用jsp中自带的全局路径声明:

<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+...
%>

<base href="<%=basePath>">

作用:给资源前面添加项目路径:http://127.0.0.1:8080/虚拟项目名/.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值