JSP

一:jsp

1.什么是jsp?

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

注:
	a.因为虽然可以使用servlet生成动态页面,但是过于
繁琐(需要使用out.println输出),并且不利于页面的维护
(修改页面,就需要修改java代码),所以,sun才推出了jsp
规范。
	b.jsp是一个以".jsp"为后缀的文件(主要内容是html和少
量的java代码),容器会将jsp转换成一个对应的Servlet然后执行。
也就是说,jsp本质就是一个Servlet!

2.如何写一个jsp文件?

(1)html(css,javascript)

直接写即可。

(2)java代码

方式一: java代码片断

<% java代码	 %>

方式二: jsp表达式

<%= java表达式 %>

(3)隐含对象

a.什么是隐含对象?

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

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

容器会添加获得这些对象的代码。

(4)指令

a.什么是指令?

通过指令,告诉容器,在将jsp转换成Servlet时,做一些额外的
处理,比如导包。

b.语法

<%@ 指令名  属性=值 %>
注:
	如果有多个属性,使用空格隔开。

c.page指令

import属性:用来指定要导入的包名。
比如 <%@ page import="java.util.*,java.text.*"%>
注:
	导多个包,要使用","隔开。
contentType属性:设置response.setContentType方法的参数值。
pageEncoding属性:告诉容器,在读取jsp文件的内容时,使用指
	定的字符集来解码。

3.jsp是如何执行的?

阶段一: 容器要将jsp转换成一个对应的Servlet。

html(css,js) -----> 在service方法里面,使用out.write输出。
<%       %>  -----> 照搬到service方法里面。
<%=      %>  -----> 在service方法里,使用out.print输出。

阶段二:容器调用该Servlet。

容器会编译、然后实例化、初始化、调用service方法。

二:转发

1.什么是转发?

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

注:
	web组件:servlet或者jsp。
	常见的场景:一个Servlet获得数据之后,将数据转交给
	一个jsp来呈现。

2.如何转发?

step1.将数据绑订到request对象上。

request.setAttribute(String name,Object obj);
注(了解):
	map.put(name,obj)

step2.获得转发器。

RequestDispatcher rd = 
		request.getRequestDispatcher(String uri); 
注:
	uri是转发的目的地,通常是一个jsp的地址。
	RequestDispatcher是一个web组件通知容器去调用另外一个
	web组件的媒介。

step3.转发。

rd.forward(request,response);
注:
	jsp可以利用 Object request.getAttribute(String name);
	拿到之前绑订的数据。

3.特点

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

b.转发的目的地有限制,要求属于同一个web应用。

三:比较转发和重定向

a. 转发之后,浏览器地址栏的地址不变,重定向会变。

b. 转发的目的地有限制(要求属于同一个web应用),重定向无限制。

c. 转发所涉及的各个web组件可以共享同一个request对象,而重定向
不可以。

注:
	容器收到请求之后,会立即创建request和response;
当容器发送完响应之后,会立即销毁这两个对象。也就说,
request和response的生存时间是一次请求与响应期间存在。
	重定向是两次请求。
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务