黑马程序员日记-8
2015-11-18 20:09
267 查看
------- Android培训、java培训 期待与您交流!
----------
网络结构,
1,C/S client/server
特点:
该结构的软件,客户端和服务端都需要编写。
可发成本较高,维护较为麻烦。
好处:
客户端在本地可以分担一部分运算。
2,B/S browser/server
特点:
该结构的软件,只开发服务器端,不开发客户端,因为客户端直接由浏览器取代。
开发成本相对低,维护更为简单。
缺点:所有运算都要在服务端完成。
JAVA WEB三大组件:Servlet、Filter、Listener
Servlet
1.作用:处理请求
2.做的事情:接受请求数据,处理请求,完成响应
3.方法:
a) 生命周期方法:
1.init();servlet对象创建之后立即执行,并只执行一次
2.service();会被调用多次,每次处理请求都调用这个方法
3.destroy();servlet对象被销毁之前调用,并只调用一次
b) getServletInfo();获取Servlet的信息
c) getServletConfig();获取Servlet的配置信息
4. Servlet是单例的,线程不安全的,其对象由服务器创建,由服务器调用相应方法
5. 在web.xml中配置Servlet:
web.xml
6. ServletConfig类:
一个ServletConfig对象对应一段web.xml中Servlet的配置信息
7. ServletContext类:
一个项目只有一个ServletContext对象,可以在多个Servlet中获取这个唯一的对象,使用它可以给多个Servlet传递数据,这个对象在Tomcat启动时创建,在Tomcat关闭时销毁
域对象:
ServletContext是JavaWeb四大域对象之一:
PageContext;
ServletRequest;
HttpSession;
ServletContext;
所有域对象都有存取数据的功能,因为域对象内部有一个Map,用来存储数据。
Servlet也可以获取初始化参数,但它是局部的参数;也就是说,一个Servlet只能获取自己的初始化参数,不能获取别人的,即初始化参数只为一个Servlet准备!
可以配置公共的初始化参数,为所有Servlet而用!这需要使用ServletContext才能使用!
例如:该配置信息独立于<servlet>标签之外
8. Response的两个流ServletOutputStream和PrintWriter不能共存,会有状态异常
服务器处理请求的流程:
服务器每次收到请求时,都会为这个请求开辟一个新的线程。
服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!
服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。
response:其类型为HttpServletResponse
ServletResponse-->与协议无关的类型
HttpServletResponse-->与http协议相关的类型
> 重定向是客户端信息必须带项目名
> 转发是服务端信息,不用带项目名
AServlet重定向到BServlet时,BServlet不能获取保存在AServlet中的数据,因为重定向使用了一个新的request对象
* 请求转发和重定向的区别
> 请求转发是一个请求一次响应,而重定向是两次请求两次响应
> 请求转发地址栏不变化,而重定向会显示后一个请求的地址
> 请求转发只能转发到本项目其他Servlet,而重定向不只能重定向到本项目的其他Servlet,还能定向到其他项目
> 请求转发是服务器端行为,只需给出转发的Servlet路径,而重定向需要给出requestURI,即包含项目名!
> 请求转发和重定向效率是转发高!因为是一个请求!
* 需要地址栏发生变化,那么必须使用重定向!
*需要在下一个Servlet中获取request域中的数据,必须要使用转发!
----------
网络结构,
1,C/S client/server
特点:
该结构的软件,客户端和服务端都需要编写。
可发成本较高,维护较为麻烦。
好处:
客户端在本地可以分担一部分运算。
2,B/S browser/server
特点:
该结构的软件,只开发服务器端,不开发客户端,因为客户端直接由浏览器取代。
开发成本相对低,维护更为简单。
缺点:所有运算都要在服务端完成。
JAVA WEB三大组件:Servlet、Filter、Listener
Servlet
1.作用:处理请求
2.做的事情:接受请求数据,处理请求,完成响应
3.方法:
a) 生命周期方法:
1.init();servlet对象创建之后立即执行,并只执行一次
2.service();会被调用多次,每次处理请求都调用这个方法
3.destroy();servlet对象被销毁之前调用,并只调用一次
b) getServletInfo();获取Servlet的信息
c) getServletConfig();获取Servlet的配置信息
4. Servlet是单例的,线程不安全的,其对象由服务器创建,由服务器调用相应方法
5. 在web.xml中配置Servlet:
web.xml
<servlet> <servlet-name>xxx</servlet-name> <servlet-class>cn.itcast.web.servlet.AServlet</servlet-class> <!-- 服务器启动时创建该Servlet对象,值越小越先创建 --> <load-on-startup>0</load-on-startup> <servlet-mapping> <!-- 具体要访问的Servlet,必须与Servlet配置名称相同 --> <servlet-name>xxx<servlet-name> <!-- 地址栏访问的Servlet地址,必须以/开头,名称随便 --> <url-pattern>/AServlet</url-pattern> </servlet-mapping> <!-- 可以有多个初始化参数 --> <init-param> <param-name>p1</param-name> <param-value>v1</param-value> </init-param> <init-param> <param-name>p2</param-name> <param-value>v2</param-value> </init-param> </servlet>
6. ServletConfig类:
一个ServletConfig对象对应一段web.xml中Servlet的配置信息
7. ServletContext类:
一个项目只有一个ServletContext对象,可以在多个Servlet中获取这个唯一的对象,使用它可以给多个Servlet传递数据,这个对象在Tomcat启动时创建,在Tomcat关闭时销毁
域对象:
ServletContext是JavaWeb四大域对象之一:
PageContext;
ServletRequest;
HttpSession;
ServletContext;
所有域对象都有存取数据的功能,因为域对象内部有一个Map,用来存储数据。
Servlet也可以获取初始化参数,但它是局部的参数;也就是说,一个Servlet只能获取自己的初始化参数,不能获取别人的,即初始化参数只为一个Servlet准备!
可以配置公共的初始化参数,为所有Servlet而用!这需要使用ServletContext才能使用!
例如:该配置信息独立于<servlet>标签之外
<context-param> <param-name>paramName1</param-name> <param-value>paramValue1</param-value> </context-param>
8. Response的两个流ServletOutputStream和PrintWriter不能共存,会有状态异常
服务器处理请求的流程:
服务器每次收到请求时,都会为这个请求开辟一个新的线程。
服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!
服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。
response:其类型为HttpServletResponse
ServletResponse-->与协议无关的类型
HttpServletResponse-->与http协议相关的类型
> 重定向是客户端信息必须带项目名
> 转发是服务端信息,不用带项目名
AServlet重定向到BServlet时,BServlet不能获取保存在AServlet中的数据,因为重定向使用了一个新的request对象
* 请求转发和重定向的区别
> 请求转发是一个请求一次响应,而重定向是两次请求两次响应
> 请求转发地址栏不变化,而重定向会显示后一个请求的地址
> 请求转发只能转发到本项目其他Servlet,而重定向不只能重定向到本项目的其他Servlet,还能定向到其他项目
> 请求转发是服务器端行为,只需给出转发的Servlet路径,而重定向需要给出requestURI,即包含项目名!
> 请求转发和重定向效率是转发高!因为是一个请求!
* 需要地址栏发生变化,那么必须使用重定向!
*需要在下一个Servlet中获取request域中的数据,必须要使用转发!
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统