使用JSP/Servlet技术开发新闻发布系统、第二章

JSP数据交互(一)

一:什么是JSP内置对象

就是在编写JSP页面时,不需做任何声明就可以直接使用的对象
1、为什么JSP的内置对象不需要实例化
所谓内置对象就是由Web容器加载的一组Servlet API的实例,这些实例由JSP规范进行了默认的初始化操作,可以直接在JSP中使用。特备注意的是,JSP的内置对象名称均是JSP的保留字,不得当作自定义变量名使用。
在这里插入图片描述
2、JSP内置对象out
out对象用于向浏览器输出数据,其常用的方法是print(),该方法用于在页面中显示字符串信息。
3、JSP内置对象request
用于处理请求数据
(1)request的作用
在这里插入图片描述

(2)request的常用方法
在这里插入图片描述
4、提交表单中有中文字符解决方案
(1)以POST方法提交
在这里插入图片描述

在获取请求参数值之前,调用setCharacter(“UTF-8”)方法,将请求的解码方式设定为“UTF-8”。
(2)以GET方法提交
在这里插入图片描述

示例代码:

String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1","UTF-8"));

(3)在Tomact中设置字符集
在这里插入图片描述

找到Tomcat目录结构\conf\server.xml文件,在元素中添加URIEncoding属性,将它的值设置为“UTF-8”。
如果在Tomcat中设置了字符集编码,对于浏览器以GET方式提交的数据则无需再JSP页面中再进行重新编码处理(浏览器需要以UTF-8编码发送URL)。

5、JSP内置对象response
实现用户相应
(1)response对象
在这里插入图片描述

可用于设置响应参数及取得响应流等。
(2)response常用方法
在这里插入图片描述
(3)转发与重定向
①什么是转发
在这里插入图片描述

当客户端发送一个请求到服务器后,Web服务器在容器内部完成请求跳转,然后将最终的结果发送给浏览器,整个过程都是在容器内部完成的。而对应到客户端,无论服务器内部如何处理,作为浏览器都只是提交了一个请求,因而客户端的URL地址不会发生改变。
转发可以在多个页面交互过程中实现请求数据的共享。
②什么是重定向
客户端重新向服务器请求一个地址连接,由于是发送新的请求,因而上次请求中的数据将随之丢失,这种行为称为重定向。由于服务器重新定向了URL,因而在客户端浏览器中显示的是新的URL地址,所以重定向可以理解为浏览器至少提交了两次请求。
③转发和重定向的区别
转发过程:Web服务器内部将一个request请求的处理权交给另一个资源,属于同一个访问请求和响应过程,所以request对象的信息不会丢失。
转发是在服务器端发挥作用,通过RequestDispatcher对象的forward()方法将提交信息在多个页面之间进行传递。
转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址。
重定向过程:Web服务器向浏览器返回一个响应,浏览器接受此响应后再发送一个新的http请求到服务器,这属于两次不同的请求,则上一次请求的request信息将丢失。
重定向是在客户端发挥作用,通过请求新的地址实现页面转向。其通过浏览器重新请求地址,在地址栏中可以显示转向后的地址。
在这里插入图片描述

④传递
如果需要在重定向的情况下将简单数据(值类型、字符串)传递至目标页面,可以使用查询字符串(Query String)实现。
语法:

response.sendRedirect("xxx.jsp?a="+b);

查询字符串以名值对方式储存数据,通过"?“链接在URL地址后面,多个名值对可用”&"进行分割。
6、JSP内置对象session
(1)什么是会话
就Web开发来说,一个会话就是在一段时间内,一个用户与Web服务器的一连串相关的交互过程,它可以包含浏览器与服务器之间的多次请求、响应过程。
会话机制是一种服务器端的机制,当用户向服务器发送第一次请求时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束。
(2)session对象
允许用户访问会话的相关信息,以及绑定数据到会话。
在这里插入图片描述
(3)session与窗口的关系
在这里插入图片描述
(4)会话的失效
会话失效的方式:一种是会话超时,另一种是手动调用方法设置失效。
会话超时:
指两次请求的时间间隔超过了服务器允许的最大时间间隔。

  • 通过session对象的setMaxInactiveInterval()方法设置
    语法:
<%
	session.setAttribute("Login","admin");
	//参数600的单位是秒,表示在10分钟后session对象失效
	session.setMaxInactiveInterval(600);
	response.sendRedirect("admin.jsp");
%>
  • 在项目的web.xml中设置代码段。
<session-config>
	<session-timeout>10</session-timeout>
</session-config>

单位是分钟。设置为0或为负数,表示永不超时。

  • 在应用服务器中设置,在Tomcat目录/conf/web.xml中找到元素,其中元素中的30就是默认时间,单位是分钟,可以修改其值。

手动调用方法设置失效是通过调用session对象的invalidate()方法实现的,主要应用于用户注销的场合,如果只是想清空会话中绑定的某个数据对象,则可以调用session.removeAttribute(String key)方法,将指定的对象从会话中清除,而会话仍然有效。
(5)include指令
语法:

<%@ include file="应用文件路径" %>

include指令表示,在JSP编译时插入一个包含文本或代码的文件,这个包含的过程是静态的。包含的文件可以是JSP页面、HTML网页、文本文件等。include指令只有一个file属性,表示被包含的文件路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值