您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

JSP技术(笔记)

来源:网络整理 浏览:164次 时间:2021-02-25
JSP技术: jsp概述、 jsp基本语法、jsp的隐式对象、jsp指令、 jsp动作元素、通过jsp做两个页面
  1. JSP概述:
    1.1什么是jsp:它的英文全称java server pages ,java服务端 页面,它是建立在servlet规范基础上的动态网页开发技术。

    • java服务端页面:在jsp上可以写java代码, 也可以写html标记, 它运行在服务器端。
    • jsp = java + html + jsp自身的一一些东西。
      为什么会产生jsp技术:
      因为在早期没有jsp时,需要servlet向页面写数据,比较麻烦,所以就产生了jsp技术,
      jsp最大的特点:可以非常简单的书写页面。
      jsp其实它的本质是serv1et.

    1.2编写第一个jsp文件: jsp生 成java文件,编译成class文件,存在tomcat服务 器的work目录。
    注意:修改jsp的默认编码格式: wind-------->perferee-----> 搜索jsp ---->选中编码进行修改

    1.3 JSP运行原理:
    1.通过浏览器首次访问jsp时
    2.JSP容器会生成对应的Servlet文件,也就是.java文件
    3.JSP容器,会把java文件编译对应的class文件
    4.JSP容器,会生成对应的servlet对象
    5.通过生成的servlet对象,去处理浏览器发送的请求,响应数据给浏览器。

  2. JSP基本语法
    1.1 JSP脚本元素
    在jsp页面书写java的三种形式:
    1.可以声明语句和方法
    2.可以书写java代码段
    3.可以书写表达式

    1. JSP Scriptlets: 对应的位置生成在_jspService方 法内部。
      在jsp页面里可以书写java代码片段,基本语法: <% java代码片段 %>
    2. JSP声明语句:对应的位置生成在了成员位置。
      在jsp里面可以书写变量和方法:基本语法:
      <%!
      定义变量或者方法
      %>
    3. JSP表达式:对应的位置生成在_jspService方法内部。
      在jsp页面,可以输入一个结果,基本语法: <%=表达式 %>,其实就等同于out.print();
      注意:表达式后面不能书写分号

    1.2 JSP注释:
    在jsp里面,可以书写htm1,可以书写java,可以书写jsp自身的一些内容。
    在jsp里面写注释三种形式:

    1. html注释: <!-- html注释-->:在任何地方都存在了。
      2.java注释:单行,多行,文档注释:它存在jsp页面,也存在java文件 里面,对应生成的html就消失了
    2. jsp注释: <%-- jsp注释-->:只存在jsp页面,在生成对应的java文件时,它就消失了。

3.JSP 指令: page指令、include指令、taglib指令
1.1 page指令
page指令的用途是设置与jsp页面相关的信息,比如说设置jsp页面的编码,jsp页 面的默认语言等
基本语法格式: <@ page属性-"属性值"属性-"属住值"属性-"属性值" %>
比如:
<%@ page language="java" contentType=" text/html; charset-UTF-8" pageEncoding="UTF-8"%>
常用属性:
language:默认语言java,也就是只有java-种语言。
pageEncoding:设置jsp的编码格式。_ 般情况下可以省略contentType这个属性。
session属性:值得类型是boolean,如果对应的值是true,在jsp页面可以使用session对象,反之就不能使用。
import属性:到包,和在java里面使用一样,如果想使用某个类,前提导入某个类的包名。
。。。。。。

