Servlet学习笔记(未完成)

Servlet高级编程

MVC思想

现在我们学习的内容涉及到前后端的交互,那么就肯定会考虑到,一个项目是如何将前端代码/后端代码/数据库表进行交流的.

MVC思想

Servlet基础

Servlet简介

Java Servlet 是运行在 Web 服务器或应用服务器上的程序(后端),它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

1.Servlet 是 JavaEE 规范之一。规范就是接口

2.Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。

3.Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

Servlet任务
  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
Servlet环境

Java Servlet 包是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。Servlet 可以使用 javax.servletjavax.servlet.http 包创建,它是 Java 企业版的标准组成部分,Java 企业版是支持大型开发项目的 Java 类库的扩展版本。

JDK环境以及Tomcat

创建Servlet实例
Maven

首先创建maven项目,maven是一个项目管理工具.Maven的核心功能是合理叙述项目间的依赖关系,通俗点 就是通过pom.xml文件的配置获取jar包不用手动的去添加jar包.用来管理我们项目当中的会用到的jar包.以免有时候会遇到jar包版本冲突等问题.例如当涉及到某个版本的jar已经跟你现在使用的技术不匹配了,此时我们就可以通过Maven使用更高版本的jar包.而不用还要幸苦的去网上下载.然后导入.以下是Maven的功能

1构建工程,
2管理jar,
3.编译代码,
4.自动运行单元测试,
5.打包
6.生成报表,
7.部署项目,生成web站点

安装maven

首先将Maven安装包解压,解压到你所需要的文件夹.例如:D:\Java\apache-maven-3.6.3,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IHY5mVuy-1682326936094)(C:\Users\cl260\AppData\Roaming\Typora\typora-user-images\image-20230421140258467.png)]

解压过后进入conf文件夹,找到setting.xml文件,这是Maven的配置文件.使用文本方式打开.注意在修改配置的时候不要乱删,以免删到注释等信息导致之后Maven运行不了

设置Maven仓库位置,由于Maven管理jar比较多,所以会将jar下载之后缓存到仓库中,建议还是不要放到c盘.

<!-- 本地仓库地址--> 
<localRepository>D:\maven\mavenRepository</localRepository>
   

  <!--找到mirrors节点,设置以下内容.阿里云镜像:用于下载jar包,国外网站太慢,所以使用国内镜像网站下载-->
	 <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

设置环境变量

新建环境变量:类似于JAVA_HOME环境变量
MAVEN_HOME=D:\maven\apache-maven-3.8.4(以自己安装的路径为准)

在path变量中加入
%MAVEN_HOME%\bin

然后保存,关闭

验证MAVEN安装:mvn -version

创建项目

1、编写一个类去实现 Servlet 接口 2、实现 service 方法,处理请求,并响应数据 3、到 web.xml 中去配置 servlet 程序的访问地址

然后再idea中创建maven项目.创建的项目是一个maven项目.通过pom.xml文件可以通过依赖直接使用jar包,就不用手动导包了

<dependencies>
    <!--加入servlet依赖(servlet的jar)-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <!--jsp的依赖(jsp相关的jar加进来)-->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.2.1</version>
        <scope>provided</scope>
    </dependency>

</dependencies>

然后就能在类中直接继承相关类了,编写一个ServletTest.class

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import java.io.IOException;

/**
 * @Author: 恐龙
 * 创建servlet项目
 */
//此类一定要继承HttpServlet
public class servletTest implements Servlet {

    //    初始化
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println(1);
    }

    //    读取配置
    public ServletConfig getServletConfig() {
        System.out.println(2);
        return null;
    }

    //    服务 处理请求
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println(3);
    }

    //    获取servlet信息
    public String getServletInfo() {
        System.out.println(4);
        return null;
    }

    //销毁
    public void destroy() {
        System.out.println("火烧屁屁咯");
    }

}

到web.xml中配置Servlet程序的访问地址

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
    <servlet>
        <!-- servlet程序名称 随便起(一般是类名)-->
        <servlet-name>kunkun</servlet-name>
        <!-- 这是servlet程序的全类名-->
        <servlet-class>servletTest</servlet-class>

    </servlet>
    <!-- 此标签给servlet程序提供访问地址-->
    <servlet-mapping>
        <!-- 定位servlet名称-->
        <servlet-name>kunkun</servlet-name>
        <!-- 访问地址-->
        <url-pattern>/test</url-pattern>
    </servlet-mapping>
</web-app>
Servlet生命周期

所谓Servlet生命周期就是Servlet从创建到最终销毁的过程(可以看作人的一生,从受精卵到最后化为黄土的过程).在Servlet的生命周期每个阶段都会有相应的方法进行调用.

  1. 初始化:Servlet 初始化后调用 init () 方法。
  2. 处理请求:Servlet 调用 service() 方法来处理客户端的请求。
  3. 销毁:Servlet 销毁前调用 destroy() 方法。
  4. 回收:,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的
init() 方法

初始化/加载阶段:只会被调用一次,而且是在Servlet被创建的时候才调用.当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值