静态的web资源:
内容是一成不变的
动态的web资源:
内容有可能在不同的时间或者不同的人访问的时候会发生改变的
静态的web技术:
eg: html css js .....
动态的web技术: eg:servlet jsp
网络中有很多的计算机,它们直接的信息交流,我们称之为:交互。 在互联网交互的过程的有两个非常典型的交互方式——B/S 交互模型和C/S 交互模型。
B/S 交互模型(B/S架构)
就是浏览器和服务器交互模型。
C/S 交互模型(C/S架构)
就是客户端和服务器交互模型
相同点:
1.都是基于请求和响应的
请求: 浏览器发送给服务器的内容
响应: 服务器返回给浏览器的内容
2.必须先有请求后有响应
3.一次请求对应一次响应,请求和响应必须成对出现.
不同点:
c/s:需要客户下载客户端,页面比较炫,和服务器交互少,可以在客户端处理部分业务逻辑,可降低服务器的压力.需要维护客户端和服务器端
b/s:只需要客户有一个浏览器,一切页面从服务器加载,和服务器交互频繁,由服务器处理业务逻辑,服务器压力较大.只需要维护服务器端.
扩展: 架构选型
用户角度 开发角度 后期维护
本质上就是一台提供服务的电脑,将我们编写好的web项目发布出去,别人就可以通过网络访问到我们的项目(资源)
我们给服务器安装了什么样的软件,就可以提供什么样的服务,我们管它叫什么什么服务器
服务器软件名称 | 厂商 | 特点 |
---|---|---|
Weblogic | oracle | 大型的收费的支持javaEE所有规范的web服务器(servlet和jsp) |
websphere | ibm | 大型的收费的支持javaEE所有规范的web服务器(servlet和jsp) |
JBoss | JBoss | 开源,支持JavaEE规范,占用内存、硬盘小,安全性和性能高 |
tomcat | apache组织 | 小型的免费的支持servlet和jsp规范的"web服务器" |
下载:
http://tomcat.apache.org
core:
zip:可以在window上运行的(我们今天使用)
tar.gz:运行在linux上的
安装:
安装路径不要有中文
解压缩即可
目录结构
bin:存放可执行的文件 批处理文件(*.bat)
★conf:存放配置文件
lib:存放的是tomcat运行时和项目运行时必须的jar包
logs:存放的是日志文件(catalina.out)
temp:存放临时文件(不用管)
★★webapps:存放要发布的web项目
★work:存放项目运行时jsp转成的java文件和class文件
启动
双击 tomcat目录下/bin/startup.bat
关闭
方式1:点 x 方式2:ctrl + c (记住)方式3:双击 tomcat目录下/bin/shutdown.bat
访问tomcat服务器的格式:
浏览器和服务器的数据交互需要遵循http协议
tomcat服务器默认端口为 : 8080
http默认访问端口 : 80
格式:http://ip地址:端口号
eg: http://localhost:8080
配置:常见问题
一闪而过:
查看JAVA_HOME是否配置正确
端口占用: 可以修改Tomcat的端口号
修改 tomcat目录下/conf/server.xml 大约70行
myweb(目录名:项目名) | |---资源文件 html img css js |---WEB-INF(目录:特点,通过浏览器直接访问不到) | | | |---lib(目录:项目运行的jar包) | |---classes(目录:存放的class文件) | |---web.xml(核心配置文件,在servlet2.5版本中必须有,serlvet3.0版本以后不是必须的) |-----------|--js css html
http://localhost:80/myweb/1.html 协议://ip地址:端口/项目名称/资源
方式1: 直接将项目放到tomcat的webapps目录下
方式2:使用虚拟路径 (配置完毕后需要重启服务器)
a:自定义项目存放位置
b:更改tomcat配置文件(server.xml)
在server.xml的最后添加
写在Host标签中
path: 浏览器访问时的项目(该名称和项目名称一致)
docBase: 自定义项目存放的路径
方式3:配置独立xml文件 (无需重启服务器自动加载和卸载项目)
a:创建项目的xml文件
b:在tomcat/conf/Catalina目录中配置xml文件
Servlet就是运行在web服务器上的java程序,本质上就是一个java类.
一个类要想通过浏览器被访问到,那么这个类就必须直接或间接的实现Servlet接口
接收浏览器的请求
处理请求
生成响应信息
Servlet2.5:
1.编写一个类
实现servlet接口 重写Service(request,response)方法
2.编写配置文件(web.xml) 注册servlet 绑定路径
3.测试 http://localhost:8080/项目名称/绑定路径
Servlet3.0:
注解方式实现
1.编写一个类
实现servlet接口 重写Service(request,response)方法
2.在servlet类上添加 @WebServlet(name = "Demo" ,urlPatterns = "/demo")
name: 起名称
urlPatterns: 访问路径
对象 | 方法/描述 |
---|---|
Servlet:接口 | (掌握★)init:初始化 (掌握★)service:提供服务 (掌握★)destroy:销毁 (理解)getServletConfig():获取当前Servlet的配置对象 (了解)getServletInfo():获取Servlet信息 |
GenericServlet:(通用Servlet) | 实现了servlet接口的抽象类,实现servlet中除service方法之外的所有方法 |
HttpServlet:抽象类 | 继承GenericServlet,实现了Servlet的所有方法. |
编写servlet的最终方式: 继承HttpServlet,重写service方法
从创建到死亡的过程
控制生命周期的三个方法:
init:初始化
service:提供服务
destroy:销毁
面试题总结:
当浏览器第一次访问该servlet的时候,服务器会给我们创建该servlet的对象,并调用init()方法进行初始化,init()方法执行完毕后service方法会跟着执行. 以后再访问该servlet的时候,直接调用service()方法提供服务,并且是访问一次调用一次.(服务器不会再创建该servlet的对象,也不会调用init()方法进行初始化) 当服务器正常关闭的时候或项目从服务器中移除的时候,服务器会的调用destroy()方法,将该servlet的对象销毁 ★: 不论访问多少次只有一个servlet对象
单实例,多线程