黑马程序员技术交流社区
标题:
【石家庄校区】tomcat&servlet
[打印本页]
作者:
巴拉巴拉x
时间:
2018-5-21 10:23
标题:
【石家庄校区】tomcat&servlet
本帖最后由 巴拉巴拉x 于 2018-5-21 10:24 编辑
tomcat&servlet
tomcat
软件架构
c/s架构:客户和服务端的软件,都是需要在PC端安装的软件.
优点:
用户体验好,速度快,
缺点:
后期维护麻烦.服务端更新,客户端也得跟着更新
b/s架构:浏览器和服务端的软件,不需要安装到PC端,只需要一个浏览器即可.
优点:
服务器端更新,客户端浏览器不需要更新
缺点:
显示不太好,所有的代码都在运行在服务端,导致服务器压力过大
现在:可以使用HRML5,css做出很炫的效果
服务器压力:搭建服务器的集群,而且还有AJAX技术,
web的资源
静态资源:数据是静态的
HTML,CSS,JS,图片...
动态资源:数据是动态的
PHP:
ASP:
Servlet/JSP:
服务器
硬件
就是一台配置很高的电脑
软件
必须在一台电脑上安装服务器软件.
tomcat
websphere was
weblogic
统称为中间件
软硬件都全了,才可以被称位WEB服务器.
常见WEB服务器
Apache:发布PHP的
IIS:发布ASP的
WebSphere:IBM公司研发的收费的大型服务器软件,支持EE的所有的开发规范
WebLogic:BEA公司研发
Tomcat:Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范
JBoss:
免费的常用软件LAMP
L:
A:
M:
P:
WEB动态资源目录结构
website:站点
静态资源
WEB-INF
Web.xml
classes
软件下载:
http://tomcat.apache.org
arg.gz是Linux系统版本的
tomcat 软件安装
解压即用
Tomcat的目录结构
conf:配置文件
bin:tomcat的执行文件
lib:Tomcat运行需要的jar包
logs:Tomcat运行的日志文件
temp:Tomcat产生的临时文件存放的路径
webapps:Tomcat发布的web项目的路径
work:Tomcat在运行JSP的时候,JSP被翻译成Servlet的代码存放的路径.
backup:备份文件的存放路径.
Tomcat发布web项目的集中方式
把项目复制到Tomcat的webapps目录下
发布了新项目后最好把Tomcat重启一下.
配置Tomcat虚拟路径:不推荐,因为要修改Tomcat的核心配置文件,容易出现错误,有了错误服务器就会启动不了
在Host标签下配置< contex path="" docbase=""></contex>
path:是虚拟路径,就是在地址栏输入的路径
docbase:是对应的硬盘上文件的实际路径.
官方推荐的配置方法:
在Tomcat/conf/Catalina/localhost/xxx.xml文件,文件内写一个Contex标签:XML的文件名就是path的值,标签内的docbase的值就是具体的项目存放的位置.
把一个项目打包成一个xx.war的形式,一启动Tomcat就会把这个war包自动解压到当前文件.(企业中常用)
tomcat常见问题
查看问题
用编辑器打开,启动文件,在最后边加上pause,然后启动,修改完成后把pause删除.
没有配置JAVA_HOME环境变量
去配置一个JAVA_HOME变量
端口号冲突问题
如何查看系统占用端口号
netstat -ano
打开任务管理器,找到详细信息
把占用这个端口的进程全部关闭
把tomcat程序的端口号改了
sevelet
http协议
约束浏览器(客户端)和数据库(服务器)之间数据交互规则
超文本传输协议,
作用:
用来规范浏览器和服务器之间的数据传递
https协议,在http的基础上增加了一项安全保护
协议:
规定双方需要遵守的规则
http协议的特点
基于请求和相应的模型
客户端浏览器发起请求,服务器返回响应,
必须先有请求后又响应
请求和响应必须成对出现
默认的端口号是:80
http协议的版本
1.0:每次响应后即可关闭了连接
1.1:每次响应后在指定时间内部会挂断,超过指定时间才会挂断
http协议的演示
安装抓包工具:httpWatch::不太好用,不建议使用,使用浏览器的开发者工具network.
先输入网址,然后点击记录,再回车访问地址
左边的是请求部分,右边的是响应部分
302:从本地缓存打开
请求分为get/post方式(两种请求方式,返回的响应部分是一样的)
get方式
分三部分
请求行(第一行):请求方式,请求路径,协议版本
请求头:一般都是key,value键值对的形式,一般情况下一个key对应一个value,也有对多个的
空行
没有请求体
post方式
分三部分
请求行(第一行):请求方式,请求路径,协议版本
请求头:一般都是key,value键值对的形式,一般情况下一个key对应一个value,也有对多个的
空行
请求体:
get/post常用,还有6种提交方式
get和post的区别
get提交的参数会显示到地址栏上,而post不会,post提交的参数在请求体内.
get提交的数据往往有大小限制,而post没有
上传文件的时候不要使用get,用post方式
get没有请求体,而post有请求体,
只有表单设置了post才是post方式,其他的一般都是get方式
请求头中有一部分是有特殊含义的
User_Agent--->代表的是浏览器的类型:主要用来解决下载的文件乱码问题,不同的浏览器采用的编码方式可能不一样
Referer--->记录网站的来源:作用可以防盗链,(设置指定的来源可以进行浏览)
If-Modified-Since:通常与相应中的头(Last-Modified)一起使用查找本地缓存
请求体:就是提交的数据,不同的数据之间用 & 来隔开
location.href="",跳转页是get提交方式.
响应
分成了三部分
响应行:协议版本,状态码 状态码的描述
状态码:
200:成功
302:重定向
304:查找本地缓存
404:资源不存在(查找路径,提交路径)
500:服务器内部错误
响应头:键值对的形式,通常情况下一个key对应一个value,也有一个key对应多个value的情况
重要的
Last-Modified:与请求中的If-Modified-Since一起使用查找本地缓存
Content-Dispostion:文件下载的时候使用的一个头信息
Location:重定向的路径跳转的路径结合302使用
Refresh:定时刷新(定时跳转)
Cookit:
空行
响应体:提交路径对应界面的代码.
Servlet的概述
什么是Servlet
查找ee文档
就是一个运行在web服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用http协议
Servlet就是SUN公司提供的一个动态网页开发技术
作用
接收从客户端浏览器发送的请求,并且可以对请求做出做出处理并响应回客户端
使用
编写一个类实现Servlet接口
将编写的这个类配置到服务器中
Servlet的入门
编写类实现Servlet接口,
在有两个参数(请求和响应)的那个方法(service)内,写代码(代码是运行在服务器上的)
所有的请求内容都会封装到..中
使用ServletRequest接收对象
方法看API
String getParameter(String name):用于接收一个名称对应一个值的数据
String getParameterValues(String name):用于接收一个名称对应多个值的数据
Map getParameterMap();用于接收表单中的所有数据,Map的key是表单中提交的参数名称,Map的value是提交参数的值
Enumeration getParameter
地址栏访问规则
协议:http://
服务器地址:localhost
程序:端口--->8080
工程名称
去web.xml中根据标签(url-pattern)及其内容去匹配
找到包含请求内容的url标签对应的Servlet标签,根据Servlet标签的文本内容找到和他有一样内容的Servlet标签,再找这个标签对应的servlet-class标签,这个标签的内容就是指定的java类,找到这个类,把参数传递进入这个java程序中,进行处理.
web项目是运行在服务器上的.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2