JSP学习_01
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的更多相关文章
- JSP学习网站
JSP学习网站 http://www.yiibai.com/jstl/ http://www.w3cschool.cc/jsp/jsp-jstl.html
- JSP学习笔记
JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- JSP 学习二
在基于昨天对JSP学习的基础上,今天我们来学习JSP的指令和JSP 对中文的处理. 一.JSP指令简介 JSP 指令是为JSP引擎而设计,它并不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面 ...
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
- C++基础学习_01
C++基础学习_01 基础知识:1.命名空间,2.IO流(输入输入),3.参数缺省,4.函数重载 1.命名空间 作用:对标识符的名称进行本地化,避免命名冲突 定义:namaspace space_na ...
- (转) jsp学习笔记
fromhttp://www.cnblogs.com/tao975/p/4445070.html 什么是JSP JSP的优势 JSP的劣势 JSP与PHP的比较 JSP工作原理 JSP的九大内置对象 ...
- jsp学习:jsp学习阶段性总结2019.9.21
Jsp学习 jsp语法格式: 脚本程序:<% 代码片段 %> jsp声明:<%! declaration; [ declaration; ]+ ... %> 表达式:<% ...
- JSP学习(1)
JSP学习(1) 什么是Web应用程序 可以Web访问呢的应用程序,用户只需要浏览器即可访问 静态网页与动态网页 静态网页:网页中内容固定 动态网页:内容通过程序动态显示,自动更新 Java Web应 ...
随机推荐
- mongodb安装使用笔记
mongodb安装使用 安装后配置环境变量 创建数据库文件夹并连接数据库,并执行mongod --dbpath c:\workname 打开新的cmd,执行mongo命令,管理数据库 show dbs ...
- zabbix加入TCP连接数及状态的监控
一 监控原理: [root@ nginx]# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' TIME_WAI ...
- TTL值
我们在解析域名时经常出现 TTL 这个字段,里面默认写的是 10 分钟. 另外,有时候我们 ping 某域名或 IP 的时候,会出现 TTL= XXX. 一.什么是域名的 TTL 值? TTL(Tim ...
- Linux 常用文件
/etc/exports /etc/services /etc/sysctl.conf /etc/logrotate.conf /etc/docker/key.json /etc/docker/dae ...
- Ansible Playbook 使用循环语句
如下,with_items 是循环的对象,with_items 是 python list 数据结构,task 会循环读取 list 里面的值,key 的名称是 item [root@localhos ...
- C语言从零开始(十四)-字符串处理
在软件开发过程中,字符串的操作相当频繁.在标准C语言库中提供了很多字符串处理的函数.今天我们来介绍一些常用的字符串处理函数.1. 字符串输入输出1.1 printf() scanf() 之前我们学习过 ...
- 《C++ Primer Plus》16.3 标准模板库 学习笔记
STL提供了一组表示容器.迭代其.函数对象和算法的模板.容器是一个与数组类似的单元,可以存储若干个值.STL容器是同质的,即存储的值的类型相同:算法是完成特定任务(如对数组进行排序或在链表中查找特定值 ...
- WP8.1学习系列(第二十三章)——到控件的数据绑定
在本文中 先决条件 将控件绑定到单个项目 将控件绑定到对象的集合 通过使用数据模板显示控件中的项目 添加详细信息视图 转换数据以在控件中显示 相关主题 本主题介绍了如何在使用 C++.C# 或 Vis ...
- Ubuntu 14.04 DNS 配置
最近得到一个比较好用的DNS,每次重启后都修改DNS配置文件 /etc/resolv.conf 重启就会失效 从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvcon ...
- Hive学习之Union和子查询
Union的语法格式如下: select_statement UNION ALL select_statement UNION ALL select_statement ... Union用于将多个S ...