web第二天

WEB第二天下午

HTTP支持的集中数据传输方式

1)GET:获取资源
GET方法用来请求访问已被URL识别的资源
2)POST:传输实体主体
POST方法用来请求服务器传输信息实体的主体
3)PUT:传输文件
PUT要求在请求报文的主体中包含文件内容,然后保存到请求URL指定的位置
处于安全考虑,一般web网站不使用此方法,若配合web的安全验证机制,或者架构采用REST标准的网站,就可能开放使用此方法
4)HEAD:获得报文首部
HEAD和GET方法一样,只不过不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间等
5)DELETE:删除文件
DELETE是与PUT相反的方法,是按请求URI删除指定的资源
处于安全考虑,一般web网站不使用此方法,若配合web的安全验证机制,或者架构采用REST标准的网站,就可能开放使用此方法
6)OPTIONS:询问支持的方法
用来查询针对请求URI指定的资源支持的方法
7)CONNECT:要求采用隧道协议连接代理
该方法要求在于代理服务器通信时建立隧道,实现用隧道协议进行TCP通信,主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经过网络传输。

GET和POST的区别:

  1. 首先编码不同(只在tomcat8之前不同):get请求在tomcat8之前采用ISO8859-1编码,tomcat8以后get和post都使用了UTF-8编码(即为防止乱码,各页面统一格式采用UTF-8编码 且在重写service或doget/dopost时定义其字符集为utf-8)
  2. 大小不同:GET是放在URL首部,因此大小随着浏览器而定,而POST则是在报文中,只要没有具体限制,文件的大小是没限制的
  3. 安全性不同:GET采用的是明文传输,而POST是放在报文内部,无法看到
    从使用场景的角度来说,一般像用户注册登录这种信息都是私密的,采用POST,而针对查询等,为了快速,大多采用GET传输。

severlet的生命周期

servlet的生命周期就是从servlet出现到销毁的全过程。主要分为以下几个阶段:
加载类—>实例化(为对象分配空间 只实例化一次)—>初始化(为对象的属性赋值 )—>请求处理(服务阶段)—>销毁
在这里插入图片描述
Servlet采用多线程的方式处理请求 每个Servlet只初始化一次
@WebServlet("/EmpServlet")//注解只要在Servlet上设置@WebServlet标注,容器就会自动读取当中的信息。如果请求的URL是“/EmpServlet”,则由EmpServlet的实例提供服务。
public class EmpServlet extends HttpServlet{
public EmpServlet() {
System.out.println(“构造器”);
}
//初始化servlet,调用init方法
@Override
public void init() throws ServletException {
System.out.println(“初始化时调用”);
}
//开启服务
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
System.out.println(“开启服务时调用”);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(“doGet”);
}

//销毁时调用destory
@Override
public void destroy() {
	System.out.println("销毁时调用");
}

}
部署在tomcat上后 会在控制台分别显示:构造器, 初始化时调用 ,开启服务时调用 , doGet
当结束tomcat时会在控制台上打出: 销毁时调用

@WebServlet("")和web.xml获取URL

在web.xml文件中配置URL
用来声明一个servlet的数据,主要有以下子元素:

  1. 指定servlet的名称
  2. 指定servlet的类名称
  3. <jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径
  4. <init-param></init-param> 用来定义参数,和前面的<init-param>差不多

同样,与<servlet></servlet>一起使用的是<servlet-mapping></servlet-mapping> 用来定义servlet所对应的URL,包含两个子元素:

  1. <servlet-name></servlet-name> 指定servlet的名称
  2. <url-pattern></url-pattern> 指定servlet所对应的URL
    具体如下
 <servlet>
  		<servlet-name>houzi</servlet-name>
  		<servlet-class>net.neueu.LifeServlet</servlet-class>
  		<load-on-startup></load-on-startup>
  </servlet>
  <servlet-mapping>
  		<servlet-name>houzi</servlet-name>
  		<url-pattern>/LifeCycleServlet</url-pattern>
  </servlet-mapping>

@WebServlet(“URL”)和web.xml获取URL只能有一个 不然会有冲突

在上面的<servlet-mapping>中我们使用了<url-pattern>/LifeCycleServlet</url-pattern>
url -pattern匹配规则
-精确路径匹配。
/test/HelloServlet(即是路径的全拼)
-最长路径匹配。
/test/a/(处理/test/a目录下的所有请求)
/test/

-扩展匹配。
*.action(例如
/*可以处理所有的请求
访问时a.action 只对请求的后缀进行约束 注意没有"/")

JSP 和 Servlet 的区别

1.jsp经编译后就变成了Servlet.
(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)

2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.

3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。
而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值