主要内容
- B/S编程模式简介
- HTML和HTTP
- 动态web编程
- 初识Servlet & JSP
- MVC设计模式初步讨论
B/S编程模式简介
- Web服务器
- Web服务器接收客户端的请求并将结果返回客户端
-
结果:HTML页面、图片、文件、……
- Web客户端
- Web客户端可以使用户向服务器提出请求,并向用户展现请求的结果
-
浏览器知道如何与服务器通信,并能够解释HTML代码并展现Web页。
HTML和HTTP
- 请求/响应方式
- HTML告诉浏览器怎样为用户显示内容
- HTTP是客户端和浏览器在Web上通信的协议
- 服务器使用HTTP向客户端发送HTML
- HTML
- HTTP
- 基于TCP/IP协议
- HTTP请求包括:HTTP方法(执行的动作)、访问的页面URL、表单参数
- HTTP 1.1 method
- 告诉服务器请求的类型,剩余的消息是如何被格式化的
- GET, PUT, POST, TRACE, DELETE, OPTIONS, HEAD, CONNECT
- GET
- 是最简单的请求,它向服务器获取一个资源并将之发回
- 可以用HTTP GET向服务器发送少量的数据
-
一个GET例子
- POST
- 向服务器请求资源,同时可以发送一些表单数据
-
一个POST例子
- 发送数据用POST不用GET的理由
- 数据大小:GET中的字符量按服务器不同有限制
- 安全性:用GET发送的数据被附加到URL后面,任何人可以看到。不适于发送敏感数据
-
HTTP响应包括:状态码(请求是否成功)、内容类型(text/picture/HTML,etc)、内容(实际的HTML, image, etc)
动态web编程
- 常见的两种动态Web需求
- 动态内容
- 在服务器上储存数据
-
基本原理
初识Servlet & JSP
- First servlet, let’s do it!
-
建立文件目录结构
-
编写FirstServlet.java代码,并放到src目录中
-
编写部署描述符文件web.xml,放在etc目录中
- 每个web应用都有一个部署描述符文件(DD)
- 一个DD可以定义多个servlets
- <servlet-name>将<servlet>元素绑定到<servlet-mapping>元素
- <servlet-class>是Java类
- <url-pattern>是客户端用于请求servlet的名字
- 编写部署描述符文件web.xml,放在etc目录中
-
在tomcat目录下建立目录树
-
在project1目录下,编译servlet
- 拷贝FirstServlet.class至WEB-INF/classes拷贝web.xml至WEB-INF中
- 启动Tomcat
- 打开浏览器到如下网址:http://localhost:8080/ch1/Serv1
-
-
How to… if JSP
- Servlet container
- servlet没有main()方法,被容器控制
- 容器将HTTP请求和响应传给servlet,并调用servlet上的方法,如doPost()或doGet()
- servlet容器提供的服务
- 通信支持
- Servlet可以通过容器与web服务器通信
- 程序员不需自己建立ServerSocket,监听端口,创建流等
- 寿命周期管理
- 容器控制servlet的“生死”
- 容器负责加载类、实例化和初始化servlet、调用servlet方法、对servlet实例进行垃圾回收等工作
- 多线程支持
- 容器根据对servlet的请求,自动创建Java线程
- 开发者仍要处理线程安全问题
- 声明式安全
- 用XML部署描述符配置安全,无需硬编码
- JSP支持
-
将JSP转化成Java代码
-
- 通信支持
-
The Code
- 容器怎样找到servlet
- Servlet——狡兔三窟
- 客户端名:URL
……/register/registerMe - 部署名:内部保密
EnrollServlet - 真实名:文件
SignUpServlet.class
- 客户端名:URL
- Servlet映射机制提高了应用程序的柔性和安全性!
-
The DD
- DD的好处
- 基本不需要修改经过测试的代码
- 可以利用DD优化应用程序性能,甚至不写任何代码
- 使应用程序能够适应不同的资源,如数据库,不需要重新编译和测试代码
- 使得维护动态安全性变得非常容易,如ACL和安全角色
- 可以让非程序员修改和部署web应用程序,而程序员关注更重要的事
- Servlet——狡兔三窟
MVC设计模式初步讨论
-
模式说明
- 特点
- MVC将业务逻辑从servlet中分离,放到模型(Model)中。模型是可复用的POJO,是业务数据(如购物车状态)和操作这些数据的方法(规则)的组合。
- 多个视图可共享一个模型
- 控制器可以连接不同的模型与视图
- 增强了软件健壮性和复用性
网友评论