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网络编程——并发服务器(TCP)
在迭代服务器中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现. 网络服务器通常用fork来同时 ...
- UNIX环境高级编程——线程和信号
每个线程都有自己的信号屏蔽字,但是信号的处理是进程中所有线程共享的.这意味着尽管单个线程可以阻止某些信号,但当线程修改了与某个信号相关的处理行为以后,所有的线程都必须共享这个处理行为的改变.这样如果一 ...
- Ajax数据返回格式问题解决
Ajax数据返回格式问题解决 服务端返回的数据格式为: response.setContentType("text/xml;charset=utf-8"); 设置发送到客户端的响应 ...
- 《重构》中Tips总结
1 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达到目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性. 2 重构之前,首先检查自己 ...
- javascript之DOM编程根据属性找标签练习
首先看一下需求: 当点击全选时,选中所有的,当再点击时,全部取消.且选中某些项,点击总金额,会显示处总的金钱数. <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- 纸飞机AE小教程
- Python学习笔记 - function调用和定义
调用函数: #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 函数调用 >>> abs(100) 100 >>> a ...
- tomcat集群实现源码级别剖析
随着互联网快速发展,各种各样供外部访问的系统越来越多且访问量越来越大,以前Web容器可以包揽接收-逻辑处理-响应整个请求生命周期的工作,现在为了构建让更多用户访问更强大的系统,人们通过不断地业务解耦. ...
- Notepad++ 使用探索
一.更换主题,视觉享受 1,http://wiki.macromates.com/Themes/UserSubmittedThemes,从网站上下载自己喜欢的主题,解压 2,复制Black Pearl ...
- Handler学习小结
在android消息机制中Handler扮演着举足轻重的作用,(AsnyTask其实也是对Handler+Thread做了一层封装),ui线程超过5s就会报出ANR,一般耗时操作操作需要放在子线程中处 ...