1.2 include指令:| I    在jsp页面通常会需要显示其它页面的信息,所以可以通过这个include指令把其它页面包含过来。    基本语法: <%@ include file="被包含文件的url" %>    创建两个jsp页面: date. jsp页面,include. jsp页面.    使用jsp的include指令实现的包含,又称为静态包含,静态包含的特点:        1.把多个页面的内容,合并输出,比如把date.jsp 和include.jsp内容合并输出。        2.多个页面对应生成一个java文件,编译后,对应一个class文件。
  1. JSP隐式对象
    1.1 什么是隐式对象:在jsp页面里面,jsp提供了一-些对象,不用咱们自己创建,可以直接使用的对象。
    jsp常见的九大隐式对象:
    request: HttpServletRequest, 请求对象,它同时也是域对象,作用范围一次请求
    response :HttpServletResponse,响应对象
    session: HttpSession , 会话对象,它同时也是域对象,作用范围一次会话
    application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目
    config:ServletConfig,配置对象
    out: JspWriter ,其实和PrintWriter作用差不多。
    page:0bject , 代表当前jsp的页面对象
    pageContext:PageContext , jsp容器
    exception: Throwable,异常对象,用来捕获异常信息。
    只有当前jsp页面有isErrorPage="true"这个属性时,才能使用exception对象。

    1.2 out对象
    out对象在输出内容到网页上面去,最终是通过reponse缓冲区给输出。

    1.3 pageContext对象
    第一个功能:获取其它八个隐式对象

    1.获取请求对象: getRequest();
    2.获取响应对象: getResponse();

    1. 获取输出对象: getout();

      第二个功能:操作其它三个域对象: request. session. application.
      pageContext也是一个域对象: 作用范围在当前jsp页面. .
      操作其它三个域对象的方法:
      1.存值: setAttribute(String key,0bject obj,int scope);
      APPLICATION SCOPE : 对应的是application
      REQUEST
      SCOPE:对应的是request
      SESSION SCOPE: 对应的是session
      PAGE
      SCOPE: 对应的是自己pageContext
      2.取值: getAttr ibute(String key,int scope);

        结论:在pageContext域对 象使用findAttribute方法获取值,进行了全域查找,    查找的范围: pageContext --->request----->session----->applicat ion    首先找域作用范围小的对象,如果有值,获取到,如果域作用范围小的对象,不存在对应的值,就继续向下寻找。

    1.4 exception对象I
    它是用来捕获异常信息的。
    会用到两个属性:

    errorPage:属性对应的值,处理异常信息的页面,就是说在当前页面发生了异常,跳转到处理异常信息的页面
    比如:
    <%@ page language=" java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp"%>
    <!DOCTYPE html PUBLIC " -//M3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/htm14/loose.dtd">
    <html>
    <head>
    <meta http- equiv="Content-Type" content="text/html; charset=UTF-8" >
    <title>Insert title here</title>
    </head>
    <body>
    <%
    int a=3;
    int b=0;
    %>
    输出: <%=(a/b) %>
    isErrorPage: 属性对应的值是true或者false,如果为true,在当前页面可以使用exception对象

        比如:         <%@ page language-"java" contentType -"text/html; charset=UTF -8"        pageEncoding="UTF -8”isErrorPage="true"%>        <!DOCTYPE html PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/htm14/1oose.dtd">        <html>        <head>        <meta http- equiv="Content- Type" content=" text/html; charset=UTF-8">        <title>Insert title here</title>        </head>        <body>            输出异常信息: <%=exception.getMessage()>        </body>        </html>

5.JSP动作元素
1.1 <jsp: include>动作元素:动态包含
动态包含:把其它资源页面的内容,合并到当前要包含的页面,最后- -块输出。
基本语法格式: <jsp: include page="被包含页面的url" flush="true或者 false" ><jsp: include>
动态包含特点:多个页面的内容合并输出,多个jsp页面生成多个java文件,编译成多个class文件
静态包含特点:多个页面的内容合并输出,多个jsp页面最终生成一个java文件, 编译一个class文件。

1.2 <jsp: forward>动作元素:请求转发。    它的作用实现请求转发,效果等同于RequestDispathcer对象的forward方法。    基本语法格式: <jsp: forward page="转发页面的ur1地址"></jsp: forward>    转发页面的ur1地址:不需要携带项目名称,因为转发动作是服务器内部行为。

6.阶段案例:传智书城JSP页面
1.实现首页面
注意事项:1.在html网页不能书写与jsp相关的内容。
2.${pageContext . request. contextPath}:作用就是获取项目名称的路径,比如: /chapter06
设计首页面步骤:
1.创建一个index. jsp页面,在这里实现跳转到首页面的效果<jsp: forward page=" ”></jsp:forward>
2.修改client目录下面的所有html文件,修改成jsp,为了 就是jsp知识点。
3.把client目录下面的首页面分离出来几个jsp文件,分离的jsp文件比较通用性,在其它页面也能用到,
分离的目的:提高代码的复用性。
分离index. jsp页面:
第一部分:导航菜单,对应head.jsp
第二部分:搜索栏,对应menu_ search.jsp
第三部分:底部信息,对应foot.jsp
在index. jsp页面引入分离的文件: <%@ include file="" %>

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com