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文件时,使用指定的字符集来解码。
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将数据以合适的方式展现出来。
(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. 转发目的地有限制(要求是同一个应用)。
代码示例:
list部分的servlet代码 转发到list部分的jsp页面进行处理
网友评论