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服务器需要时使用,共享数据访问控制

 

posted @   langpo  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示