您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
16_JSP_案例_改造Cookie案例(jsp支持脚本标签截断)
发布时间:2022-09-02 22:35:14编辑:雪饮阅读()
基于之前在servlet层面的cookie实现,我们也可以直接在jsp页面中实现,如index.jsp:
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page import="java.net.URLEncoder" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2022/8/7
Time: 22:19
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
//这个地方就免了,可以在上面'page contentType="text/html;charset=GBK" language="java"'的contentType中设置
//response.setContentType("text/html;charset=utf-8");
Cookie[] cs=request.getCookies();
Boolean hasCookie=false;
Cookie cg=null;
String time=new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss").format(new Date());
String response_txt="";
if(cs!=null){
for(Cookie c:cs){
if(c.getName().equals("lastTime")){
hasCookie=true;
cg=c;
break;
}
}
}
if(hasCookie){
response_txt="欢迎回来,你上次访问为:"+ URLDecoder.decode(cg.getValue(),"utf-8");
cg.setValue(URLEncoder.encode(time,"utf-8"));
response.addCookie(cg);
}
else{
Cookie c1=new Cookie("lastTime", URLEncoder.encode(time,"utf-8"));
c1.setMaxAge(60*60*24*30);
response_txt="欢迎你首次访问";
response.addCookie(c1);
}
response.getWriter().write(response_txt);
%>
</body>
</html>
支持out的同时也支持jsp脚本标签的截断,以实现在程序逻辑控制中直接输出html等纯前端内容。index.jsp如:
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page import="java.net.URLEncoder" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2022/8/7
Time: 22:19
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
Cookie[] cs=request.getCookies();
Boolean hasCookie=false;
Cookie cg=null;
String time=new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss").format(new Date());
String response_txt="";
if(cs!=null){
for(Cookie c:cs){
if(c.getName().equals("lastTime")){
hasCookie=true;
cg=c;
break;
}
}
}
if(hasCookie){
response_txt="欢迎回来,你上次访问为:"+ URLDecoder.decode(cg.getValue(),"utf-8");
//支持截断
cg.setValue(URLEncoder.encode(time,"utf-8"));
response.addCookie(cg);
%>
<h1>kasumi啊,你上次干嘛去了</h1>
<%
}
//注意else不能单独分到下面,要和这个}放一起,这里个人总结出来的规律
else{
%>
<%
Cookie c1=new Cookie("lastTime", URLEncoder.encode(time,"utf-8"));
c1.setMaxAge(60*60*24*30);
response_txt="欢迎你首次访问";
response.addCookie(c1);
}
//支持out
out.print(response_txt);
%>
</body>
</html>
关键字词:JSP,案例,改造,Cookie