jsp基础知识2

来源:互联网 发布:淘宝上稀奇古怪的东西 编辑:程序博客网 时间:2024/05/29 03:23


设置请求和响应的编码方式
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文件
URIEncoding="UTF-8"
useBodyEncodingForURI=“true"

<Connector connectionTimeout="20000" port="8080"
protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>


演示示例 :解决中文乱码与页面跳转





session
语法 public void setAttribute(String name, Object value);
用法: session.setAttribute("userName", "张三丰");
public Object getAttribute(String name);
用法: String userName=(String)session.getAttribute("userName");

每个session都有一个唯一的sessionid
session.getId();
public String getId();
若没有清理机制,会导致性能问题或服务器崩溃
程序主动清除session数据
服务器主动清除长时间没有再次发出请求的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>

cookie以文件方式保存数据
添加数据
public void addCookie(Cookie cookie)
获取数据
public Cookie[] getCookies()
设置有效期
public void setMaxAge(int expiry)
用户可以禁用cookie

分析
每个用户都需要使用访问次数
application可在整个项目中共享使用数据
使用application实现计数器
每次访问该页面,计数器加1
解决方法
public void setAttribute(String name, Object
object)
public Object getAttribute(String name)


request、 session、 application
相同点
都可以存储属性
不同点
request中存储的数据仅在一个请求中可用
session中存储的数据在一个会话的有效期内可用
application中存储的数据在整个Web项目中可用



0 0