Servlet和JSP小结

Servlet和JSP小结

Servlet简介

Servlet可以说是运行在服务器上的小型Java程序,它和一般的java程序的区别是是:可以通过HTTP协议 接收 和响应来自Web客户端的请求。

在这里插入图片描述

客户端浏览器与服务器与数据库之间的通信交互关系 如图所示。

Servlet生命周期:

客户端 首先向 tomcat 输入 网址URL,然后 tomcat根据 请求的URL找到 对应的应用,找到url-pattern中对应的
servlet类,然后实例化该类 ,依次执行 init,service,destory方法;需要注意的是当浏览器 向服务器端 多次提交同一请求的时候: init方法只执行一次,而 service方法会 执行多次,最后关闭应用的时候 执行destory方法。
在使用 Servlet的时候其实就是使用 Serlet包下的各种类 ,tomacat服务器已经在初始化的时候封装好了各种类

在这里插入图片描述

  • 在Servlet接口 的 init()方法 中有一个参数ServletConfig,这个参数类型是个接口,里面是 一些在web.xml中对当前Servlet类的配置信息。Servlet规范 将Servlet的配置信息全部封装到了ServletConfig接口对象中。每个Servlet都对应一个ServletConfig用于封装各自的配置信息,即有几个Servlet就会产生 几个ServletConfig对象;
  • WEB容器在启动时,它会为每个WEB应用程序 都创建一个对应的ServletContext对象,ServletContext有另外一个名称:application。ServletContext对象包含Web应用中所有的Servlet在Web容器中的一些数据信息。ServletContext随着Web应用的启动而创建,随着Web应用的关闭而销毁。一个Web应用只有一个ServletContext对象。ServletContext不仅包含了web.xml文件中的配置信息,还包含了当前应用中所有Servlet可以共享的数据,可以这么说,ServletContext可以代表整个应用。

HttpServletRequest介绍

用于封装 代表浏览器发送给客户端的信息(将“HTTP请求协议”的完整内容封装到该对象中)。开发者拿到 request对象后就可以获取客户端发送给服务器的请求数据。(由服务器自行创建)

HttpServletRequest的生命周期

当客户端浏览器向服务器发送请求后,服务器 会根据Http请求协议的格式对请求进行解析。同时,服务器会创建HttpServletRequest类型的对象,即请求对象,然后将解析出的数据封装到该请求对象中。此时HttpServletRequest实例就创建并初始化完毕了,也就是说,该请求对象是由服务器创建的。当服务器向客户daunt发送响应结束后,HttpServletRequest实例对象被服务器销毁,HttpServletRequest对象的生命周期很短暂。
一次请求对应一个请求对象,另外一次请求对应另外一个请求对象,即每次请求都会创建一个 HttpServletRequest类型的对象,这些对象之间没有关系。

常用方法的例子:

String name = request.getParameter("name");
		String password = request.getParameter("password");
		
		System.out.println("提交的用户名为"+name);
		System.out.println("密码为"+password);
		
		
		
		System.out.println("提交的网页 URI 申请为"+request.getRequestURI()); ///Test11/request
		System.out.println("提交的网页 URl 申请为"+request.getRequestURL()); //http://localhost:8080/Test11/request

		//查看提交的 请求头
		Enumeration<String> requestName = request.getHeaderNames();
		while(requestName.hasMoreElements()) {
			String headerName = requestName.nextElement();
			System.out.println("请求头:"+headerName+"值为:"+request.getHeader(headerName));
		}
		
		
		//获取客户端信息的方法
		System.out.println("发出请求的客户机的IP地址"+request.getRemoteAddr());//  发出请求的客户机的IP地址0:0:0:0:0:0:0:1

		
		System.out.println("发出请求的客户机的完整主机名:"+request.getRemoteHost());//   发出请求的客户机的完整主机名:0:0:0:0:0:0:0:1

		
		System.out.println("客户机所使用的网络端口号"+ request.getRemotePort());//  客户机所使用的网络端口号59129

		
		System.out.println("WEB服务器的IP地址为:"+request.getLocalAddr());//  WEB服务器的IP地址为:0:0:0:0:0:0:0:1

		
		System.out.println("WEB服务器的主机名"+request.getLocalName());// WEB服务器的主机名0:0:0:0:0:0:0:1

		
		System.out.println(request.getContextPngath()); //  /Test11

HttpServletResponse介绍

Web服务器收到客户端的http请求,会针对每一次请求创建一个用于代表响应的 HttpServletResponse类型的 response对象,开发者可以将要向客户端返回的数据封装到response对象中。

ServletResponse接口有一个方法 getWriter(),用于获取到一个 标准流对象 PrintWriter,该输出流对象是专门用于向客户端浏览器中输出字符数据的,称为标准输出流。

数据空间范围对比

在JavaWeb编程的 API中,存在4个可以存放数据的空间范围对象 ,这三个对象中所存储的数据范围作用,由大到小 分别为:

ServletContext(application)—>HttpSession—>HttpServletRequest—>page

Cookie与 Session会话

首先要明白的 就是Cookie与Session的生命周期 :Cookie存储在客户端,在手动创建一个Cookie时,服务器向客户端浏览器返回一个cookie值,这之后浏览器每次访问服务器都会带着这个Cookie。 Session存储在服务器端,服务器端将一个SessionId以Cookie的形式返回给浏览器客户端,这之后,浏览器客户端每次访问服务器的时候都会带着这个SessionId找到对应的Session对象。

cookie中重要的是添加cookie与获取cookie: addcookie,getcookies
session中重要的是为 session添加属性: session.setAttribute,session.getAttribute;session.removeAttribute()

JSP

​ JSP全称是Java Server Pages,是一种动态网页技术,JSP其实 就是在 html中 插入java代码和JSP标签之后形成的文件,文件名以.jsp结尾。其实 JSP就是一个Servlet。在servlet中编写html比较痛苦,而写JSP就像 在写 html,但它相比 html而言,html只能为用户 提供静态数据即静态页面,而JSP技术 允许在页面中嵌套java代码,为用户提供动态数据

编写html比较痛苦,而写JSP就像 在写 html,但它相比 html而言,html只能为用户 提供静态数据即静态页面,而JSP技术 允许在页面中嵌套java代码,为用户提供动态数据

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值