web了解和第一个servlet
文章目录
HTTP协议
什么是HTTP协议:
Hyper Text Transfer Protocol 超文本传输协议
规范浏览器和服务器之间数据的传输格式(例如寄快递 寄件格式固定)
键值对的格式
http允许传输任意类型的数据格式(可以寄任意类型的包裹)!正在发送的数据格式用content-type来标识,告诉服务器传过来的是什么类型的数据
没有http协议可以进行数据传输 但是会限制互联网的发展(比如 数据传输是基于谷歌浏览器的,那么对于IE浏览器就会有问题)
url组成:服务器地址:端口号/虚拟项目名/servlet的别名
uri:虚拟项目名/servlet
http请求组成部分:
get请求:请求行,请求头,请求空行
post请求:请求行,请求头,请求空行,请求体
get和post请求的区别:
默认get,get效率高,传输的数据暴露在url中不安全
post传输的数据量大,效率低,安全
http响应组成部分:
响应是将服务器的数据传送给浏览器,浏览器进行解析,get,post是针对请求的
状态行,响应头,响应空行,响应体
http特点:
无连接:第一次请求和响应结束后断开连接,一次连接处理一个请求(打电话一次接通后挂掉再接通)(http1.1之后有持续连接)
无状态:对数据没有记忆(例如淘宝第一次登录和第二次登录)
服务器介绍及tomcat
什么是服务器
问题:自己编写的java代码可以手动调用执行,但是对于浏览器发送的请求,并不知道什么时候才会发起,不能在接收到请求后人为的调用代码执行,只有在其发起的时候才来调用执行相应的代码
服务器是在浏览器发送请求时候用来调用需要执行的代码的容器.将其理解为代码或者是一个应用程序,改程序的功能就是在浏览器发送请求的时候自动调用内部的方法.
动态的实时的根据请求调用执行代码
什么是tomcat
tomcat是服务器的一种,底层是socket程序
tomcat目录结构:
bin:存放开启和关闭tomcat的文件
conf:配置文件,server.xml: 配置端口号 web.xml:配置项目
lib:存放tomcat服务器支持的jar包
logs:存放日志
temp:临时文件
webapps:外部应用的目录,外部访问web资源存放的目录
work:工作目录,用于存放jsp被访问后生成的 server文件和.class文件
tomcat服务器就是用java写好的代码 这个代码在浏览器发送请求的时候自动调用需要执行的方法
那么问题就来了,将需要执行的web项目放入tomcat中(eclipse里面直接拖进tomcat服务器或者tomcat右键add)之后,
1.tomcat怎么认识需要执行的代码呢?–继承自HttpServlet类
2.怎么找到需要执行的代码呢?–修改web.xml配置文件
第一个servlet
Server Applet 服务端小程序
servlet:创建一个类继承自HttpServlet 这个类就是servlet,本质就是一个java类
servelet是用来处理用户发起的请求的
创建servlet步骤
1.创建普通java类继承自HttpServlet(让tomcat认识当前的类),重写service方法
2.编写需要执行的java逻辑代码
3.修改web.xml配置文件(为了让tomcat能找到当前的类)
web.xml保护servlet
<servelt>
<servlet-name>给servlet取的名字<servlet-name>
<servlet-class->当前的servlet类的包名+类名<servlet-class>
<!是一个.class文件这个文件是在servlet编写完成并保存以后编译产生的->
<servlet>
<servlet-mapping>
<servlet-name><servlet-name>
<url-pattern>/外界访问的servlet路径<url-pattern>
<servlet-mapping>
直接在虚拟项目名后面写上包名加类名也可以但是不安全!!!
web.xml配置的时候 /别名 "/"不能掉!!!
Tomcat访问任何的资源都是在访问Servlet
servlet从第一次调用到tomcat关闭
servlet和jsp都是java web 应用的一种技术
servlet访问流程:
浏览器根据url找到服务器(http://localhost定位到本地,tomcat的端口号为8080),服务器(tomcat)根据虚拟项目名在webapps文件夹下来找到对应的项目,然后在对应项目中的web.xml中找到对应的servlet别名,根据别名找到对应的servlet类,调用执行重写的service方法,将结果响应给浏览器,浏览器根据特定标的方式解析显示在页面上.