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应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
随机推荐
- love~LBJ,奥布莱恩神杯3
时间:2016年6月20日8:00:地点:美国金州甲骨文(Oracle)球馆:事件:G7大战,又一次见证伟大赛季奥布莱恩神杯得主--金州勇士VS克利夫兰骑士...... 可以说,这是NBA以来 ...
- java wait和notify及 synchronized sleep 总结
java 中线程我一直弄不清线程锁等 所以写了一些例子验证看法: 在这之前先看下API中wait中的解释: wait:方法来之java.lang.Objetc 方法翻译:在其他线程调用此对象的 not ...
- A*寻路算法入门(四)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- J2EE进阶(二)从零开始之Struts2
J2EE进阶(二)从零开始之Struts2 以前自己总是听说什么SSH框架,不明觉厉.现在自己要重整旗鼓,开始系统性的学习SSH框架了.首先开始Struts2的学习.其实自己之前参与过Struts2项 ...
- C++ Primer 有感(异常处理)(二)
异常就是运行时出现的不正常,例如运行时耗尽了内存或遇到意外的非法输入.异常存在于程序的正常功能之外,并要求程序立即处理.不能不处理异常,异常是足够重要的,使程序不能继续正常执行的事件.如果找不到匹配的 ...
- DB 查询分析器 方便地创建DB2自定义函数
DB 查询分析器 方便地创建DB2自定义函数 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要 ...
- java Serializable 生成随机序列
如果你implements 了 Serializable接口 但是没写 UID,eclipse会在你的类名边上有一个警告,你点击一下,有一个选项自动生成 UID,所以请用eclipse写java代码
- android 的android httpClient详解
AndroidHttpClient结构: public final class AndroidHttpClient extends Object implements HttpClient 前言: 这 ...
- [WinForm]C# .net防止一个程序(WinForm)重复运行的方法。
最近比较忙,邮件预警系统暂停了没时间去处理,临时处理:直接执行exe文件! 可是问题来了: 我点击了两次,原来几乎在同时执行这个进程,我在程序中有线程时间睡眠2秒一次等待队列,打开进程果然两个MAIL ...
- javascript语法之循环语句
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...