学习servlet

一、Servlet API 主要有javax.servletjavax.servlet.http两个包组成。Servlet接口是servlet api的核心接口。

GenericServlet抽象类实现了ServletServlerConfing两个接口,在Servlet中有着public void init(ServletConfig config) 的方法。而在GenericServlet抽象类有两个init方法,public void init(ServletConfig config) init()

init(ServletConfig config)方法概述:public void init(ServletConfig config) throws ServletException
该方法来源于Servlet接口,覆写该方法,必须调用super.init(config)

init()方法概述:public void init() throws ServletException
该方法重载Servlet.init(ServletConfig config)方法而无需调用super.init(config)。而ServletConfig对象依然可以通过调用getServletConfig()方法获得。

  在GenericServlet,servlet接口带来的init(ServletConfig config)对它进行重写时,如果忘了调用super.init(config),就会出现空指针异常,为了解决这样的情况,GenericServlet中于是有了一个无参的init()方法重写无参的init()方法.

二、http方法中getpost的区别:

HTTP定义了与服务器交互的不同方法,最基本的方法是GET POST.HTTP-GETHTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。每个HTTP-GETHTTP-POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP应答头和应答数据组成,如果请求成功则返回应答。
  HTTP-GET以使用MIME类型application/x-www-form-urlencodedurlencoded文本的格式传递参数。Urlencoding是一种字符编码,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。附加参数还能被认为是一个查询字符串。
  与HTTP-GET类似,HTTP-POST参数也是被URL编码的。然而,变量名/变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。

1get是从服务器上获取数据,post是向服务器传送数据。

在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

get吧数据放在网址中,例如:http://www.abc.com/index.php?a=1&b=2 其中?a=1&b=2就是get数据,并且连http://www.abc.com/index.php长度限制在1024个字。
post则是把数据放到http请求中,例如还是传输a=1&b=2,可是网址还是http://www.abc.com/index.php,想看到post数据可以用一些抓包工具,如Wireshark

2 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

3   GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

4)安全性问题。正如在(1)中提到,使用Get 的时候,参数会显示在地址栏上,而Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。

三、重定向去跳转的区别

A<jsp:forward page=url” />:效率高,速度快
 a.地址栏不改变跳转——服务器端跳转,服务器之间内部转,相同的request,可传参;
 b.执行到跳转语句后无条件立刻跳转——之后的代码不再被执行;
 注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的资源;
 c.使用forward时,request设置的属性依然能保留在下一个页面(setAttribute);
 d.通过<jsp:param name=”” value=”” />传递参数。
 e.地址中的/代表是:http://localhost:8080/Test

Bresponse.sendRedirect(地址):效率低,速度慢
 a.地址栏改变跳转——客户端跳转(其中地址可以是任意的)
 b.所有代码执行完毕之后再跳转,跳转语句后面的代码还是会执行,除非在其后面加上returnreturn)需复杂一些。
  <%
Response.sendRedirect(aa.jsp);
boolean b = true;
if(b){
            Return;
             }
             System.out.println(aaaaaaaaaa);
  %>
 c.不能保存request属性——地址改变了,客户端跳转,不同的request
 d.通过对URL地址的重写传递参数:
response.sendRedirect(responseDemo04.jsp?id=mldn);
  e.地址中的/代表是:http://localhost:8080/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值