NO.66 JSP基础应用

1.jsp是什么?

sun公司制订的一种服务器端动态页面技术规范。

  注:a.因为直接使用servlet虽然也可以生成动态页面,但是过于繁琐(需要用out.println),并且不利于维护(如果要修改页面,需要修改java代码),所以,sun才制订了jsp技术规范。

b.jsp是一个以.jsp为后缀的文件(主要由html和java代码构成),

容器会将该文件转换成一个对应的servlet然后执行。

2.如何写jsp?

step1. 添加一个以.jsp为后缀的文件。

step2. 在该文件里面,可以添加如下内容:

(1)html (css,js) :直接写。

(2)java代码:

  1)java代码片断:  <%  java代码  %>

  2)jsp表达式:    <%=  java表达式 %>

(3)隐含对象:

  1)什么是隐含对象?

  在jsp文件里面,可以直接使用的对象,比如out,request,response。

  2)为什么可以直接使用这些隐含对象?

  jsp会先转换成一个对应的servlet,容器会自动添加获得这些对象的代码。

(4)指令

  1)什么是指令?

  告诉容器,在将jsp文件转换成servlet时,做一些额外的处理,比如导包。

  2)语法

  <%@ 指令名 属性名=属性值  %>

  3)page指令

  import属性:导包,比如<%@ page import="java.util.*,java.text.*"%>

  contentType属性:设置response.setContentType的内容。

  pageEncoding属性:告诉容器,在读取jsp文件时,使用指定的字符集来解码。

NO.66 JSP基础应用_第1张图片

3.jsp是如何执行的?

step1. 容器要将jsp文件先转换成一个servlet

(.jsp文件 --->.java文件)

html(css,javascript)  service方法里面,使用out.write输出。

<%    %>              service方法里面,照搬。

<%=    %>            service方法里面,使用out.print输出。

step2. 容器调用该servlet。

4.转发

(1)什么是转发?

一个web组件将未完成的任务交给另外一个web组件继续做。

转发的本质: 一个web组件通知容器去调用另外一个web组件。

  注:a.web组件,指的是servlet或者jsp。

b.一个servlet将数据转发给一个jsp,由jsp将数据以合适的方式展现出来。

NO.66 JSP基础应用_第2张图片

(2)如何转发?

step1.将数据绑订到request。

request.setAttribute(String name,Object obj);

  注:Object request.getAttribute(String name);

step2.获得转发器。

RequestDispatcher rd =request.getRequestDispatcher(String url);

  注: url转发的目的地。

step3.转发

rd.forward(request,response);

(3)特点

a. 转发之后,浏览器地址栏的地址是不变的。

b. 转发目的地有限制(要求是同一个应用)。

代码示例:

NO.66 JSP基础应用_第3张图片
list部分的servlet代码
NO.66 JSP基础应用_第4张图片
转发到list部分的jsp页面进行处理

你可能感兴趣的:(NO.66 JSP基础应用)