Servlet简介和环境设置

news2024/10/7 10:23:37

目录

Servlet 简介

Servlet 环境设置

导入jar包

web.xml文件配置

@WebServlet注解配置

web.xml文件的方式和@WebServlet区别


Servlet 简介

Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

总而言之,Servlet 是用于处理 Web 请求和响应的标准 Java 技术,是 Web 应用程序开发不可或缺的组成部分。

Servlet 环境设置

导入jar包

File-> Project Structure-> libraries 选择“+”,选择java-> 找到tomcat路径下的lib文件夹里选择servlet-api 与 jsp-api;

web.xml文件配置

在 WEB-INF 目录下创建 web.xml 文件;

<servlet>
	<!-- Servlet别名 自定义-->
  <servlet-name>TestServlet</servlet-name>
  <!--servlet的类全名-->
  <servlet-class>ccc.com.servlet.testServlet</servlet-class>
</servlet>

<servlet-mapping>
  <!-- 将Servlet和URL绑定 -->
	<!--给Servlet提供(映射)一个可供客户端访问的URI-->
  <servlet-name>TestServlet</servlet-name>
  <!--必须和servlet中的name相同-->
  <url-pattern>/test</url-pattern>
  <!-- servlet的映射路径(访问serclet的名称) -->
</servlet-mapping>

在src文件下新建包 ccc.com.servlet,在里面新建一个类 testServlet;

testServlet类里继承HttpServlet,代码如下:

public class testServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        System.out.println(request.getParameter("id"));
    }
}

在index.jsp里面写入以下代码,注意name属性要对应;

<form action="/test" method="get">
    <input type="text" name="id">
    <input type="submit" value="提交">
  </form>

然后我们启动服务器进入浏览器页面

找到Run-> Edit Configurations ->右边找到Deployment

把他改成/


重新启动服务器然后输入框里随便输入字符串点击提交,就可以发现已经在控制台打印出来了;

要设置 servlet 返回数据,可以调用 HttpServletResponse 对象的方法,例如:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 设置响应内容类型
    response.setContentType("text/html;charset=UTF-8");

    // 获取输出流对象
    PrintWriter out = response.getWriter();
    try {
        // 将响应信息输出到客户端浏览器
        out.println("<html>");
        out.println("<head>");
        out.println("<title>成功</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>成功</h1>");
        out.println("</body>");
        out.println("</html>");
    } finally {
        // 关闭输出流对象
        out.close();
    }
}

结果如下:

@WebServlet注解配置

这种方式的话比较简单,只需要添加一个@WebServlet;

@WebServlet(name = "TestServlet",urlPatterns = "/test")
    
public class testServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println(request.getParameter("id"));
    }
}

web.xml文件的方式和@WebServlet区别

相比于 web.xml 文件的方式,在使用 @WebServlet 注解时,不再需要手动编写 XML 文件来描述 Servlet 的配置信息,而是通过直接在 Servlet 对应的类上添加注解来完成。这样做的好处是:

  1. 更加方便:不用像 web.xml 那样繁琐地编写 XML 文件;
  2. 更加简洁:去除了 XML 中大量的模板式代码和冗余的信息;
  3. 更加高效:在应用启动时只需扫描注解,而不必解析整个 XML 文件;
  4. 更加灵活:注解更容易被理解和调整。

虽然使用 @WebServlet 注解能够带来很多好处,但也有局限性,不能用于配置其它组件,并且无法适应更复杂的场景。在实际开发中,要根据需要来选择合适的方式来进行配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对csv文件,又get了新的认知(二)

背景 最近在做数据处理时&#xff0c;发现别人给的 csv 文件用 txt 打开后&#xff0c;发现里面的所有字段都是带双引号&#xff0c;与自己之前见过的 csv 文件有点不一样&#xff0c;自己脑海里面隐约也见过 python 有相关的设置参数&#xff0c;于是就查看 python 官方文档中…

Linux 常用开发工具(上)(yum、vim)知识点+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 耐心是一切聪明才智的基础。—— 柏拉图。本章进入到Linux下的一些常用的工具&#xff0c;这些工具能帮助我们去更好的使用Linux操作系统。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分&a…

一个无标记点面捕头盔,如何实现高精度面部表情捕捉?

在影视、动画、 游戏、虚拟直播应用中 虚拟数字人 可以犹如真人般实时驱动 背后少不了面部捕捉技术 随着面部捕捉技术不断革新&#xff0c;从有标记点到无标记点发展&#xff0c;再到如今佩戴一个面捕头盔就可以轻松做到精准面捕。 广州虚拟动力多年沉淀经验&#xff0c;根…

eslint导致的报错解决

当你利用脚手架在创建vue项目时&#xff0c;无脑创建下默认一定会安装eslint代码检测工具。那么你的噩梦就来了。eslint作为代码规范检测&#xff0c;不得不承认它的强大&#xff0c;但是绝对是会逼死一众强迫症患者。 比如你只是简简单单运行一个vue项目&#xff0c;报错一大堆…

10 EM(期望最大)算法

文章目录 10 EM&#xff08;期望最大&#xff09;算法10.1 背景介绍10.2 EM算法公式10.2.1 EM算法公式收敛性证明10.2.2 EM算法公式导出 10.3 广义EM算法10.3.1 EM有什么作用&#xff1f;10.3.2 为什么要引入广义EM&#xff1f;10.3.3 广义EM公式导出10.3.4 广义EM有什么不同 1…

RS-232 RS-485 TTL电平标准 以及串口、COM口、UART口、USB转TTL、USB转串口

