JSP实现数据传递和保存

JSP实现数据传递和保存

本课目标

掌握request和response的使用

解决页面中出现的中文乱码

掌握转发和重定向的区

别掌握session存取数据

理解cookie

理解application

1.表单提交数据

请求对象:request

public String getParameter(String name)

示例

HTML代码:

JSP代码:String userName = request.getParameter(“userName”);

get与post区别:

在这里插入图片描述

request对象常用方法:

方法名称说明
String getParameter(String name)根据表单组件名称获取提交数据
String[ ] getParameterValues(String name)获取表单组件对应多个值时的请求数据
void setCharacterEncoding(String charset)指定每个请求的编码
RequestDispatcher getRequestDispatcher(String path)返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求

2.中文乱码

JSP中默认使用的字符编码方式:iso-8859-1,不支持中文

常见的支持中文的编码方式

编码方式收录的字符
gb2312常用简体汉字
gbk简体和繁体汉字
utf-8所有国家需要的字符
解决中文乱码

设置请求和响应的编码方式

request.setCharacterEncoding(“utf-8”);

response.setCharacterEncoding(“utf-8”);

<%@ page language=“java” contentType=“text/html; charset=utf-8”%>

get请求出现乱码

治标的方法:new String( s.getBytes(“iso-8859-1”), “utf-8” );

治本的方法:配置tomcat\conf\server.xml文件

3.转发和重定向

转发

RequestDispatcher对象

forward()方法

1、request.getRequestDispatcher("url").forward(request, response)
2、<jsp:forward page="url" />

重定向

将用户请求重新定位到一个新的URL

response.sendRedirect("url")
转发与重定向的区别-1

转发的工作方式

在这里插入图片描述

重定向的工作方式

在这里插入图片描述

转发与重定向的区别

比较项转发重定向
URL变化
重新发出请求不会
是否携带请求
目标URL要求仅本Web应用任意URL

4.session的工作方式

每个session都有一个唯一的sessionid

public String getId();

session.getId();

会话的清除和过期

(session的数据是在服务器端的,服务器保存的会话数据量会越来越大,从而导致性能问题)

若没有清理机制,会导致性能问题或服务器崩溃

程序主动清除session数据

设置会话失效:session.invalidate();

移除会话的一个属性

public void removeAttribute(String name); 
用法:session.removeAttribute("userName");

服务器主动清除长时间没有再次发出请求的session

设置会话过期时间

方法一:

public void setMaxInactiveInterval(int interval); 

方法二:

<session-config>
       <session-timeout>30</session-timeout>
</session-config>

5.使用cookie自动填写用户名

cookie以文件方式保存数据

添加数据

public void addCookie(Cookie cookie)

获取数据

public Cookie[] getCookies()

设置有效期

public void setMaxAge(int expiry)

用户可以禁用cookie

6.application实现计数器

分析

每个用户都需要使用访问次数

application可在整个项目中共享使用数据

使用application实现计数器

每次访问该页面,计数器加1

解决方法

public void setAttribute(String name, Object object)
public Object getAttribute(String name)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值