servlet2
线程安全指标
是否共享数据
多线程对共享数据写操作
servlet不要创建成员变量
serlvet 是单实例的 所以成员变量就会扎起多线程共享
如果service()方法中 对成员变量有直接写操作 不安全
serlvet 非特殊情况不要枷锁
域对象是空的map(在程序运行时共享数据使用)
域对象.setAttribute("key",value);
域对象.getAttribute("key")
域的生效时机和失效实际
request
1,当请求到servlet时,服务会自动创建request域
2.响应式 会自动贤惠req域
3.在一次请求见有限 每次请求都会重创建
需要配合使用请求转发 在多个serlvet共享
会话域
可以在多次请求间生效
对不同的浏览器进程 数据分开存储
session域
需要手动创建
session会长期存在
失效条件:关闭浏览器
超过访问周期
3.通过代码失效
4.与用户绑定
seesion读加写
req.getSession()
session.setAttributte("see","ss")
服务器域
servletContext
全局共享 写入之后 所有请求 所有浏览器都可以用、
req.getServletConetxt()
servletContext.getAttribute("sckey")
servletContext常用对象
getContextPath()获取服务器入口路径
getRealPath("/") 获取服务器实际代码路径
gtInitParameter() 通过web.xml读取子当以公共参数
servletConfig
request
//域对象设置简直对
req.setAttribute()
//指定强转类型
req.setCharacterEncodeing("utf-8")
//取参数
req.getparamter("")
//取字符串数组
req.getParamterValues("hobby")
获取参数map获取参数输入流
//tomcat解析参数是,会阿布值对象放入map中,单个参数也会
req.getParamterMap()
tomcat中允许自己读取请求头 可以自己解析数据
获得请求体部分内容2
获取请求头
req.getHeader()
获取请求报文各种路径
//获取报文中路径的数据
//获取协议
req.getscheme()
req.getServlername()
req.getservlerport
//获得根路径
req.getrequesturl
自定义请求头
req.getHeqader
流只能获取一次
url统一资源定位符
http://localhost:8080/day10/reqDemo
req.getRequestURI()
统一资源标识符
response对象
设置返回数据格式
//resp.setContentType("application/json;charset=utf-8");
//resp.setContentType("text/html;charset=utf-8"); //返页面标签
writer.print("这是一个动态页面<br>");
session对象
会话对象 在同一个用户对此访问贡献数据
req.setAttriblut()
req.getattribute()
re.removeAttribute
req.setAttribute(String name, Object value) 方法的作用范围是请求范围(request scope)。这意味着设置的属性仅在当前请求的生命周期内有效。一旦请求处理完成并响应返回给客户端,这些属性将不再存在。
req.getsession()
session.invalidate()
session失效
浏览器关闭
超市
当缓存使用,把一些常用数据存入session服务器需要时使用,共享数据访问控制

浙公网安备 33010602011771号