串口 即串行通信接口&#xff0c;与之相对应的另一种接口叫并口&#xff0c;并行接口。两者的区别是&#xff0c;传输一个字节&#xff08;8个位&#xff09;的数据时&#xff0c;串口是将8个位排好队&#xff0c;逐个地在1条连接线上传输&#xff0c;而并口则将8个位一字排开…

2023 华为 Datacom-HCIE 真题题库 12(完结)--含解析

单项选择题 1.[试题编号&#xff1a;190728] &#xff08;单选题&#xff09;以下哪种工具不能用来匹配BGP路由条目&#xff1f; A、基本ACL B、高级ACL C、IP PREFIX LIST D、Community Filter 答案&#xff1a;B 解析&#xff1a;高级ACL是一种用于过滤IPv4报文的ACL&#…

记一次通过binlog日志恢复MySQL数据库的经历

通过binlog日志恢复MySQL数据库的数据 一、起因 起因是我在自己服务器上搭建的博客被黑客攻击&#xff0c;黑客删除了我的数据库并且要求支付比特币才给我恢复。 博客所有的表和数据都被清空&#xff0c;只留下了勒索金额和地址。如图 穷鬼如我当然是&#xff1a; 二、恢复数…

单源最短路的建图

1.热浪 信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/problem_show.php?pid1379 很裸的单源最短路问题&#xff0c;n2500,可以用dijksta或者spfa都能过&#xff0c;下面展示spfa的做法 #include<bits/stdc.h> usi…

【蓝桥杯选拔赛真题58】Scratch打气球游戏 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch打气球游戏 一、题目要求 编程实现 二、案例分析 1、角色分析

微信小程序——Git版本管理

一篇文章带你学会微信小程序中的Git版本管理 场景复现微信开发者工具中的Git连接远程仓库配置网络和认证提交工作区更改查看历史查看文件修改历史切换分支创建分支拉取、推送与抓取 微信官方开发文档&#xff1a;微信开放文档 场景复现 最近在前端的学习过程中&#xff0c;接触…

普通二本程序员想进大厂,我需要考研吗?好程序员来答!

最近好程序员看知乎有某网友提问&#xff1a; 1 普通二本&#xff0c;非科班出身&#xff0c;对Java感兴趣 2 已经开始工作半年了&#xff0c;普通技术 java 岗位 3 英语不好&#xff0c;四级没过&#xff0c;最高才 400 4 通过培训进入 java 岗位&#xff0c;基础知识不太好 5…

Python编程环境搭建:Linux(Ubuntu)系统安装Python

Linux 系统是为编程而生的&#xff0c;因此绝大多数的 Linux 发行版&#xff08;Ubuntu、CentOS 等&#xff09;都默认自带了 Python。有的 Linux 发行版甚至还会自带两个版本的 Python&#xff0c;例如最新版的 Ubuntu 会自带 Python 2.x 和 Python 3.x。 打开 Linux 发行版内…

浏览器相关开发事项

文章目录 存储浏览器持久化存储&#xff08;F12->应用->存储&#xff09;浏览器缓存&#xff08;F12->内存&#xff09;浏览器存储管理单位&#xff08;域名/IP为单位&#xff09;区别localStorage VS 浏览器缓存localStorage VS cookies 存储 浏览器持久化存储&…

Linux :: 【基础指令篇 :: (补充):(5)】:: 初步认识并解析文件详细信息内容:文件类型与用户访问权限说明、文件类型分类说明

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 经过了前面内…

如何理解数字化转型模式,适用于哪些企业?

如何理解「数字化转型」模式&#xff0c;适用于哪些企业&#xff0c;有何利弊&#xff1f; 这是一个很大的话题&#xff0c;本篇内容较长&#xff0c;全文6000字&#xff0c;心急的伙伴可先看目录&#xff0c;衷心希望以下内容能给大家带来帮助。&#xff08;如果担心一次看不…

案例分析 | 无代码助力国企数字化转型破旧立新

数字经济已成为国策&#xff0c;国企数字化转型更是排头兵&#xff0c;正成为数字化转型标杆。企业数字化转型是用信息技术全面重塑企业经营管理模式&#xff0c;是企业发展模式的变革与创新&#xff0c;是迈向数字经济时代的必然选择。 2022年9月底&#xff0c;国资委下发了重…

docker-compose启动mysql双机热备互为主从

1、环境准备 IP地址名称192.168.123.78mysql-m192.168.123.82mysql-s 2、安装mysql-m&#xff08;192.168.123.78&#xff09; 创建M主节点&#xff0c;通过下面的docker编排配置创建响应的目录和文件&#xff0c;目录下边创建 docker-compose.yml和my.cnf文件 docker-compo…

机器学习笔记 - 深度相机技术原理路线概览

一、深度相机的应用和原理 机器学习、人工智能、嵌入式视觉和处理技术的进步帮助创新者构建了能够在几乎没有人工监督的情况下导航环境的自主机器。此类设备的示例包括AMR(自主移动机器人),自动拖拉机,自动叉车等。 使这些设备真正自主需要它们能够在没有任何手动…

定时器搭配GPIO做定时扫描按键 -- STM32

STM32学习 定时器&#xff08;TIM&#xff09;定时器工作原理定时器相关参数相关函数和配置参数 通用输入/输出&#xff08;GPIO&#xff09;GPIO原理GPIO相关函数 实现定时扫描按键总结 在STM32F103系列的单片机应用中&#xff0c;定时器&#xff08;TIM&#xff09;和通用输入…