Servlet基础

Servlet基础

1、网络基础概念

互联网,英文是internet,又称国际网络。是网络与网络之间-所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一且巨大的全球化网络,在这个网络中有交换机路由器等网络设备、各种不同的连接链路、种类繁多的服务器和数不尽的计算机、终端。使用互联网可以将信息瞬间发送到千里之外的人手中,它是信息社会的基础。

2、HTTP简介

HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

2.1 HTTP请求报文

HTTP 报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。一 般一个HTTP请求报文由请求行、请求报头、空行和请求数据4个部分组成。如下图:

http_request.png

2.1.1 请求行
	请求行由请求方法、URL字段和HTTP协议的版本组成。
2.1.2 请求报头
	请求报头通知服务器关于客户端请求的信息。
2.1.3 空行
2.1.4 请求数据
	请求数据不在GET方法中使用,而在POST方法中使用。POST方法适用于需要客户填写表单的场合。
2.2 HTTP响应报文
	在接收和解释请求消息后,服务器返回一个HTTP响应消息。HTTP 的响应报文由状态行、响应报头、空行、响应正文组成。
2.2.1 状态行
	一般由服务器HTTP协议的版本、服务器发回的响应状态码、状态码的文本描述等组成。
2.2.2 响应报头
	用于服务器传递自身信息的响应
2.2.3 空行
2.2.4 响应正文
	响应正文就是服务器返回的资源的内容。

3、B/S与C/S应用

大家思考一个问题,淘宝和英雄联盟有什么区别?为什么一个用浏览器就能访问,一个要下载特定的客户端呢?

B/S:浏览器与服务器应用。体验要求一般,加载资源少;升级方便、无需安装、维护便利、跨平台。

C/S:客户端和服务器应用。体验要求极高,加载资源多;升级不方便、安装不方便、维护不方便、不跨平台。

B/S开发模式也叫web开发。

4、服务器软件介绍

写一个html很简单,但如何想让这个html让其他人也能访问,该如何处理呢?

Tomcat是目前非常流行的一款开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。它和其它服务器软件类似,能将本地资源向外提供服务。

常见Web应用服务器:Tomcat(Apache)、Weblogic( Oracle), WebSphere(IBM)和JBoss( Redhat)。

5、Tomcat下载、安装、及目录介绍

官网下载:http://tomcat.apache.org/ .默认端口号是8080

安装:解压到任意目录(注意路径不要有中文和空格)

目录介绍:

bin:存放可执行文件
conf:存放配置文件
lib:存放第三方依赖包
logs:存放日志
temp:存放临时文件
webapps:存放应用程序
work:存放运行时的文件

6、10分钟学会搭建电影网站

7、Servlet的使用

7.1、在eclipse中配置Tomcat
7.2、web项目的打包方式
7.3、Servlet简介

servlet是运行在服务器上的应用程序。

7.4、Servlet使用步骤
  1. 创建web项目,编写web.xml
  2. 编写Servlet
  3. 运行项目
  4. http://ip:端口号/项目名称/映射地址
7.5、Servlet实例

Servlet是单实例多线程的。

7.6、Servlet生命周期
  • 加载跟实例化Servlet

    Servlet 通过调用 构造 方法进行实例化,构造方法必须为无参构造方法。默认是在第一次被访问的时候构造对象。也可以在web.xml中通过N配置Servlet被创建的时机。(N为一个整数表示优先级,>=0表示在web服务器启动的时候创建,<0表示第一次访问时创建)

  • Servlet 实例创建完毕后立马通过调用 init () 方法进行初始化,如果初始化失败抛出ServletException,Servlet对象将会被垃圾回收器回收。init初始化操作只会执行一次。初始化时机紧跟Servlet创建。

  • Servlet 调用 service() 方法来处理客户端的请求。

  • Servlet 通过调用 destroy() 方法终止(结束)。

  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

7.7、Servlet接收表单数据与返回数据

接收表单数据
form表单

<form action="XXXServlet" method="post">
	<input type="text" name="xxx" />
</form>
//servlet中获取表单数据 也就是name属性
request.getParameter("xxx");

返回数据 往前台界面返回值并显示

response.getWriter.write("xxx");

7.8、get请求与post请求

问题:get请求与post的请求的区别是什么?

get是从服务器上获取数据, post是向服务器传送数据。
GET请求参数是连接在URL后面的,而POST请求参数是存放在连接体的
GET请求参数会保存在浏览器历史记录内,POST请求并不会
GET请求因为浏览器对URL长度有限制,而POST没有
因为GET请求参数暴露在URL上,所以安全方面POST比GET更加安全
GET只能是字符串类型,POST还可以是非字符串类型比如文件

7.9、转发与重定向(必考)
7.9.1、转发
req.getRequestDispatcher("xxx").forward(req, res);

一次请求,返回200,地址栏没变化

7.9.2、重定向
res.sendRedirect("xxx");

二次请求,第一返回302,第二次请求会使用第一次请求响应中的Location头信息地址进行访问。第二次请求返回200或者304,地址栏会改变。

问题:请求转发跟请求重定向的区别是什么?

转发效率高,而重定向效率低。
转发之后地址栏不会发生改变,重定向地址会变为目标地址
实现语句不一样
转发是request.getRequestDispatcher(“目标地址”).forward(request,response);
重定向是response.sendRedirect(“目标地址”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值