Servlet入门有关知识

一、思维导图:

二、目录结构:

目录

一、Servlet

1.Servlet简介

2.创建第一个Servlet

3.Servlet容器

4.Servlet生命周期的方法

5.Servlet容器响应客户请求的过程

6.Servlet注册和运行,映射的细节

7.ServletConfig

8.ServletContext

二、Http

1.Http简介

2.使用GET请求来传递参数

3.使用 POST 方式传递参数

4.如何在Serlvet中获取请求信息

5.介绍ServletRequest的具体方法和使用场景

三、正文

 

一、Servlet

1.Servlet简介

①什么是Servlet?

答:JavaServlet是和平台无关的服务器,它运行在Servlet容器中。

Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户端的通信采用“请求/响 应”的模式。

②Servlet可以完成的功能?

答: 创建并返回基于客户请求的动态HTML页面;

  创建可嵌入到现有的HTML页面中得部分HTML页面;

  与服务器资源进行通信;

2.创建第一个Servlet

步骤①:创建一个类实现Servlet的接口

步骤②:在web.xml文件中配置和映射这个Servlet 目的是为了让浏览器通过映射访问到java类

配置如下:

 

?过程解析:通过url—>全类名—>访问类方法

 

3.Servlet容器

①什么是Servlet容器?

答:运行Servlet, jsp, Filter等软件环境。

②Servlet容器的作用?

答:可以创建Servlet 并调用Servlet的相关生命周期方法 更多的是JSP Filter Listener Tag….

 

4.Servlet生命周期的方法

1⃣️构造器:只有第一次请求Servlet创建实例 调用构造器,单实例的。

2⃣️init:只被调用一次 创建实例后立即被调用 ,用于初始化当前的Servlet

3⃣️service:被多次调用 每次请求都会调用Service方法 实际用于响应请求。

4⃣️destroy:只被调用一次 ,在当前Servlet所在的WEB应用被卸载前调用,用于释放当前的Servlet占用的资源。

 5⃣️load-up-startup参数:作用:用于指定Servlet被创建的时机

       ?参数的影响:

若为负数 则在第一次请求时被创建。

若为0或者正数 则在当前WEB应用被加载时创建实例 数值越小越早被创建。

 

5.Servlet容器响应客户请求的过程

 

6.Servlet注册和运行

 

 

7.映射的细节

  在Servlet映射到的URL中也可以使用 * 通配符,但是只能有两种固定的格式:

  ①格式是“*.扩展名”

  ②格式是以正斜杠(/)开头并以“/*”结尾。

—————代码部分—————

<servlet-mapping>

<servlet-name>secondServlet</servlet-name>

<url-pattern>*.扩展名</url-pattern>

</servlet-mapping>

 

OR

 

<servlet-mapping>

<servlet-name>secondServlet</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

  ③需要注意的点!

 注意: 以下的既带 / 又带扩展名的不合法. 

<servlet-mapping>

<servlet-name>secondServlet</servlet-name>

<url-pattern>/*.action</url-pattern>

</servlet-mapping>

—————代码部分—————

 

8.ServletConfig

  ①ServletConfig的作用是?

  答:封装了Servlet的配置信息 并且可以获取ServletContext对象。

  ②配置Serlvet 初始化参数

 

注意:

1.配置初始化参数 要在<servlet>里面

2.配置初始化参数 如果存在<load-on-startup> 要在<load-on-startup>后 配置。

③通过ServletConfig获取参数(API)

1⃣️.getInitParameterNames

2⃣️.getInitParameter

3⃣️.getServletName

4⃣️.getServletContext

 

9.ServletContext

  ①什么是ServletContext?

答:当前WEB应用的一个大管家,可以从中获取当前WEB应用的各个方面信息。

  ②范围:相对于<init-param>参数,该参数是全局的

  ③使用方法:

1⃣️通过 ServletContext servletContext=config.getServletContext();

2⃣️再用servletContext调用 config的接口方法

    ④其他方法应用:

1⃣️获取当前web应用某一个文件的绝对路径   getRealPath()

2⃣️获取当前web应用某一个文件对应的输入流  getResourceAsStream(String path)

⑤来个?

例如:   

 

解析:

  需要加上相对于当前web应用下的根路径(取决于文件编译后存放的根目录),否则会失败。

 

同时也可以用classLoader的方法

例如:

 

 

 

 

二、Http

1.Http简介

  ①什么是Http

答:用于WEB浏览器和WEB服务器之间交换数据的过程以及数据本身的格式。

具体说:浏览器访问多图网页的过程

图示:

 

 

2.使用GET请求来传递参数

常见的方式有:

①. 在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。 

②. 如果网页中的<form>表单元素的 method 属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。 

③. 使用GET请求方式给WEB服务器传递参数的格式:  

http://www.atguigu.com/counter.jsp?name=lc&password=123

④. 使用GET方式传送的数据量一般限制在 1KB 以下。

3.使用 POST 方式传递参数

常见的方式有:

①. POST 请求方式主要用于向 WEB 服务器端程序提交 FORM 表单中的数据: form 表单的 method 置为 POST

②. POST 方式将各个表单字段元素及其数据作为 HTTP 消息的实体内容发送给 WEB 服务器,传送的数据量要比使用GET方式传送的数据量大得多。  

 

4.如何在Serlvet中获取请求信息

①答:由于每次请求都会调用 service() 方法    所以利用Servlet 的 service() 方法用于获取

②栗子:public void service(ServletRequest request, ServletResponse response)  throws ServletException, IOException

③解析:ServletRequest: 封装了请求信息. 可以从中获取到任何的请求信息.ServletResponse: 封装了响应信息, 如果想给用户什么响应, 具体可以使用该接口 的方法实现.

5.介绍ServletRequest的具体方法和使用场景

①String getParameter(String name): 根据请求参数的名字, 返回参数值. 

②String[] getParameterValues(String name): 根据请求参数的名字, 返回请求参数对应的字符串数组. 

    此方法可用于复选框 返回数组。

③Enumeration getParameterNames(): 返回参数名对应的 Enumeration 对象,  类似于 ServletConfig(或 ServletContext) 的 getInitParameterNames() 方法.

举个例子⬇️

 

 

 

   ④Map getParameterMap(): 

     返回请求参数的键值对: key: 参数名,  value: 参数值, String 数组类型. 

举个例子⬇️

 

   ⑤获取请求的uri

HttpServletRequest httpServletRequest = (HttpServletRequest) request;

String requestURI = httpServletRequest.getRequestURI();

System.out.println(requestURI); //  /day_29/loginServlet

⑥获取请求的方式

String method = httpServletRequest.getMethod();

System.out.println(method); //GET

⑦获取servlet映射路径

String servletPath = httpServletRequest.getServletPath();

   System.out.println(servletPath);  //  /loginServlet

⑧如果是GET请求,获取请求参数对应的那个字符串 就是?后面的字符串

  String queryString = httpServletRequest.getQueryString();

System.out.println(queryString); //

 

结束语:

              写的不好的地方请各位及时指出,感谢各位!

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值