/*System.out.println("上下文"+request.getContextPath());
System.out.println("客户端ip"+request.getRemoteAddr());
System.out.println("端口"+request.getRemotePort());
System.out.println("本地addr"+request.getLocalAddr());
System.out.println("除去host(域名或者ip)部分的路径"+request.getRequestURI());
System.out.println("请求方式"+request.getMethod());
System.out.println("头部信息"+request.getHeaderNames());//Enum
Enumeration<String> headers=request.getHeaderNames();
while(headers.hasMoreElements()){
String key=headers.nextElement();
String value=request.getHeader(key);
System.out.println(key);
System.out.println(value);
}*/
/*
- 请求转发:只发一次请求 地址栏地址不变 只能是内部网址 效率高 可以带参数
- 重定向:两次请求 地址栏地址会变化 可以访问外部网址 效率低 在地址里带参数
*/
jsp工作在tomcat的work文件夹中,本质是servlet
jsp第一次运行需要先编译,在work\目录下生成name_jsp.class文件,所以时间会比较长
jsp文件里面有三个关键方法 分别是初始化,销毁,和jspService()服务方法
九大内置对象:pageContext 页面上下文对象
session 会话对象
application 全局会话对象
request 请求对象
config 配置对象
page 页面对象
out 输出流对象
exception 异常对象
jsp脚本元素包括 脚本,声明<%! %>,表达式<%= %>,注释<%-- 注释翻译时忽略 -->
html
java //注释翻译时包含 编译时忽略
java /* */ 注释翻译时包含 编译时忽略
jsp指令元素包括 page include taglib
jsp动作元素包括 jsp:include jsp:forword jsp:useBean
<jsp:include page="Dyamic.jsp" >动作元素(静态include) 和 <%@ include file="STatic.jsp" %>指令元素(动态include) 的区别:
<%@ include:编译前包含
<jsp:include > 运行编译后包含
四种作用域 :page 当前页 request 一次请求 session 会话对象一算时间有效 application
session操作:存储在服务端 关闭浏览器就消失 setAttribute(key,value) getAttribute(key)
cookie: 不安全 明文存储在客户端磁盘 可以设置保存时间 最多4k
cookie操作: Cookie c=new Cookie(key,value)
setMaxAge(0) 不记录cookie
setMaxAge(-1) session级别的cookie 随session失效而失效
负整数时存在浏览器中,正整数时存在本地磁盘里
setMaxAge(72460*60) 单位为秒
setPath("/")
el表达式
如果不写作用域[Scope]就从page request session application
{header["user-agent"]}
数组 {map["key"]}
filter 应用:统一编码解码 权限验证 做网站计数等
特殊说明:过滤器可以是一个链,可以配置多个过滤器,可以在配置filterName过滤器名按首字母控制顺序
init实例初始化解码的参数 destroy清理垃圾
servlet3.0以后可以用向导建
servlet3.0以前要实现Filter接口在web.xml配置
监听器 本身是java类: 监听事件:session建立 系统启动 请求到达
建立方式:向导
先走监听器再走过滤器
网友评论