JavaWeb学习_JSP知识点(一)

一、JSP相关概念
1、概念
JSP(Java Server Pages)是一种简化的Servlet设计,在HTML标签中嵌套java代码,用以高效开发Web应用的动态网页。

2、作用
用来替换显示页面部分的servlet

3、JSP和servlet的区别
JSP一般作为请求发起页面和请求结束页面
Servlet作为请求中处理数据的环节

4、JSP中3种java脚本
<%…%>:java代码片段:用于定义局部变量和书写java语句,可以直接解析html代码
<%=…%>:java表达式,用于输出一条表达式或常量的结果。(相当于out.print)
<%!..%>:用来定义全局变量或定义方法

<%–…--%>:JSP的注释语句

5、JSP指令
1)<% @ page…%>:定义网页依赖的属性,比如脚本语言,error页面,缓存需求等。
相关属性:
language:jsp页面使用的脚本语言
import:导入相关类
pageEncoding:jsp文件自身编码,即jsp转java用的编码
contentType:浏览器解析jsp编码使用的编码
注:tomcat8前默认编码为ISO-8859-1

2)<% @include…%>:包含其他文件
3)<% @taglib…%>:引入标准库的定义(JSTL)

二、JSP九大内置对象

1、out
输出对象,是一个输出流,用来向浏览器输出信息,除了输出各种信息外还负责对缓冲区进行管理。

常用方法
print/println:输出数据
newLine:输出换行字符
flush:输出缓冲区数据
close:关闭输出流
clear:清楚缓冲区中的数据,但不输出到客户端
clearBuffer:清楚缓冲区中数据,输出到客户端
getBufferSzie:获得缓冲区大小
getRemaining:获得缓冲区中没有被占用的空间
isAutoFlush:是否为自动输出

2、requset
请求对象,存储了客户端向服务端发送的各种请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

常用方法
1)String getParameter(String name):根据请求的字段名key(即input标签的name属性)返回字段值value(input标签的value属性)。

2)String[] getParameterValues(String name):根据请求的字段名key返回字符串数组(一般对应check box)。

3)void setCharacterEncoding(“编码格式”):设置post提交方式的请求编码(对get没用)。

4)getRequestDispatcher(“转发地址”).forward(request,response):请求转发

5)servletContext getServerContext():获取项目的servletContext对象

6)void setAttribute(String key,Object value):以key-value的形式设置request域中属性值

7)Object getAttribute(String key):获取request域中的指定属性值

8)void removeAttribute(String key):删除request域中指定的属性

request对象演示
将用户注册的信息发送到注册成功的页面上
1)用户注册界面表单简单设置:

	<form action="welcome.jsp" method="post">
		用户名:<input type="text" name="uname"><br/>
		密码:<input type="password" name="upwd"><br/>
		<input type="submit" value="注册">
	</form>

2)设置欢迎页面,并获取注册信息

	<%
		String name = request.getParameter("uname");
		out.print("注册成功,欢迎您:" + name);
	%>

3、response
响应对象,用于对客户端的请求进行回应

常用方法
1)void addCookie(Cookie cookie):服务端向客户端增加Cookie对象

2)void sendRedirect(String location):把响应发送到另一个位置进行处理,即重定向

3)void setContentType(String type):设置响应的MIME类型

4)outputStream getOutputStream():返回到客户端的输出流对象

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

从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离 开这个服务器结束(或者超时),被称为一个会话。

当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户(一个浏览器),就需要创建session对象。

常用方法
1)String getId():获取sessionId
2)boolean isNew():判断是否是新用户(第一次访问)
3)void invalidate():使session失效(退出、注销)
4)void setAttribute(String name,Object):在session域中设置属性
5)Object getAttribute(String name):在session域中获得指定属性值
6)void removeAttribute(String name):删除指定名字的属性
7)void setMaxInactiveInterval(秒):设置最大有效非活动时间
8)int getMaxInactiveInterval():获得最大有效非活动时间

5、application
全局对象,代表当前的应用程序。存在于服务器的内存空间中。应用一旦启动便会自动生成一个application对象。如果应用没有被关闭,
此application对象便一直会存在。直到应用被关闭。

常用方法
1)String getRealPath(String paths):获取虚拟路径相对的绝对路径。
2)void setAttribute(String name,Object obj): 设定属性的属性值
3)Object getAttribute(String name):返回给定名的属性值
4)void removeAttribute(String name) :删除一属性及其属性值

6、config
表示当前jsp程序的配置信息

常用方法
ServletContext getServletContext():返回含有服务器相关信息的ServletContext对象

String getInitParameter(String name):返回初始化参数的值

Enumeration getInitParameterNames():返回Servlet初始化所需所有参数的枚举

7、page
当前jsp页面对象,类似与java编程中的this指针。

常用方法
1)String toString():将当前项目信息打印
2)Class getClass():返回当前Object类
3)int hashCode():返回此Object的hash码
4)boolean equals(Object obj):判断此Object是否与指定的Object对象相等

8、exception
exception对象表示jsp引擎在执行代码时抛出的异常,如果需要使用,则需要配置编译指令isErrorPage=true;
即页面指令中设置:<%@page isErrorPage=“true”%>

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

常用方法
1)HttpSession getSession():返回当前页中的HttpSession对象(session)
2)Object getPage():返回当前页的Object对象(page)
3)ServletRequest getRequest():返回当前页的ServletRequest对象(request)
4)ServletResponse getResponse():返回当前页的ServletResponse对象(response)
5) Exception getException():返回当前页的Exception对象(exception)
6)ServletConfig getServletConfig():返回当前页的ServletConfig对象(config)
7)ServletContext getServletContext():返回当前页的ServletContext对象(application)
8)void setAttribute(String name,Object attribute):设置属性及属性值
.9)void setAttribute(String name,Object obj,int scope):在指定范围内设置属性及属性值
10)public Object getAttribute(String name):获取属性的值
11)Object getAttribute(String name,int scope):在指定范围内取属性的值
12)void removeAttribute(String name) 删除某属性 (常用)

其中,pageContext、request、session、application又被称为四种范围对象

三、四种范围对象

范围有小到大:
pageContext:jsp页面容器,范围:当前页面有效,跳转页面后无效
request:请求对象,范围:同一次请求request有效(请求转发有效,重定向无效)
session:会话对象,范围:同一次会话有效(切换浏览器无效)
application:全局对象,范围:全局有效(整个项目运行期间都有效,关闭服务器或其他项目访问无效)

4个对象共有方法:
Object getAttribute(String name):根据属性名获得属性值
void setAttribute(String name,Object obj):设置属性,包括新增或修改
void removeAttribute(String name):根据属性名,删除属性名及属性值

重定向和请求转发的区别
1)地址栏是否改变:请求转发不改变,重定向改变
2)是否保留第一次请求时的数据:请求转发保留,重定向不保留
3)请求的次数:请求转发只有一次,重定向有两次
4)跳转发生的位置:请求转发在服务端,重定向是客户端发出的第二次跳转
5)总而言之,请求转发是服务器行为,即客户端向服务器发出请求,服务器将另一个页面发送给客户端。
而重定向是客户端行为,当客户端向服务器发出请求,服务器告诉客户端,需要去另一个地址请求,客户端则再向另一个地址再发出一个请求。
请求转发是一个request,而重定向是两个request

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值