Servlet GET POST请求区别

Servlet
接口,定义一些处理请求的方法。返回给客户端动态资源。我们使用都是创建一个继承于HTTPServlet类(实现了Servlet接口)的子类。处理doGet,doPost方法。
MyServlet–》HttpServlet–>GenericServlet

	Servlet 的生命周期

1 何时创建? 第一次请求时加载,并创建对象
2 何时消亡? destroy方法调用时,即服务器关闭时

1 Init()方法 初始化方法
2 service()方法 处理请求方式,对于客户端过来的请求无论是什么方式的请求,都会拦截,如果存在doGet,则不会调用。
其实service方法只在HttpSerlvet类都已经确定好,而我们创建的servlet类都是HttpSerlvet子类,那么我们无需再重写此方法。
3 destroy()方法 serlvet对象生命消亡的方法,在关闭服务器时调用。

Servlet3.0,使用注解的方式来表征servlet的一些数据。
如果是Servlet3之前,那么对于比如url mapping等数据需要展示在web.xml中。

Servlet3.0的方式(目前的方式):
创建servlet类时,会存在以下代码:
@WebServlet(
urlPatterns = {
“/MyServlet”,

	}, 
	initParams = { 
			@WebInitParam(name = "username", value = "666")
	})

Servlet3.0之前的方式:
1有关创建。老版本的servlet的创建依托于web.xml,其中配置servlet时,何时创建由
1
当然默认值是0,
如果load-on-startup的值是>=0的数,代表服务器启动时就会加载serlvet。如果值>0,值越小,加载的优先级越高。0最后加载代表最大整数。
如果是负数,代表第一次请求时加载。
Serlvet的特点:
1 servlet就是一个java类,继承于HttpServlet
2 使用response对象对客户端做响应数据的返回,通过getWriter()方法
3 处理客户端向服务器发送的请求体
3.1以GET请求为例,请求体直接拼接在URL的?后,多个参数间用&隔开。
http://localhost:8080/LoginTest/LoginServlet?username=shm&password=666
1 通过request.getParameter(“username”)方法获得客户端发送的请求体数据
2 为了防止乱码,request和response都要设置编码格式:
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);
3.2 以post方式为例,使用jsp为依托,使用form表单
当点击登录按钮,跳转到serlvet,由servlet来处理请求。
post的url中是没有数据,也就是说没有?,所有的数据包装成了请求体,相对于GET请求,没有把用户名和密码裸露出来,安全。

Serlvet 映射 URL mappings
1 一个servlet对应多个URL
2 匹配?
2.1 精准匹配 /Servlet
2.2 模糊匹配 /*
2.3 后缀名匹配 .do
优先级2.1>2.2>2.3
/a/b/
/c精准匹配

GET 请求与POST请求的区别:
1 GET 请求是将请求体放置在URL的后面,以?开头作为标识,多个请求体的数据格式为:
username=shm & password=666 类似于<K,V>结构。
而POST请求没有把请求体放置在URL上。
2 GET请求的URL是有长度限制的。不同浏览器长度不同,IE是1024字节。
3 安全性 POST请求不会把密码这样的信息裸露出来,更安全。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值