JavaWeb之JSP(上)

前言

1. 什么是JSP

2. JSP为什么会出现

3.JSP中如何嵌套java代码

1.基本使用

2.page指令:

3.jsp中的注释

4. JSP的原理

5. JSP的内置对象

1、request对象

2、response对象

3、session对象

4、application对象

5、out 对象

6、pageContext 对象

7、config 对象

8、page 对象

9、exception 对象

(1)先在可能发生错误的页面中添加errorPage属性:

(2) 在error.jsp页面中设置isErrorPage="true" 的属性

6.jsp的作用域:


前言

 回顾一下学习并对JavaWeb的学习过程中对笔记总结进行记录,同时将自己学习过程中的理解加入其中,方便自己进行后续的学习和回顾

1. 什么是JSP

        JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

*.html 静态页面(包含固定的页面内容)

*.jsp 动态页面(页面数据可以动态更新,支持嵌套java代码和html代码)

2. JSP为什么会出现

1.servlet展示信息的不方便,引入了JSP。
2.JSP本质上也是一个servlet!!!!!!
3.JSP就是在HTML页面中嵌入了java代码。

3.JSP中如何嵌套java代码

1.基本使用

小脚本(<% java代码%>)

        在jsp中变达式标签一般是最常用的,其他部分会写到后端中,但是前端需要动态引入的话需要借助标签来完成在jsp页面

声明标签     <%!变量或者方法声明%> 
表达式标签    <%= 表达式%> 在页面上显示的效果
程序代码标签  <%java代码%>  页面上动态展示内容

2.page指令:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 <body>
    <%! int i=10;%><!--成员变量-->
    <%! public void show(){}%>  <!--成员方法-->
    <%=i%> <!--输出变量值-->
  </body>

如果把一个数据存在request域中,取值操作如下:

3.jsp中的注释

<!-- html注释内容,查看源码时能看到 -->
<%-- jsp注释,查看页面源码时看不到 --%>

4. JSP的原理

        当浏览器访问http://localhost:8080/day9_1/index.jsp。服务器发现后缀为.jsp,它会根据路径找到index.jsp文件,会将index.jsp翻译成index_jsp.java文件,对这个java文件进行编译,产生一个index_jsp.class文件,将class文件加载运行。将JSP翻译成java文件,它是将JSP中的所有的HTML代码通过流进行输出,也就是说最终翻译成class,被虚拟机加载,它本质是servlet,它就会往回响应,响应回去就是把JSP中的HTML代码以流的方式写回浏览器。所以在JSP中展示出了HTML代码

5. JSP的内置对象

        JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception

1、request对象

   request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

2、response对象

   response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。所属类型:HttpServletResponse

3、session对象

   session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。HttpSession

4、application对象

  application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量” ServletContext

区别:

request:单次请求

session:浏览器访问期间(会话期间)

application:服务器启动期间,所存的数据可以跨浏览器

5、out 对象

   out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

示例:

out.print("<script type='text/javascript'>alert('用户名不存在');location.href='index.jsp'</script>");

6、pageContext 对象

    pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

7、config 对象

  config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

//将image路径转换成服务器端的路径
String url= config.getServletContext().getRealPath("/image");
<h1>url=<%=url %></h1>

8、page 对象

   page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

9、exception 对象

  exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

(1)先在可能发生错误的页面中添加errorPage属性:

<%@ page pageEncoding="utf-8"
        errorPage="error.jsp"
         contentType="text/html;charset=UTF-8" language="java" %>

(2) 在error.jsp页面中设置isErrorPage="true" 的属性

(使用exception对象之前,需要先将当前页面设置成错误页面)

<%@ page language="java" isErrorPage="true" import="java.util.*" pageEncoding="UTF-8"%>

6.jsp的作用域:

下面分别代表这对应的单词的意思

pageContext -> request -> session -> application

当前页面 单次请求有效 当前会话期间 服务器运行期间有效

按照我个人的用法来说,分别代表着本页面有效

        本次请求中有效,在没有退出之前,设置的session没有过期前的操作都算有效,在服务器没有关闭状态下都一直存在.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XError_xiaoyu

你的支持,使我更好的创作

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值