2)Cookie技能: 会话数据保存在浏览器客户端。

Cookie核心的API:

2.1 在做事器端创建Cookie工具

jsp开发入门web编程教程jsp入门进修的笔记 Bootstrap

Cookeie cookie = new Cookie("name","value");

2.2 把cookie发送给浏览器端(通过相应头:set-cookie)

response.addCookie(cookie);

2.3 浏览器带着cookie信息访问做事器(通过要求头:cookie),做事器得到cookie信息

Cookie[] cookies = request.getCookies();

局限:

1)只能保存字符串类型,不能保存中文

2)一个cookie不能超过4kb

3)Session技能:会话数据保存在做事器端。
(内存)

Session核心的API:

3.1 创建或得到session工具

HttpSession session = request.getSession(); //创建或得到session工具

request.getSession(false); //得到session工具

3.2 会话数据保存session工具中,和得到会话数据

session.setAttribute("name",Object); 保存数据

session.getAttribute("name") 得到数据

把稳:

1)session.setIntactiveInterval(韶光); 设置session过期韶光

2)session.invalidate() 手动销毁session工具

2 Session案例

用户登录场景

3 编程实战

通讯录程序

软件的生命周期

3.1 需求剖析(需求剖析师)

功能剖析:

1)添加联系人

2)修正联系人

3)删除联系人

4)查询所有联系人

功能流转

美工设计: 设计软件的静态原型

3.2 需求设计(系统剖析师/架构师/资深开拓职员)

1)设计实体(抽象实体)

联系人实体:

class Contact{ private String id; private String name; private String gender; private int age; private String phone; private String email; private String qq;}

2)设计"数据库",(xml代替"数据库")

contact.xml<contactList><contact id="1"><name>张三</name><gender>男</gender><age>20</age><phone>13433334444</phone><email>zs@qq.com</email><qq>43222222<qq></contact></contactList>

3)设计涉及的接口

DAO接口(数据访问工具):实体工具的CRUD方法。

项目原则: 常日一个实体工具就会对应一个DAO接口和一个DAO实现类

interface ContactDao{ public void addContact(Contact contact);//添加联系人 public void updateContact(Contact contact);//修正联系人 public void deleteContact(String id);//删除联系人 public List<Contact> findAll(); //查询所有联系人 public Contact findById(String id);//根据编号查询联系人}

4)设计项目的目录构造

项目名称: contactSys_web

目录构造:

|- contactSys_web |-src |-gz.itcast.contactSys_web.entity : 存放实体工具 |-gz.itcast.contactSys_web.dao : 存放dao的接口 |-gz.itcast.contactSys_web.dao.impl: 存放dao的实现类 |-gz.itcast.contactSys_web.servlet: 存放servlet的类 |-gz.itcast.contactSys_web.test: 存放单元测试类 |-gz.itcast.contactSys_web.util: 存放工具类 |-gz.itcast.contactSys_web.exception: 存放自定义非常类 |-WebRoot |-html文件 |-images:目录。
存放图片资源 |-css:目录。
存放css资源 |-js:目录。
存放js资源
3.3 编码实现(软件开拓工程师/攻城狮)

开拓顺序:

设计数据库-> 实体 -> DAO接口,DAO实现-> Servlet+html页面

3.4 功能测试(测试攻城狮)3.5 性能测试(测试攻城狮)3.6 支配上线(履行攻城狮)3.7 掩护阶段(履行攻城狮)4 Jsp根本4.1 Jsp引入

Servlet的浸染: 用java措辞开拓动态资源的技能!


Jsp的浸染:用java措辞(+html措辞)开拓动态资源的技能!


Jsp便是servlet!


4.2 Jsp的特点

1)jsp的运行必须交给tomcat做事器!



tomcat的work目录: tomcat做事器存放jsp运行时的临时文件

2)jsp页面既可以写html代码,也可以写java代码。

(html页面不能写java代码 。
而jsp页面可以写java代码)

4.3 体验jsp页面浸染

需求:显示当前韶光到浏览器上

可以把jsp页面当做html页面在tomcat中访问!


