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基础的主要内容,如果未能解决你的问题,请参考以下文章
[vscode]--HTML代码片段(基础版,reactvuejquery)
java基础 第十四章(Servlet声明周期Servlet向jsp中提供数据Servlet跳转jspjsp中书写java代码)