理解Servlet于JSP的关系:
JSP引擎:服务器中的小程序,用来把JSP文本文件转换成Servlet;
JSP基本语法:
<%......%>:中间写java代码,其中的代码会copy到JSP引擎生成的Servlet中;
<%=表达式%>:这句话相当于<%out.write(表达式)%>
JSP指令:写在JSP文件中,用于指示JSP引擎生成在Serblet的时候的一些定制
<%@ page import="包名"%> :此语法用于指示JSP引擎在生成Servlet时声明响应的包(声明多个包是包之间用“,”连接)
<%@ include file="some.jsp"%>:此语法用于指示JSP引擎在生成Servlet时用some.jsp文件中的内容替换<%@ include file="some.jsp"%>所在位置;
JSP中的内建(隐含)对象:Sun公司标准规定的,在JSP生成Servlet之前声明号的变量;在不同服务器这些变量的名是一致的;这些内建对象对应Servlet的API;
如:out:生成响应内容的流对象(相当于PrintWrite out = response.getWriter()中的out);
request:请求对象,可应通过request的方法对请求进行操作
response:响应对象,可应通过response的方法对响应进行操作
Cookie技术:
Cookie原理:第一次访问服务器时,服务器在响应时,协议头会生成一个Set-Cookie项以 key=value的方式说明了cookie此时浏览器会把该cookie存储在磁盘上,当在此访问时,请求的协议头中会生成一个Cookie项,把cookie的信息传给服务器,此时服务器可以通过request.getCookies();方法获得cookie;
用法:
//用来封装Cookie信息的类:Cookie,参数都是字符串
Cookie cookie = new Cookie("key","value")
//生成响应头中的Set-Cookie项(添加cookie)
response.addCookie(cookie)//可以添加多个cookie
//获得请求中的cookie,注:该方法返回一个Cookie数组;当没有Cookie是方会null;所以要作判断,否则报控制真异常;
Cookie[] cookies = request.getCookies();
//遍历cookes
for(int i=0;i<cookies.length;i++){
Cookie cookie = cookies[i];
System.out.println(cookie.getName()+":"+cookie.getValue());
}
//可以通过cookie.setMaxAge(expiry);方法来设置cookie保存时间
//expiry>0;expiry秒后删除 ;<0关闭浏览器删除(默认);=0立即删除
cookie.setMaxAge(10);//10秒后删除;
//可以通过cookie2.setPath("路径");设置cookie路径//???
使用Cookie注意的问题:
1、编码问题:当cookie中的数据有和协议中字符冲突的字符时,可以通过URLEncoder和URLDecoder中的方法进行响应的编码解码来解决;
2、大小和个数问题:一般一个页面Cookie的最大不超过4k;个数不超过20个;
3、安全问题://???
4、路径问题:?