java web(1)
获取项目的根路径:this。getservletcontext().getRealPath() 下载:不正规做法:test/html!!!! 正规做法:1,在响应头设置:res.addHeader("Context-disposition",attachment;filename=xxx.jpg"); 上传:request.getImageStream();web.xml中设置<enctype>multipart/form-dota</> 浏览器状态的保存方式: 1,隐藏表单的方式,但会破坏网页的结构布局,所以不采用 2,cookie,内容只能存4kb大小,存放在客户端中,是一个类 3,session会话,把数据存放在服务器,大小无限制 4,url重写(基于cookie和session)response.encodeUrl();实现url的重写 cookie:是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会将cookie中的数据一起发送到服务器。 response.addcookie方法可以在其相应头中增加一个相应的字段,同样可以使用request.getcookie方法,可以获取客户端提交的cookie; cookie类的方法:setValue与getValue,设置和获取cookie里的值 setMaxAge可以设置cookie的保存时间 getName可以获取cookie的键 cookie的运用:获取用户上次登录的时间,可以采取cookie 一个cookie只能标示一种信息,至少含有一个标示该信息的名称和值 session:是服务端技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象,session将产生一个sessionid传回给客户端,下次访问就用id去找session对象,取出数据. Session中可以存放多个属性(包括对象) 如果session.setAttribute(name,value);中name相同,则会替换掉。 session的方法: 1,如何创建session HttpSession session = request.getSession() HttpSession session = request.getSession(true) HttpSession session = request.getSession(false) 如何使用session set/get/remove(Attribute) 5销毁session 手动: session.invalidate() .服务器关闭 自动:超时 setMaxInactiveInterval(int seconds); Session 和Cookie的区别 : 1.存储位置不同: Cookie存在在客户端(临时文件夹) Session存在服务器内存中,一个session域对象为一个用户浏览器服务 2.安全性: Cookie以明文方式存放在客户端,安全较弱,可以通过MD5加密算法在存放 Session存放在服务器端内存中,所以安全性较好 3.网络传输量: Cookie会传递信息给服务器 Session的属性值不会给客户端 4.生命周期: Cookie的声明周期是累计时间 Session的生命周期是访问session的间隔时间,在一些情况下session也会失效关闭tomcat,reload web应用,时间到,调用invalidate() 作用域对象:1,request 2,servletcontext 3,session 用来传递数据 作用范围: 一次请求和响应中 全局 一次会话 线程安全: 安全 不安全 视情况而定(比如打开新标签,就线程不安全) 监听器:供8中,Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型: 监听三个域对象创建和销毁的事件监听器 监听域对象中属性的增加和删除的事件监听器 监听绑定到HttpSession域中的某个对象的状态的时间监听器。 用法:实现接口,重写方法。 如三个域对象的创建与销毁方法签名: ServletRequestListener有以下两个方法 void requestDestroyed(ServletRequestEvent sre) void requestInitialized(ServletRequestEvent sre) HttpSessionListener有以下两个方法 void sessionCreated(HttpSessionEvent se) void sessionDestroyed(HttpSessionEvent se) ServletContextListener void contextDestroyed(ServletContextEvent sce) void contextInitialized(ServletContextEvent sce) 三个类型对象域中增、删、改的监听器(3个) ServletContextAttributeListener, HttpSessionAttributeListener, ServletRequestAttributeListener 感知型监听器(2个):监听自己何时被帮到session上,何时解绑了;何时被钝化了,何时被活化了(序列化到某个存储设置中)。 注意:这种监听器不需要注册。某个javabean实现这些接口后就可以监听何时被绑定、解绑或被激活或钝化。 HttpSessionBindingListener:实现该接口的类,能检测自己何时被Httpsession绑定,和解绑 HttpSessionActivationListener:实现该接口的类(要求些javabean必须是实现了Serializable接口的),能监测自己何时随着HttpSession一起激活和钝化。
java web(1)的更多相关文章
- 高效 Java Web 开发框架 JessMA v3.5.1
JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...
- 高效 Java Web 开发框架 JessMA v3.4.1
JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...
- java web 之客户关系管理系统
这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...
- Java Web中的中文编码
Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...
- java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化
一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- JAVA WEB WITH IDEA
本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
随机推荐
- UNIX网络编程——通用套接字选项
1. SO_BROADCAST 套接字选项 本选项开启或禁止进程发送广播消息的能力.只有数据报套接字支持广播,并且还必须是在支持广播消息的网络上(例如以太网,令牌环网等).我们不可能在点对点链路上进行 ...
- 【Unity Shaders】使用Unity Render Textures实现画面特效——建立画面特效脚本系统
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- iOS开发中的零碎知识点笔记 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 1.关联 objc_setAssociatedObject关联是指把两个对象相互关联起来,使得其中的一个对象作为另外 ...
- iOS中崩溃调试的使用和技巧总结 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Cras ...
- (七十五)CoreLocation(一)在iOS7和iOS8设备上获取授权
苹果在iOS8上更新了CoreLocation的授权获取方式,在原来的基础上,不仅需要调用授权函数,还需要对info.plist进行相应的配置. 在iOS上获取经纬度使用的是CoreLocationM ...
- MySQL学习笔记_4_MySQL创建数据表(下)
MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...
- (NO.00002)iOS游戏精灵战争雏形(五)
完成了精灵自己移动之后,我们开始着手实现按住精灵拖动的功能. 要想处理触摸事件,我们需要做2件事: 1.在类的初始化中打开触摸接收属性 2.实现触摸处理回调方法 我们依次来做这2件事. 首先要搞清楚在 ...
- EBS R12 LOG files 位置
- Apache, OC4J and OPMN: $LOG_HOME/ora/10.1.3/Apache$LOG_HOME/ora/10.1.3/j2ee$LOG_HOME/ora/10.1.3/op ...
- Ionic APP-Web SPA开发进阶(一)AngularJS全栈工程狮进阶
AngularJS全栈工程狮进阶 前言 学习了一段时间AngularJS,开始接触移动端APP开发.为了响应公司开发需求,采用"Hybrid"混血开发方法.采用Ionic前端框架, ...
- Java 截取中英文混合字符串
题目: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入&q ...