4.4 Jsp的实行过程

问题: 访问http://localhost:8080/day12/01.hello.jsp 如何显示效果?

1)访问到01.hello.jsp页面,tomcat扫描到jsp文件,在%tomcat%/work把jsp文件翻译成java源文件

(01.hello.jsp -> _01_hello_jsp.java) (翻译)

2)tomcat做事器把java源文件编译成class字节码文件 (编译)

(_01_hello_jsp.java -> _01_hello_jsp.class)

3)tomcat做事器布局_01_hello_jsp类工具

4)tomcat做事器调用_01_hello_jsp类里面方法,返回内容显示到浏览器。

第一次访问jsp:

走(1)(2)(3)(4)

第n次访问jsp:

走(4)

把稳:

1)jsp文件修正了或jsp的临时文件被删除了,要重新走翻译(1)和编译(2)的过程

4.5 疑问

问题: 为什么Jsp便是servlet!


jsp翻译的java文件:

public final class _01_hello_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent {

HttpJspBase类:

public abstract class org.apache.jasper.runtime.HttpJspBase extends javax.servlet.http.HttpServlet implements javax.servlet.jsp.HttpJspPage {

结论: Jsp便是一个servlet程序!


servlet的技能可以用在jsp程序中

jsp的技能并不是全部适用于servlet程序!

Servlet的生命周期:

1)布局方法(第1次访问)

2)init方法(第1次访问)

3)service方法

4)destroy方法

Jsp的生命周期

1)翻译: jsp->java文件

2)编译: java文件->class文件(servlet程序)

3)布局方法(第1次访问)

4)init方法(第1次访问):_jspInit()

5)service方法:_jspService()

6)destroy方法:_jspDestroy()

5 Jsp语法5.1 Jsp模板

jsp页面中的html代码便是jsp的模板

5.2 Jsp表达式

语法:<%=变量或表达式%>

浸染: 向浏览器输出变量的值或表达式打算的结果

把稳:

1)表达式的事理便是翻译成out.print("变量" );通过该方法向浏览器写出内容

2)表达式后面不须要带分号结束。

5.3 Jsp的脚本

语法:<%java代码 %>

浸染: 实行java代码

把稳:

1)事理把脚本中java代码原封不动拷贝到_jspService方法中实行。

5.4 Jsp的声明

语法:<%! 变量或方法 %>

浸染: 声明jsp的变量或方法

把稳:

1)变量翻译成成员变量,方法翻译成成员方法。

5.5 Jsp的注释

语法: <%!-- jsp注释 --%>

把稳;

1)html的注释会被翻译和实行。
而jsp的注释不能被翻译和实行。

6 Jsp的三大指令6.1 include指令

浸染: 在当前页面用于包含其他页面

语法: <%@include file="common/header.jsp"%>

把稳:

1)事理是把被包含的页面(header.jsp)的内容翻译到包含页面(index.jsp)中,合并成翻译成一个java源文件,再编译运行!

,这种包含叫静态包含(源码包含)

2)如果利用静态包含,被包含页面中不须要涌现全局的html标签了!


(如html、head、body)

6.2 page指令

浸染: 见告tomcat做事器如何翻译jsp文件

<%@ pagelanguage="java" --见告做事器利用什么动态措辞来翻译jsp文件import="java.util." --见告做事器java文件利用什么包导入包,多个包之间用逗号分割pageEncoding="utf-8" --见告做事器利用什么编码翻译jsp文件(成java文件)contentType="text/html; charset=utf-8" 做事器发送浏览器的数据类型和内容编码把稳:在开拓工具中,往后只须要设置pageEncoding即可办理中文乱码问题errorPage="error.jsp"isErrorPage="false"buffer="8kb"session="true"isELIgnored="false"%>6.3 taglib指令

总结:

1)编码实战:

1.1 servlet运用

1.2 初步理解软件开拓流程

2)Jsp根本

2.1 Jsp的实行事理(翻译-》编译-》servlet的生命周期)

2.2 语法(jsp表达式,jsp脚本)

2.3 指令

include指令

page指令