JavaWeb | 响应客户端的Servlet技术

参考资料

《Java Web开发基础教程》 —— 李俊(主要)编著

1. Servlet 简介


Servlet 的定义:Servlet是一种运行在Web服务端的Java应用程序,是由SUN公司提供的一种用于开发动态Web资源的技术。

Servlet 的作用:

  • 收集来自网页表单<form>的用户输入
  • 通过与数据库交互来操作数据
  • 动态创建网页

Servlet 的本质:遵循规范进行编写的Java类,没有main方法,创建、使用、销毁都有Servlet容器进行管理

Servlet在JavaWeb应用中的位置

如上图所示,将HTTP请求交由给Servlet程序处理的HTTP服务器通常称为Servlet容器,常见容器有Tomcat、Jetty、WebLogic以JBoss等

2. 开发环境搭建


2.1 安装配置Tomcat

  • Windows10 操作系统
  • JDK8——用于支持基于Java语言开发的软件环境
  • Tomcat9——基于Java语言开发的免费开源的Web应用服务器,即Servlet容器
  • IDEA 2021 专业版——Java语言开发的集成环境,可搭建JavaWeb项目(Community Edition社区版除外)

这里主要介绍Tomcat的安装与配置

Tomact官网 https://tomcat.apache.org/

以 【Tomcat 9.0.52 Released】版本为例
在这里插入图片描述
选择可执行文件,方便安装

在这里插入图片描述
安装后的目录结构

在这里插入图片描述
配置环境变量,在系统变量一栏新建,用于表示JDK和Tomcat的目录

在这里插入图片描述

在系统变量中的PATH变量添加JDK和Tomcat的bin文件夹在这里插入图片描述

至此,Tomcat配置完毕,接下来是web项目的创建。

2.2 IDEA创建Web项目

首次创建Java企业项目,需要新建Tomcat的服务器
在这里插入图片描述
在这里插入图片描述
找到之前安装好的Tomcat目录
在这里插入图片描述
若下方未显示JDK,点击添加后,选择对应的JDK目录即可

在这里插入图片描述
点击下一步后,只需选择Servlet
在这里插入图片描述
目前的项目结构

在这里插入图片描述

3. Hello Servlet


3.1 编写测试类

HelloServlet.java

package com.example.project;

import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;

@WebServlet(name = "helloServlet", value = "/hello")
public class HelloServlet extends HttpServlet {
   
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
   
        System.out.println("Hello,Servlet!");
    }

}

3.2 编写跳转页面

index.jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="hello">Hello Servlet</a>
</body>
</html>

在这里插入图片描述
访问localhost:8080/project_war_exploded的页面

在这里插入图片描述

点击超链接后的页面
在这里插入图片描述

3.3 修改Tomcat配置

通过刚才的测试可以发现,访问的URL末尾有项目的名称project_war_exploded,那么如何省去这个名称,使得测试URL看起来更简洁呢,接下来就需要配置一下Tomcat
在这里插入图片描述

首先设置自动更新类和资源,这样在修改JSP页面的时候,服务器可以自动的刷新
在这里插入图片描述
接着点击部署,然后向下滑动滚动条
在这里插入图片描述
选择第一个空白
在这里插入图片描述

选择完毕后依次点击应用Apply和确定OK
再次启动Tomcat后,效果如下
在这里插入图片描述

4.Servlet 标识的两种方式


对于部分3的测试,你是否疑惑,为什么在点击超链接后,web服务器能执行java类的代码呢?
在了解这些之前,我们看看前端页面的关键一句代码:<a href="hello">Hello Servlet</a>
当我们在页面点击超链接后,地址URL变成了localhost:8080/hello,同时也可以直接访问这个地址。

在helloServlet类中有这么一句:@WebServlet(name = "helloServlet", value = "/hello")
在Java当中像这样带@符号的叫做注解,其作用是将当前类标识为一个Servlet类,这样Tomcat
容器便可以访问到该类。

注:Servlet标识不能重复,否则部署项目时会报错

4.1 注解方式

有两种方式使用注解来标识Servlet类

  • @WebServlet(name = "ServletClassName", value = "url")
  • @WebServlet(name = "ServletClassName", urlPattern="url")

其中的url便是前端网页调用时需要访问的地址比如 @WebServlet(name = “helloServlet”, value = “/hello”)

4.2 XML配置文件方式

在web项目中通常会有web.xml配置文件
在这里插入图片描述
注解是JDK1.5版本、Servlet3.0版本之后开始出现的,在那之前,JavaWeb项目里的Servlet声明通常是通过配置该文件,比如声明之前的hello类,具体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值