浏览器动态刷新
//3s刷新一下
resp.setHeader("refresh", "3");
验证码模板
//在内存中创建图片
BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB);
//得到图片
Graphics2D graphics = (Graphics2D) image.getGraphics();//2D的笔
graphics.setBackground(new Color(0xFFB6E7E4, true));
//给图片写数据
graphics.setColor(new Color(0xFFF61937, true));
graphics.setFont(new Font("黑体",Font.BOLD,18));
graphics.drawString(randomNum(),0,20);//randomNum()是自定义的方法,返回8位随机整数组成的字符串(00000000~99999999)
//告诉浏览器这个请求用图片的方式打开
resp.setContentType("image/jpeg");
//网站存在cache,不让浏览器缓存
resp.setDateHeader("exprise",-1);
resp.setHeader("Cache-Control","no-cache");
resp.setHeader("Pragma","no-cache");
//把图片写给浏览器
ImageIO.write(image,"jpg",resp.getOutputStream());
response重定向
一个web资源收到客户端请求后,他会通知客户端去访问另外一个web资源,这个过程叫重定向
resp.sendRedirect(s);
s是重定向的相对路径,从8080往后写(就是不包括你的项目路径),其本质上是封装后的
resp.setHeader("Location",s);
resp.setStatus(302);
jsp页面中文编码问题
body里加
<%@page contentType="text/html;charset=utf-8"%>
转发和重定向(实现)
//重定向
resp.sendRedirect(项目内文件名);
//转发
req.getRequestDispatcher(项目内文件名).forward(req,resp);
关于cookie
Cookie类,构造器是一个cookie的名字和值,类似于键值对
req.getCookies()
方法获取cookie的列表
每一个cookie都有getName()
和getValue()
方法
配置session自动失效时间
<session-config>
<!--15分钟,session自动失效,以分钟为单位-->
<session-timeout>15</session-timeout>
</session-config>
关于jsp
jsp: java server pages(java服务器端页面)
表达式
<%--jsp表达式,作用:将程序输出到客户端--%>
<%= 变量或者表达式 %>
脚本片段
写在jspservice内部
<%--jsp脚本片段--%>
<%
代码块
%>
代码块可拆分!!!
举个例子:
<%
Java代
%>
html代码块
<%
码块
%>
<%
/*java代码块*/
for (int j = 0; j < 5; j++) {
%>
<h2>html代码块</h2>
<%
}
%>
这样就会输出5条<h2>html代码块</h2>
声明
写在jspservice外部
<%!
private static int a=0;
public static void b(){
System.out.println(0);
}
%>
<%!
代码块
%>
通用界面
一般用下面那个,灵活性更高。
上面会最终生产一个整体,而下面的页面会由多个部分拼接
<%@ include file=文件路径%>
<jsp:include page=文件路径/>
jstl标签
核心标签
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>