2019-07-26

JSP的学习

1.什么是JSP?

JSP全名为 Java Server Pages,中文名叫java服务器页面,其根本是一个简化的 Servlet设计,它 是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准.

2.为什么学JSP?

在学习了 Servlet 之后,使用 Servlet 进行页面的展现,代码书写过于麻烦。极大的影响了开发的效率,JSP中可以支持java,html,css,js语言的直接编写。效率高。

3.JSP的作用?

解决了在java书写代码麻烦额问题,提高书写的效率。

4.JSP的特点?

1)本质上还是Servlet

2)跨平台,一次编写处处运行

3)组件跨平台

4)健壮性和安全性

5.Jsp 的访问原理:

 浏览器发起请求,请求 JSP,请求被Tomcat服务器接收,执行JspServlet 将请求的 JSP 文件转义成为对应的 java 文件(也是Servlet),然后执行转义好的 java文件。 如下图所示:


6.Jsp 的语法和指令:

1)JSP的page指令

page作用:设置jsp转译的时候的一些配置信息。

属性及作用:

a.language="java"    声明转译的语言

b. pageEncoding="utf-8"    设置jsp的数据保存的编码格式

c. import="java.util.*     声明转译时导入的java包文件

d.contentType="text/html; charset=utf-8  设置数据的响应编码格式

e. session="false"        设置session的状态,默认为true,也就转译的servlet文件中默认session是开启的,使用false关闭

f. isErrorPage="false"     默认为false ture表示开启exception异常对象的使用

g. errorPage="error.jsp"   设置当jsp运行出现异常错误时跳转指定的页面

2)Jsp的局部代码块的使用?

<% 局部代码块%>

3)Jsp的全局代码块的使用?

<%! 全局代码块%>

局部代码块声明和全局代码块声明的区别是?

使用局部代码块声明的java代码会被原样转译到_jspService方法中。

全局代码块中声明的java代码,在被转译时,会转译成jsp对应的java文件的全局的代码,即为成员变量和成员方法。

使用全局代码块声明方法,使用局部代码块调用方法。

4)Jsp的脚本段

<%= 脚本语句%>

5)Jsp的静态引入(JSP的include指令)

<%@include file=” 要引入的资源的相对路径”%>

特点:

被引入的jsp文件和原有jsp文件被转译成一个java文件使用。

注意:静态引入的相关jsp文件中不能声明同名变量。

6)Jsp的动态引入

<jsp:includepage=” 要引入的资源的相对路径”>

特点:

被引入的文件会被单独转译,原有jsp文件会调用被引入的jsp文件。

注意:动态引入的相关jsp文件中可以声明同名变量。

7)页面转发(forword标签)

作用:

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

注意:

forward标签中除了<jsp:param value="" name=""/>子标签以外不能出现其他内容,否则会报错。

8)Jsp的注释

html:<!--注释-->   会被转译也会被响应给浏览器,但是浏览器不会执行

css:/* 注释*/    会被转译也会被响应给浏览器,但是浏览器不会执行

js:// 注释   会被转译也会被响应给浏览器,但是浏览器不会执行

java://  会被转译,但不会执行

jsp:<%--注释--%>  注释内容不会被转译,也不会被执行

7.Jsp 的9个内置对象?四个作用域对象?

7.1、Jsp 的9个内置对象

1)pageContext:页面上下文对象,此对象封存了另外8个对象。

注意:一个jsp页面一个pageContext对象,pageContext对象每次请求都会重新创建。

作用域:当前jsp页面

2)request:封存了请求相关数据,由服务器创建

3)session:解决了同一个不同请求之间的数据共享问题

4)application:ServletContext对象,解决了不同用户之间的数据共享问题

5)out:响应数据的对象,交于response对象,out对象底层使用了缓冲区。out对象的效率高于response

6)response:响应对象,设置编码格式

7)page:代表当前被执行的jsp转译的java文件的对象(this)

8)config:ServletConfig对象,使用此对象完成资源的初始化。

9)exception:jsp页面的异常对象,封存了异常信息。

7.2、四个作用域对象?


8.jsp和Servlet的职责讲解

JSP 负责页面展现,Servlet 负责业务逻辑处理。

9.请求转发和重定向jsp页面以及相对路径讲解

注意:../  为退出当前文件到上一层。

10.Servlet中请求转发和重定向的绝对路径

10.1.Servlet中请求转发和重定向的相对路径可能发生的问题?

在jsp页面中进行资源之间的跳转时,如果书写的是相对路径这样会造成如果当前文件的路径发生变更,从当前路径查找资源的相对路径都要重新进行书写。

相对路径的定义:相对路径指的是从当前请求路径查找jsp所经过的路径。

10.2  Servlet中的重定向和请求转发的绝对路径:

重定向:

* 在重定向中的路径中第一个/表示服务器根目录。

* 示例:

* resp.sendRedirect("/虚拟项目名/资源路径");//重定向jsp页面

*  请求转发:

*  在请求转发中第一个/表示项目根目录

*  示例:

*  req.getRequestDispatcher("/资源路径").forward(req, resp);//请求转发到jsp页面

11.jsp中的绝对路径和basePath方式

11.1 、 JSP中的决对路径:

在jsp中路径中的第一个/表示服务器根目录。

11.2basePath方式:

在Myeclipse中创建的jsp页面会自动生成路径处理代码basePath

代码:

而basePath的值为当前项目根目录,并且在head标签中使用了<base href="<%=basePath%>">

相当于将当前页面的资源全部默认定位为从项目根目录开始查找,我们就不需要写第一个/了

注意:

basePath方式和添加/方法只能二选一。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,852评论 6 72
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 1,089评论 0 0
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    91数据阅读 3,633评论 0 13
  • Jsp技术总结 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样...
    91数据阅读 1,792评论 0 18
  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,313评论 1 18

友情链接更多精彩内容