1.初次加载
(1)预编译 pre-complie ->> *_jsp.java
(2)编译 compile ->>*_jsp.class
(3)加载 on load ->> running
2.重复加载
(1)加载内存,实例化
(2)实例化 instantiation
(3)初始化 init()
1.js校验
在浏览器中校验, 不需要提交页面到后端(给好人,正常人准备的)
2.服务器校验
jsp, servlet校验
在应用服务器中需要页面提交到后端服务器(给坏人,神经病准备的!!!)
1. 动态网负生成、渲染
数据显示
2. 数据的传输、保存
数据处理
JSP 隐含对象:用来保存、传送jsp页面的数据、实例
Servlet程序三部曲、
1.新创建一个子类,继承HttpServ1et
2. 重写doGetO, doPost0方法,
3. 修改. /NEB-INP /web. xml,增加servlet的URL映射
tomcat
目录配置:
/bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
/conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
/lib:存放所需的所有jar文件(整合了原来tomcat5.5中的common/share/server三个目录下的所有jar)
/logs:存放Tomcat执行时的日志文件
/temp:存放Tomcat运行时所产生的临时文件
/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
/work:存放JSP编译后产生的class文件
resin
jbuss
/web 存放页面及相关材料的
/js javascript 文件
/css 样式表文件
/img 图片资料
/WEB-INF web服务器配置
web.xml web服务器配置文件
/src
/com.chengdu.learn java源程序目录
./dao 持久层包(数据、数据库)
./business 业务层包(业务逻辑)
./control 控制器层包(servlet控制器)
<service>
./domain JAVABEAN包(数据封装)
<valueobject>
<vo>
<pojo>
<javabean>
./util 公共函数包
./common 常量定义包
/lib 项目需要的组件(类库)
/etc 项目资料
/sql 数据库安装脚本
/doc 项目文档
配置tomcat时,端口号不能冲突
*.jar java应用程序
*.war web应用程序
*.ear EJB应用程序
session 就是值浏览器!
java默认是 UNICODE 编码!
一. Server + let ,也就是服务器小程序 server let program,运行于服务器端 in server side。 只能在应用服务器运行。
与运行与客户端的小程序Applet对应。
开发时,需要extend继承 HttpServlet ,并rewrite 重写doPost(),doGet()方法。
二.Servlet,JSP 与CGI的比较
1. CGI 公共网关接口 common gateway interface
2. Servlet是持久的 persisted,而CGI是瞬态的 Instantaneous
3. Servlet是快速的 rapid ,内存滞留 memory retention。servlet可以多线程 Multi-thread
三.Servlet与JSP的关系 relation
1. Jsp 就是servlet
2. Jsp 的发布过程: Jsp script 脚本 --> java source源代码 --> class bytecode 字节码
3. Jsp script 是脚本程序, 简单易学, 适合做 user interative 用户交互。 只负责输入输出; Servlet 是java program程序,功能强大,适合做业务调度 business scheduling。
四.Servlet 的执行过程 execution progress
1. 加载 on load
2. 实例化 instantiation
3. 初始化 init()
4. 就绪 be ready
5. 卸载 destory()
五. 响应请求的模式 Response request mode
1. 单实例多线程模式 Single instance multithreading mode
2. 多实例模式 Multi instance pattern
A. 服务器 -> 服务器 request.setAttribute
B. 浏览器 -> 服务器 request.getAttribute
八. Servlet的调度 Dispatch
1.服务器页面调度 server page Dispatch
session.setAttribute("errmsg",flag);
request.getRequestDispatcher("/accountlist.jsp")
.forward(request,response);
在进行页面跳转之前,通常要设置request传递的参数。
2.客户端页面调度 client side Dispatch
response.
sendRedirect("http://support.huawei.com?command=login&user=2433");
在进行页面跳转的同时,将相关参数放到参数链上。
Level 1. 简单配置和发布;
表格内容显示
Level 2. 简单动态页面;
表单 提交, 响应request请求
Level 3. 静态参数读取。
全局参数、servlet参数
Level 4. Session 参数传递。
参数的传递
Level 5. 页面调度。
Servlet实现页面流转的两种方式
Level 6. 监听器。
监听Session创建过程,及属性改变过程。
Level 7. 过滤器。
用户访问web页面,系统预处理。
Level 8. 多媒体数据流。
用servlet实现图片显示。
Level 9. 图片上传。
用servlet实现图片的上传。
实现了主页面(列表页)的同步刷新,href是要关联刷新的页面,即设置同步
<body onload="window.opener.location.href='xx.jsp'">
问题A: 界面渲染跟功能没有分离, 程序员和美工UI 都很痛苦
问题B: jsp页面数据不安全, 容易泄露和篡改
问题: A. JSP只负责渲染,显示
B. Servlet/action 负责数据存储, 转化, 页面调度等等
改进: 将验证部分放到了 java控制器中, 在web.xml 中配置控制器