JavaWeb学习笔记-JSP01

JavaWeb学习笔记-JSP01

开始JSP学习了,虽然看很多大佬推荐不要学习JSP,耦合性太强了已经过时了之类的,但是出发点在于基础,所以为了更好的了解jevaWeb还是要进行JSP的学习的,以上。


JSP

JSP的page指令

  1. page语法
<%@page 键名="值"%>
  1. 各种键值对
    language="语言名":声明转编译的语言,我们写java就对了
    import="地址+包名":声明转译时候导入的java包文件,多个包用逗号隔开
    pageEncoding="编码":设置JSP的数据保存的编码格式
    contentType="text/html;charset=utf-8":设置数据响应编码格式,其实pageEncoding也吧本设置做了,所以只需要写一句pageEncoding就好了。
    session="boolean":设置session是否加载,默认session是开启的,写false就是关闭session开启
    isErrorPage="boolean":默认为false,true表示带起异常对象的使用
    errorPage="另一个jsp的路径":指定当JSP运行出现异常错误时跳转指定的页面
  1. 多个page指令可以写在一行内用空格隔开
  1. page指令的作用,设置jsp转译的时候的一些配置信息

JSP的各种代码块

局部代码块

  1. 语法
<%
java代码
%>
  1. 特点:使用局部代码块声明的java代码会被原样转译到_jspService方法中。也就是局部代码

全局代码块

  1. 语法
<%!
java代码
可以声明方法
%>
  1. 特点:代码放在全局里,可以声明方法,如果要调用声明的方法直接写在局部代码块里就可以了

脚本段语句/表达式

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

JSP注释

HTML注释:会被转译也会被响应给浏览器,但是浏览器不会执行
CSS注释:/* */css注释会被转译也会被响应
JS注释: // js注释注释会被转译也会被响应
java注释:会被转译不会被响应
JSP注释:<%--注释内容--%>不会被转译,也不会被响应

JSP动态/静态引入

问题

发现,不同的jsp页面会使用相同的资源。如果将资源在每个jsp页面都单独声明则会造成代码冗余量过高,不易于代码的维护和升级。

解决

使用动态或者静态引入的方式减小冗余

使用

静态引入

语法
<%@include file="要引入的资源的相对路径"%>
特点:被进入的jsp文件和源有的jsp文件被转译成一个java文件执行
注意:静态引入的相关jsp文件中不能声明同名变量

动态引入

语法:
<jsp:include page="static.jsp"></jsp:include>
特点:
被引入的文件会被单独转译,源有jsp文件会被用被引入的jsp文件
注意:动态引入的相关jsp文件可以声明同名变量


15/3/2020


JSP的forward动作指令

问题

不同的jsp在处理请求时,有可能会将当前的请求转发给另外的jsp进行处理。

解决

使用forward动作指令:相当于servlet中的重定向(个人理解)

语法

<jsp:forward page="要转发的jsp相对路径"></jsp:forward>

特点

从当前jsp跳转到另外一个jsp页面。

注意

格式要求很严格,forward标签中
除了<jsp:param vlue="" name="">param:声明转发的携带数据
获取param设置的携带数据:request.getParameter("键名")
只要出现其他字符就会报错(包括空格)

JSP的内置对象

内置对象:

JSP在转译成对应的java文件(也就是Servlet)的时候,会默认帮我们在_jspservice创建中创建几个对象

特点:

我们可以在jsp页面中声明java局部代码快,在代码块中直接使用内置对象。
注意:对象名字必须和转译好的java文件设置的名字相统一

对象

pageContext:页面上下文对象,此对象封存了另外8个对象,每个jsp页面只有一个pageContext对象,pageContext每次重新请求都会创建一个新的该对象
requset:封存了请求相关数据,由服务器创建
session:解决了不同请求之间的数据共享问题
application:SelectContext对象,解决不同用户之间的数据共享
out:响应数据的对象,交于response对象,out对象底层使用了缓充区,效率高
respose:响应对象
page:代表房前被执行的jsp转译java文件的对象
config:ServletConfig对象,使用对象完成资源的初始化
exception:异常对象

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.byfree.top/archives/jsp01