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应 ...
随机推荐
- C#客户端嵌入Chrome浏览器的实现
https://blog.csdn.net/lanwilliam/article/details/79639823 客户端软件,也就是传统的Winform软件,在很多时候是很好用的.因为在做一些打印. ...
- Java NIO原理 图文分析及代码实现
Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请 ...
- 启用sharepoin2013中的ChartWebPart
首先看一张sharepoint2013中ChartWebPart的效果图. 在sharepoint2010中加入了一个新的webpart,叫ChartWebPart,提供了对数据的图表展示,可以对数据 ...
- [JS] 如何自定义字符串格式化输出
在其他语言中十分常见的字符串格式化输出,居然在 Javascript 中不见踪影,于是决定自己实现该方法,以下就是个人编写的最简洁实现: String.prototype.format = funct ...
- SQL SERVER数据库新认识的一些基础知识
最近要接触sql server的存储过程啦,在处理更加复杂的逻辑过程前,就来看一下这些sql的基础语法,感觉看啦一些复杂一点的sql语句,突然发现我是有多么的薄弱啊,所以在一些基础的语法上面我再重新整 ...
- UISegmentedControl的基本用法
本文转载至 http://www.tuicool.com/articles/yUfURj 原文 http://blog.csdn.net/hmt20130412/article/details/38 ...
- iOS 触摸事件与手势识别器(Gesture Recognizers)
Gesture Recognizers与触摸事件分发 通过一个问题引出今天的知识: 1.大家应该都遇见过 当需要给tableView 添加一个tap 手势识别 但是tableView 的上的事件(滑动 ...
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- ubuntu 用aptitude代替apt-get处理依赖性问题
aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具.与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些.举例来说,aptitud ...
- Linux命令 dmesg:分析内核产生的信息
案例一 输出所有的内核开机时的信息 zh@zh:~$dmesg | more 案例二 查找开机的时候硬盘的相关信息