Servlet 学习笔记

Servlet 学习 (1月18日)

一、 什么是Servlet?

	(1). Servlet 是javaEE 规范之一, 规范就是接口
	(2). 是javaweb三大组件之一,  三大组件分别是 servlet, Filter过滤器, Listener监听器
	(3). 接收客户端发来的请求, 并响应数据发送给客户端

二、 手动实现Servlet.

	 1.  创建一个类 实现Servlet接口, 并重写里面的service()  方法.          一般工程下, 类继承ServletRequest 
	 2. 在 web.xml 中配置servlet 程序的 访问地址.
			```java
			<!-- servlet 标签给Tomcat 配置servlet 程序 -->
			  <servlet>
			  	<!-- servlet-name 为servlet程序 起一个 别名  ( 一般是全类名 )-->
			    <servlet-name>HelloServlet</servlet-name>
			    <!-- servlet-class 为 servlet程序的 全类名 -->
			    <servlet-class>com.langsin.show.HelloServlet</servlet-class>
			  </servlet>
			  <!-- servlet-mapping 为 servlet程序 配置 访问地址 -->
			  <servlet-mapping>
			  	<!-- servlet-name 标签的作用是 我当前配置的地址  是给哪个 servlet 程序 使用 -->
			    <servlet-name>HelloServlet</servlet-name>
			    <!-- url-pattern 标签 配置 访问地址 -->
			    <url-pattern>/Hello</url-pattern>
			  </servlet-mapping>
			```
			配置Servlet 遇到的 常见错误 
			  1. url-pattern 的 值不是以 斜杠 /  开头
			  2. servlet-mapping 中的servlet-name 与 servlet 中 servlet-name 值不一致
			  3. servlet 中 servlet-class 的全类名路径不对

三、 url地址如何定位

在这里插入图片描述

四、 Servlet 的生命周期

 1. 先执行servlet的构造方法
 2. 执行servlet 中的init() 方法    // 1 和 2 只有在程序刚开始执行时, 执行一次
 3. 执行service() 方法                //  浏览器没刷新一次, 该方法就执行一次
 4. 执行destroy()  方法              //   当停止执行该程序的时候, 执行该方法

五、 eclipse 直接创建 一个Servlet 程序

		![@WebServlet("/Hello3")  就相当于在web.xml 中配置改地址](https://img-blog.csdnimg.cn/76caf911365742cbac1feacafa21e0ce.png)

@WebServlet(
name=“Hello”,
urlPatterns={"/hello3"},
loadOnStartup=1
) 就相当于下面这些代码 在这里插入图片描述

六、 servletConfig 类的三大作用

	1. 可以获取servlet程序的别名.   servletConfig.getservletname()
	2. 可以获取初始化参数 init-param.          <init-param>里面包含类似键值对 (<param-name>  和  <init-value>)
	3. 可以获取servletContext 对象.
***注意:*** 
		 重写init方法时, init方法里面一定要调用父类的init(servletConfig)方法.

七、 servletContext 类的 四大作用

     1. 获取web.xml中 上下文参数 context-param
			ServletContext context = getServletContext();
			String initParameter = context.getInitParameter("password");
		2. 获取当前的工程路径
				```java
				String path = context.getContextPath();
				```
		3. 获取工程部署在服务器硬盘上的绝对路径
				```java
				String realPath = context.getRealPath("/css");
							System.out.println(realPath);
				```
		4. 像map一样存储数据
		       getAttribute()

八、 HTTP协议

	         客户端给服务端发送数据叫请求, 服务端给客户端传回数据叫 响应.
	         请求 分为 GET 请求 和 POST 请求
      1. GET请求    (请求行 和 请求头)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/e1170c7e208245e5a82020e7f73b36ab.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGFydmV5TXU=,size_20,color_FFFFFF,t_70,g_se,x_16)
        2. POST请求
				请求行  ,  请求头  ,  空格,  请求体
        3. 区分GET请求 和 POST请求
            GET请求:
            		(1). form标签, method=get
            		(2). a标签
            		(3). link标签引入css
            		(4). script标签引入js文件
            		(5). img标签引入图片
            		(6). iframe引入 html 页面
            		(7). 在浏览器中输入地址敲回车
            POST请求:
            			 form标签, method=post
        4. HTTP协议响应示例      (响应行, 响应头,  空格, 响应体)
            ![在这里插入图片描述](https://img-blog.csdnimg.cn/ed5abc212b7b4419afc9dab427cf4448.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGFydmV5TXU=,size_20,color_FFFFFF,t_70,g_se,x_16)
    5. 常见的响应状态码
	      200    表示请求成功
	      302    表示请求重定向
	      404   表示请求服务器已经收到了, 但你请求的数据不存在  (网页地址错误)
	      500   表示服务器已经收到请求, 但服务器内部错误   (代码错误)
    6. MIME类型  (HTTP 数据类型)   格式是 大类型/小类型

九、 请求转发

在这里插入图片描述

十、 请求重定向

在这里插入图片描述
请求重定向的特点:
1. 地址栏会发生改变
2. 两次请求
3. 不共享Request域中的数据
4. 不能访问WEB-INF下的资源
5. 能够访问工程外的资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值