JSP cookie是存储在客户机的文本文件,保存了大量的轨迹信息。
通常有三个步骤可以识别回头客:
1)服务器脚本发送一系列cookie到浏览器,如姓名、年龄、ID等
2)浏览器在本地存储这些信息以备不时之需
3)下一次浏览器发送请求到服务器时,连同这些cookie信息一块发送给服务器,然后服务器使用这些信息来识别用户或者干别的事
cookie通常早HTTP请求头中设置
Set-Cookie:信息头中包含有键值对信息,一个GMT格林尼治时间,一个地址,一个域名
JSP中的request对象通过getCookies()方法获得cookie信息,返回一个cookie对象的数组

JSP设置cookie的三个步骤:
1)创建cookie对象: Cookie cookie = new Cookie("key","value")
2)设置有效期,单位时间为秒:cookie.setMaxAge(60*60*24*)//24小时
3)将cookie发送至HTTP响应头中:response.addCookie(cookie)

JSP session
JSP是一种无状态的协议,意味着用户每次检索网页时,就要单独打开一个服务链接,因此服务器不会记录下用户先前请求的任何信息,有三种方法维持客户端和服务器端的会话。
1)cookie:服务器可以为每一个客户建立一个唯一的session ID作为cookie代表每个客户端,但不是每个客户端的浏览器都支持cookie,不建议用这种方式维持会话
2)隐藏表单域:一个网络服务器可以发送一个隐藏的HTML表单和一个唯一的session ID;<input type="hiden" name="sessionid" value="123">,浏览器每发送一个请求,sessionid
就可以保存为不同浏览器的轨迹信息,隐藏表单不支持通用会话跟踪
3)session对象:jsp利用servlet提供的HttpSession接口来识别一个用户,存储这个用户所有的访问信息

删除session数据:
移除一个特定的属性:public void removeAttribute(String name)
整个session无效:public void invalidate()
设置会话超时:public void setMaxInactiveInterval(int interval)
配置web.xml文件:如果使用的是tomcat,可以这样配置部署描述符文件web.xml
<session-config>
<session-timeout>15</session-timeout>
</session-config>
超时以分钟为单位,tomcat中的默认超时时间为30分钟

JSP文件上传
JSP和HTML form共同使用,实现文件的上传任务,上传的可以是文本、图片和任何文档
步骤:上传表单--上传处理servlet--上传跳转
三个文件:
upload.jsp:上传表单
UploadServlet:上传处理servlet
message.jsp:上传成功后跳转页面
最主要的是处理请求的servlet
UploadServle.java
import ...

/**
* Servlet implements class UploadServlet
*/
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// 上传文件存储目录
private static final String UPLOAD_DIRECTORY = "upload";
// 上传配置
private static final int MEMEORY_THRESHOLD = 1024 * 1024 * 4; //4MB
private static final int MAX_FILE_SIEZ = 1024 * 1024 * 40; //40MB
private static final int MAX_REQUEST_SIEZ = 1024 * 1024 * 40; //50MB

// 上传配置及保存文件
protected void doPost(HttpServletRequest request, HttpServletResponse response)rhrows ServletException, IOException{
// 检测是否为多媒体上传
if(!ServletFileUpload.isMultipartContent(request)){
// 如果不是停止上传
PrintWriter writer = response.getWriter();
writer.println("错误!表单提交的格式内容必须为enctype='multipart/form-data'");
writer.flush();
return;
}
// 配置上传参数
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存临界值,超出后则自动存储在临时目录中
factory.setSizeThreshold(MEMEORY_THRESHOLD);
// 设置临时存储目录
factory.setRepository(new File(System.setProperty("java.io.tempdir")));
//
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大文件上传值
upload.setFileSizeMax(MAX_FILE_SIEZ);
// 设置最大请求值
upload.setSizeMax(MAX_REQUEST_SIEZ);
// 中文处理
upload.serHeaderEncoding("UTF-8");
// 构造临时路径存储上传的文件,相对当前应用的目录
String uploadPath = getServletContext.getRealPath("./") + File.separator + UPLOAD_DIRECTORY;
// 如果目录不存在,则创建目录
File uploadDir = new File(uploadPath);
if(!uploadDir.exists()){
uploadDir.mkdir();
}

try{
// 解析请求的内容,提取文件数据
List<FileItem> formItems = upload.paraRequest(request);
if(formItems != null && formItems.size() > 0){
// 迭代表单数据
for(FileItem item : formItems){
// 处理不在表单中的数据
if(!item.isFormField()){
String fileName = new File(item.getName()).getName();
String filePath = uploadPath+File.separator+fileName;
File storeFile = new File(filePath);
// 控制台输出上传路径名
System.out.println(filePath);
// 保存文件到硬盘
item.write(storeFile);
request.setAttribute("message","上传成功");
}
}
}
}catch(Exception e){
requset.setAttribute("message","上传失败"+e.getMessage());
}
// 跳转到message.jsp;
getServletContext().getRequestDispatcher("message.jsp").forward(request,response);
}
}

