本帖最后由 小石姐姐 于 2018-2-8 14:55 编辑
1) C/S 客户端服务器 Client/Server qq,迅雷
*优点:客户体验好,速度快
*缺点:服务器端更新,客户端都需要更新
2)(主流) B/S 浏览器服务器 Browser/Server 淘宝,京东,WEB版的QQ
*优点:服务器端更新,客户端的浏览器是不需要更新的
*缺点:体验一般,服务器的压力会比较大
效果体验:可以使用html5,css3可以做出很好的效果
服务器端的压力:搭建服务器的集群,而且还有ajax的技术
二.web的资源
1)静态资源:
html,css,js,图片....
2)动态资源:
PHP:
ASP:
Servlet/JSp:
三.服务器
硬件:其实就是一台配置很高的电脑
软件:必须在一台电脑上安装服务器软件
常见的web服务器软件
apache,用来发布php
IIS,发布asp
webphere,IBM公司的,收费的,大型的服务器软件,支持EE的所有开发
Weblogic,BEA公司的,收费的,大型的服务器软件,支持EE的所有开发
Tomcat,Apache组织研发的,免费的,小型服务器,支持servlet和js的开发
JBose,
四.web动态资源的目录结构
五.tomcat的安装
下载地址:...免费的
tomcat的目录结构:
bin:执行文件
conf:配置文件
lib:运行时需要的jar包
logs:日志文件
temp:临时文件
webapps:java项目发布存放位置
work:运行jsp的时候,jsp被翻译成servlet的存放路径.
六.发布一个web项目到tomcat中
方式1;
直接将一个app复制粘贴到tomcat/webapps中
方式2 (不推荐)
配置tomcat的虚拟路径
在tomcat/conf/server.xml中
配置 <host></host>的添加Context标签 path(虚拟路径) docBase(真实路径)
方式3
配置tomcat的虚拟路径
在tomcat下,有个conf/Catalina/localhost/XXX.xml
xxx作为虚拟路径名称
七.使用一个sts工具发布一个项目
八.tomcat常见的问题
1.javaHome没有配置,引发tomcat启动一闪而失
2.端口号冲突问题,修改端口号(端口号应该是唯一的)
一台电脑如果启动多个tomcat就需要修改server.xml的端口号
九.http协议
1)Http协议:(超文本传输协议)
用来规定浏览器和服务器用来遵守的规则.
2)http协议的作用:
规范浏览器和服务器之间的数据传输
3)http协议的特点
基于请求和响应的模型.
先有请求后有响应
请求和相应必须成对的出现
默认的端口号是80.
4)HTTP协议的版本:
1.0:每次响应后即刻关闭了连接
1.1:(现在使用) 一段时间没有相应才会关闭
十.http请求的结构
1)请求部分
请求行
提交方式
常用的get 和 post
get的提交参数会显示到地址栏上,而post不显示
get往往有大小的显示, 而post没有大小的限制
get没有请求体,post有请求体
提交路径:
版本协议:
请求头
都是键值对的形式显示的,一般一个key对应一个value,个别一对多
User-Agent: 代表浏览器的类型,以及电脑的信息,系统--文件下载:不同浏览器不同处理
Referer: 代表网页的来源--防盗链
If-Modified-Since: 通常与相应中的头 Last-Modified一起使用查找本地缓存.
请求体:
就是post提交,表单中的参数
十一.响应的结构
1)响应行
协议的版本
状态码
200 响应成功
404 访问资源不存在
500 服务器内部错误
304 查找本地缓存
302 重定向
状态码的描述
2)响应头
也是键值对,一对一或者一对多
Last_Modified : 与请求头一起使用,查找本地缓存
Content_Disposition:文件下载使用的一个头信息
Location : 重定向跳转的路径
Reresh :定时刷新(跳转)
3)响应体:显示浏览器页面的内容
html页面
十二.servlet
1)什么是servlet:
就是运行在服务器端的是一个java类
sun公司提供的动态的网页开发技术.
2)servlet的作用:
用来处理从客户端浏览器发送的请求,并且可以对请求做出响应
3)使用servlet
a.编写一个类实现servlet接口
b.将编写的这个类配置到服务器中
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>com.itheima.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
4)使用ServletRequest接收参数
String getParameter(String name)
String[] getParameterValues(String name)
Map getParametermap()
...
5)Servlet的执行流程
req.setCharacterEncoding("utf-8");请求体的编码设置
day12 servlet& httpservlet
一.servlet完成一个登陆案例
二.servlet生命周期
1)声明周期的概念:
一个对象从创建到销毁的过程
2)servlet的生命周期:
单例模式?
何时创建:
用户第一次访问servlet时 创建servlet实例
何时销毁:
当项目从服务器中移除或者关闭服务器,销毁servlet
用户第一次访问Servlet的时候,服务器会创建一个Servlet实例,那么
Servlet中的init方法就会执行,任何一个请求服务器都会创建一个线程
访问servlet的service方法......(待完成)
三.servlet的配置
1.如果一个servlet有很多类需要加载的时候,可以让服务器在启动的时候就创建servlet,需要用到这个标签
<servlet>
<load-on- startup>2</load-on-startup>(数字越小优先级越高)
建议:不要使用1
</servlet>
2.<url-pattern>
1)完全路径匹配 以"/"开始
2)目录匹配 以"/" 开始 需要以* 结束.
3)扩展名匹配 不能以"/" 开始 *.XX 结束
优先级 完全匹配>目录匹配>扩展名匹配
四.servlet的路径问题
1.相对路径:都是需要找位置的相对关系
不能以"/"开始
2.绝对路径:不需要找位置的相对关系 (推荐)
以"/"开始
带有协议的的路径"http://localhost:8080/web12/demo"
没有带协议的路径"/web12/demo"
*客户端路径: 一定要加工程名 /web12/demo
*服务器端路径: 不需要加工程名 /demo (转发的时候会用)
五.案例二.登录成功后5秒跳转页面
1)需求:
在登录成功以后,页面5秒后跳转到其他的一个页面.
2)使用Http协议中的头信息,
refresh 可以定时页面跳转,需要使用程序设置头信息才可以.
addHeader(String name,String value)
一个key对应多个value的响应头
...
setHeader(String name ,String value)(使用较多)
一个key对应一个value的响应头
...
3)代码实现
在登录成功后,定时跳转
六.案例三.记录网站的登录成功的人数
登录成功后,5秒后跳转到某个页面,在页面中显示您是第X位登录成功的用户.
ServletContext对象
方法
存值和取值
ServletConfig对象
方法
String getServletName()
String agetInitParamMeter(String name);
getInitParamMeterNames();
ServletConText对象概述
作用:
1.获得全局的初始化参数
2.用来获得文件的MIME的类型
3.作为域对象来存取数据
4.用来读取web项目下的文件
ServletContext是一个域对象
*作用范围:整个web工程
*创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象
销毁:服务器关闭的时候,或者项目从服务器移除的时候
ServletContext读取web下的文件
getRealPath()
getResourceAsStream()
day13 request & response
一.ServletContext 读取文件
方式1.getRealpath
方式2.getA.....
全局初始化参数
<context-param>
枚举啥意思?
二.获取mime类型
三.类加载器
四.登录成功,文件下载
Response响应
响应行
setStatus()
响应头
addHeader 追加
setHeader 覆盖
响应体
getOutputStream
getWriter
文件下载的方式
1)超链接下载. 前提.文件类型,浏览器不支持
2)手动编写代码的方式完成文件的下载
*设置两个头和一个流
content-type 文件的mime的类型
content-Diposition 以下载的方式打开文件
inputStream 文件的字节输入流 (读取服务器本地资源,准备输出)
五.中文乱码的问题解决
1.response
getWriter()
getOutputStream()
这两个方法是互斥的.
2.设置浏览器默认打开的时候编码
response.getOutputStream().write("中文".getBytes("UTF-8"))
response.setContentType("text/html;charset=UTF-8");
编码和解码一致就可以了
3.重定向
response.setRedirect(路径)
4.乱码处理
字节流
设置浏览器
设置中文取出的编码
字符流
设置浏览器
设置缓冲区
六.注册的案例:
七.request对象
getMethod()
getRemoteAddr()
getcontextPath();
getRquestURL/getREquestURI
2.request作为域对象的范围
范围:一次请求
创建:客户端向服务器发送了一次请求以后
销毁:当服务器对这次请求做出了响应之后.
八.重定向和转发的区别
forword和redicrect
4点不同
|