A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-2-8 14:55 编辑

day11 tomcat
一.软件的架构

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点不同




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马