<%= %>只能得到当前面定义的值
即你在这个页里有<% int a=100%>
你在下面才可以使用<%=a%>
${ }这个是el表达式(表达式语言)
可以从上下文中得到值。

JSP页面重定向
要将文档移动到一个新的位置时,就需要重定向,使用response对象的sendRedirector()方法
方法签名:
public void response.sendRedirector(String location) throws IOException{}
这个方法将状态码和新的网页位置作为响应发回给浏览器

JSP学习_01的更多相关文章

  1. JSP学习网站

    JSP学习网站 http://www.yiibai.com/jstl/ http://www.w3cschool.cc/jsp/jsp-jstl.html

  2. JSP学习笔记

    JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...

  3. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  4. JSP 学习二

    在基于昨天对JSP学习的基础上,今天我们来学习JSP的指令和JSP 对中文的处理. 一.JSP指令简介 JSP 指令是为JSP引擎而设计,它并不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面 ...

  5. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

  6. C++基础学习_01

    C++基础学习_01 基础知识:1.命名空间,2.IO流(输入输入),3.参数缺省,4.函数重载 1.命名空间 作用:对标识符的名称进行本地化,避免命名冲突 定义:namaspace space_na ...

  7. (转) jsp学习笔记

    fromhttp://www.cnblogs.com/tao975/p/4445070.html 什么是JSP JSP的优势 JSP的劣势 JSP与PHP的比较 JSP工作原理 JSP的九大内置对象 ...

  8. jsp学习:jsp学习阶段性总结2019.9.21

    Jsp学习 jsp语法格式: 脚本程序:<% 代码片段 %> jsp声明:<%! declaration; [ declaration; ]+ ... %> 表达式:<% ...

  9. JSP学习(1)

    JSP学习(1) 什么是Web应用程序 可以Web访问呢的应用程序,用户只需要浏览器即可访问 静态网页与动态网页 静态网页:网页中内容固定 动态网页:内容通过程序动态显示,自动更新 Java Web应 ...

随机推荐

  1. Linux Eclipse 运行Protobuf

    安装环境Ubuntu 14.04 64 bit 安装过程分为三步 1. Linux下安装Protobuf 2. Eclipse下安装protobuf.dt插件 3. Eclipse下配置动态链接库并运 ...

  2. Mesos 入门教程

    Mesos提供了高效.跨分布式应用程序和框架的资源隔离和共享,支持Hadoop. MPI.Hypertable.Spark等. Mesos是Apache孵化器中的一个开源项目,使用ZooKeeper实 ...

  3. Git Step by Step – (4) 探索.git目录

    前面一篇文章介绍了Git对象模型,接下来我们就进入".git"目录看看到底有什么东西,目录中哪些东西又跟Git对象模型相关.结合这个目录,我们将进一步了解Git的工作原理. .gi ...

  4. python关键字与标识符

    编程语言众多,但每种语言都有相应的关键字,Python 也不例外,它自带了一个 keyword 模块,用于检测关键字. 关键字列表 进入 Python 交互模式,获取关键字列表: >>&g ...

  5. PyCharm使用Github管理代码

    本篇文章主要写一下如何通过pycharm客户端来上传下载代码. 安装Git 在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可. 安 ...

  6. Robot Framework进行web ui自动化测试,浏览器配置说明

    转载请注明出处,谢谢: chrome浏览器: 1.从如下地址下载与本地浏览器版本号一致的chromedriver.exe驱动文件: http://chromedriver.storage.google ...

  7. N76E003之IIC

    I2C 总线提供了一种串行通信方式,用在 MCU 与 EEPROM,LCD模块,温度传感器等等之间控制.I2C 用两条线 (数据线SDA 和时钟线 SCL) 在设备间传输数据.I2C 总线用作主机与从 ...

  8. 使用js是想防止表单重复提交的效果

    直接上代码: <html> <head> <title>Form表单</title> <script type="text/javasc ...

  9. JS使用中碰到的一些问题

    settimeout: 1.setTimeout(function () {//这个则会在1秒后进行弹出1 alert(1); }, 1000); 2.setTimeout(alert(1), 100 ...

  10. Esper学习之三:进程模型

    之前对Esper所能处理的事件结构进行了概述,并结合了例子进行讲解,不清楚的同学请看Esper学习之二:事件类型.今天主要为大家解释一下Esper是怎么处理事件的,即Esper的进程模型. 1.Upd ...