Servlet基础

Posted qqiua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet基础相关的知识,希望对你有一定的参考价值。

1.Servlet概述

  Servlet是使用Java语言编写的运行在服务器端的程序,通常来说,Servlet是只所有实现了Servlet接口的类。 Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应,它能够处理的请求有doGet()和doPost()等。

  Servlet是由Servlet容器提供,Servlet容器是指提供了Servlet功能的服务器(如Tomcat)。Servlet容器会将Servlet动态加载到服务器上,然后通过HTTP请求和HTTP响应和客户端进行交互。

技术分享图片

  ①:Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,所有的HTTP头数据读可以通过request对象调用对应的方法查询到。

  ②:Tomcat同时会要响应的信息封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制要输出到浏览器的内容,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器。

 

Servlet技术的特点:

  (1)方便:Servlet提供了大量的使用工具例程,如处理很难完成的html表单数据、读取和设置HTTP头,以及处理Cookie和跟踪会话等。

  (2)跨平台:Servlet使用Java类编写,可以在不同的操作系统平台和不用的应用服务平台运行。

  (3)灵活性和可扩展性强:采用Servlet开发的Web应用程序,由于Java类的继承性及构造函数等特点,使得应用灵活,可随意扩展。

 

2.实现Servlet程序

  在前面,我们已经知道了servlet是什么,为什么需要servlet?(为了实现动态网页,而不是显示静态网页)

 (1)创建一个servletDemo1继承HttpServlet,重写doGet和doPost方法,也就是看请求的方式是get还是post,然后用不同的处理方式来处理请求。

 1 import java.io.IOException;
 2 import javax.servlet.ServletException;
 3 import javax.servlet.http.HttpServlet;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 
 7 public class servletDemo4 extends HttpServlet {
 8     private static final long serialVersionUID = 1L;
 9 
10     public void doGet(HttpServletRequest request, HttpServletResponse response)
11             throws ServletException, IOException {
12         System.out.println("4");
13     }
15     public void doPost(HttpServletRequest request, HttpServletResponse response)
16             throws ServletException, IOException {
17         
18     }
19 }

  (2)在web.xml中配置servletDemo1,为什么需要配置?让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的request找到对应的servlet让其使用。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
 3   <servlet>
 4     <!-- 给servlet取名字,一般写的servlet类的名字 -->
 5     <servlet-name>servleDemo1</servlet-name>                            //3
 6     <!-- servlet的全限定类名,也就是servlet的位置 -->
 7     <servlet-class>com.itheima.servlet.ServleDemo1</servlet-class>      //4
 8   </servlet>
 9 
10   <servlet-mapping>
11     <!-- 跟上面的servlet名字相同 -->
12     <servlet-name>servleDemo1</servlet-name>                   //2
13     <!-- 浏览器通过url找到servle。 一定要加,相当于项目名称 -->
14     <url-pattern>/demo1</url-pattern>                          //1
15   </servlet-mapping>
16   
17   <welcome-file-list>
18     <welcome-file>index.jsp</welcome-file>
19   </welcome-file-list>
20 </web-app>

按照步骤,首先浏览器通过http://localhost:8080/项目名称/demo1来找到web.xml中的url-pattern,这就是第一步,匹配到了url-pattern后,就会找到第二步servlet的名字servletDemo1,知道了名字,就可以通过servlet-name找到第三步,到了第三步,也就能够知道servlet的位置了。然后到其中找到对应的处理方式进行处理。

  (3)部署应用到tomcat服务器

  (4)测试:http://locahost:8080/day08_servlet(项目名称)/demo1

以上是关于Servlet基础的主要内容,如果未能解决你的问题,请参考以下文章

jsp基础语言-jsp代码段

JSP基础--JSP入门

[vscode]--HTML代码片段(基础版,reactvuejquery)

Servlet基础下

filter与servlet

java基础 第十四章(Servlet声明周期Servlet向jsp中提供数据Servlet跳转jspjsp中书写java代码)