标签:获取域对象 传递 匹配 ons clip author 回写 ref 磁盘
JSP(Java Servlet Pages)
JSP:java服务器端的网页,是在服务器端执行。
JSP可以写html+java+jsp自己的代码
运行原理:jsp-翻译成servlet-编译-访问
编码设置
window –prefreences-General-editors-File association-上面选择*.jsp,下面选择MyEclipse JSP Editor
搜索jsp 选择Files and Editor下面的JSP-Encoding里面的iso10646 UTF-8
jsp的脚本元素(jsp里面可以编写java代码)
<%! %>:定义类、变量、方法(不常用) 因为定义的是全局变量
<%= %>:输出语句,不能有分号 (直接输出到页面上)
<% %>:定义变量、语句(最常见的)
EL表达式
${域对象的内容}:获取域对象中的内容 里面不用加双引号,后面也不要加分号
会话的技术
会话:打开浏览器,多次访问WEB资源,最后关闭浏览器的过程。
cookie技术(客户端技术)
方法:
Cookie(String name,String value)
addCookie(Cookie cookie):回写到浏览器 response下面的
Cookie[] getCookies():获取cookie的内容,Request下面的
显示上次的访问时间
第一次访问,输出欢迎。在服务器端,记录当前的时间,把当前的时间通过cookie回写到浏览器
第二次访问,先获取cookie的内容,显示到浏览器中,记录当前的时间,再次回写到浏览器,输出上次的访问时间
cookie的api
Cookie(String name,String value):cookie的构造方法
String getName():获取cookie的名称
String getValue():获取cookie的值
void setMaxAge(int expiry):设置有效时间,以秒为单位
void setPath(String url):设置有效路径
void setDomain(String pattern):设置有效域名
会话级别的cookie:默认保存到浏览器的内存中
持久性的cookie:把cookie存储到磁盘中,使用setMaxAge()进行设置。
删除持久性cookie的话,将cookie设置为0。删除的时候,虚拟路径必须一致,否则不会删除。
cookie案例:显示上次浏览时间
package com.cn.Cookie;
import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cn.Utils.CookieUtil;
public class LastServletcookie extends HttpServlet {
/**
* 1、获取所有的cookie,判断是否是第一次访问 2、如果是第一次访问 输出欢迎 3、如果不是第一次访问 获取当前的时间,输出到浏览器
* 4、记录当前的时间,回写到浏览器
*
*
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置字符中文乱码问题
response.setContentType("text/html;charset=UTF-8");
// 记录当前时间
java.util.Date date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(date);
// 回写到浏览器 使用cookie回写
Cookie c2 = new Cookie("last", s);
response.addCookie(c2);
// 获取所有的cookie
Cookie[] cookies = request.getCookies();
/*
* 通过指定名称来查找cookie 最好编写一个方法,方便多次使用,这里用的是工具类
*/
Cookie c = CookieUtil.getCookieByName(cookies, "last");
// 判断,如果cookie为空格的话,表示第一次访问,输出欢迎
if (c == null) {
response.getWriter().write("<h1>欢迎你第一次访问</h1>");
} else {
// 获取cookie的值,输出到浏览器
String value = c.getValue();
response.getWriter().write("<h1>你上次的访问时间为" + value + "</h1>");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
package com.cn.Utils;
import javax.servlet.http.Cookie;
/**
* cookie的工具类
*
* @author Administrator
*
*/
public class CookieUtil {
/**
* 通过指定名称查找指定的cookie
*
* @param c
* @param name
* @return
*/
public static Cookie getCookieByName(Cookie[] cookies, String name) {
if (cookies == null) {
return null;
} else {
/*
* 循环遍历。目的:获取cookie的name和传递的 name进行匹配, 如果匹配成功,返回当前的cookie。
*/
for (Cookie cookie : cookies) {
if (cookie.getName().equals(name)) {
return cookie;
}
}
}
return null;
}
}
标签:获取域对象 传递 匹配 ons clip author 回写 ref 磁盘
原文地址:http://www.cnblogs.com/zengjiao/p/7401758.html