web前端的路径和Servlet注解开发

目录

在web前端的两种路径

绝对路径的两种写法

相对路径 

 相对路径进阶

使用注解开发Servlet

使用注解开发Servlet的注意事项

使用idea创建servlet模板


在web前端的两种路径

绝对路径的两种写法

1.带网络三要素   http://ip地址:端口号/资源路径

2.不带网络三要素

 /资源路径 这里/不能省略 ,要求访问的资源必须在同一个服务器上

前端页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="http://localhost:8080/path1">带网络三要素绝对路径访问Servlet</a><a href="/path1">不带网络三要素绝对路径访问Servlet</a>
</body>
</html>

servlet类

public class path01Servlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet");}
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"version="5.0"><servlet><servlet-name>path01Servlet</servlet-name><servlet-class>com.hhh.servlet.path01Servlet</servlet-class></servlet><servlet-mapping><servlet-name>path01Servlet</servlet-name><url-pattern>/path1</url-pattern></servlet-mapping></web-app>

浏览器访问

相对路径 

相对的不是当前项目,而是相对于URL地址栏 

写法

1.  "./path2"

2.  省略./    "path2"

public class path2Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet2...get");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

前端页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="./path2">相对路径</a><br><a href="path">相对路径</a>
</body>
</html>

web.xml文件

<servlet><servlet-name>path2Servlet</servlet-name><servlet-class>com.hhh.servlet.path2Servlet</servlet-class></servlet><servlet-mapping><servlet-name>path2Servlet</servlet-name><url-pattern>/path2</url-pattern></servlet-mapping>

浏览器页面

点击相对路径后,/demo2.html,会替换成path2

 相对路径进阶

 

可以替换是因为WEB-INF(包含web.xml)和demo2.html在同一个目录下,所以可以使用相对路径进行替换

如果html文件和 WEB-INF不在同一个目录呢

web.xml

<servlet-name>path3Servlet</servlet-name><servlet-class>com.hhh.servlet.path3Servlet</servlet-class></servlet><servlet-mapping><servlet-name>path3Servlet</servlet-name><url-pattern>/path3</url-pattern></servlet-mapping>

servlet类

public class path3Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet3...get");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

前端

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!--    直接使用绝对路径--><a href="http://localhost:8080/path3">path3绝对路径</a><br><a href="/path3">path3绝对路径</a><br>
<!--    使用相对路径访问当前路径的上一级目录下的/path3
--><a href="../path3">path3相对路径</a>
</body>
</html>

浏览器访问,要加上/a才能访问

点击相对路径

路径会变成/path3

使用注解开发Servlet

@WebServlet("/annDemo1")
public class annDemo1Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("anno Servlet");}
}

这样一来就不用在web.xml文件中书写映射关系

结果:

anno Servlet

使用注解开发Servlet的注意事项

1.注解开发使用的是@webServlet
2.@webServlet注解常见的属性是:1)String name() default "";相当于web.xml的 <servlet-name>t</servlet-name>可以不写2)String[] urlPatterns() default {};相当于web.xml的 <url-pattern></url-pattern>使用注解的时候,如果注解的属性是数组,那么我们使用的时候只给属性一个值,那么可以省略{} String[] value() default {};该属性等价于urlPatterns属性,好处是可以省略代码在使用注解的时候关于属性名是value是可以省略的1.如果注解的属性只有一个value,可以省略2.如果注解有多个属性,并且每个属性都有默认值,此时给value赋值时可以省略value,如果除了给value赋值还有其他属性赋值,这样就不可以省略value.
/*1.注解开发使用的是@webServlet2.@webServlet注解常见的属性是:1)String name() default "";相当于web.xml的 <servlet-name>t</servlet-name>可以不写2)String[] urlPatterns() default {};相当于web.xml的 <url-pattern></url-pattern>使用注解的时候,如果注解的属性是数组,那么我们使用的时候只给属性一个值,那么可以省略{}String[] value() default {};该属性等价于urlPatterns属性,好处是可以省略代码在使用注解的时候关于属性名是value是可以省略的1.如果注解的属性只有一个value,可以省略2.如果注解有多个属性,并且每个属性都有默认值,此时给value赋值时可以省略value,如果除了给value赋值还有其他属性赋值,这样就不可以省略value.*/
//@WebServlet("/annDemo1")
@WebServlet({"/annoDemo1","/annoDemo2"})
public class annDemo1Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("anno Servlet");}
}

使用idea创建servlet模板

 在servlet中书写

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet("/${Class_Name}")
public class ${Class_Name} extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}
}

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

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

相关文章

『哈哥赠书 - 53期』-『深入浅出 Spring Boot 3.x』

⭐️ 《深入浅出 Spring Boot 3.x》 ⭐️ 学习Spring Boot的必读之书 在 Java 后端开发领域&#xff0c;功能强大的 Spring 开源框架不仅是首选&#xff0c;也是事实上的标准。但由于 Spring 存在配置烦琐、部署不易、依赖管理困难等问题&#xff0c;因此基于 Spring 的快速开…

告别传统,拥抱未来——上门回收小程序引领变革

随着科技的飞速发展&#xff0c;我们生活的方方面面都在经历着前所未有的变革。在环保和可持续发展的背景下&#xff0c;传统的废品回收方式已经难以满足现代社会的需求。而上门回收小程序的出现&#xff0c;正以其便捷、高效的特点&#xff0c;引领着废品回收行业的变革。 一、…

HCIP-Datacom-ARST自选题库__OSPF单选【80道题】

1.OSPFV2是运行在IPV4网络的IGP&#xff0c;OSPFV3是运行在IPV6网络的ICP&#xff0c;OSPFV3与OSPFv2的报文类型相同&#xff0c;包括Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。关于OSPFv3报文&#xff0c;以下哪个说法是正确的 OSPFv3使用报文头部的认证字段完成报文…

抖音跳转微信卡片制作教程 小白也能搞

实测可以正常跳转&#xff0c;很牛逼&#xff0c;给大家分享一下~ 这是我做出来抖音发出去的效果&#xff0c;大家会制作了可以去卖钱&#xff0c;市场上一个这个卡片都要卖50-200&#xff0c;很不错的&#xff01;&#xff01; https://pan.baidu.com/s/1xPmGAWPcbAp7eXg7Dc…

温故而知新-秒杀项目篇【面试复习】

温故而知新-秒杀项目篇【面试复习】 前言版权推荐温故而知新-论坛项目篇【面试】秒杀项目中注册模块怎么实现的&#xff1f;秒杀项目中登录模块怎么实现的&#xff1f;秒杀项目中显示登录用户信息怎么实现的&#xff1f;SessionStorage是什么?为什么不用session而用token什么是…

骨位深间距小模具镶件如何走水路?3D打印让一切简单

在模具制造领域&#xff0c;骨位深且间距小的模具镶件由于结构复杂&#xff0c;传统加工方法难以制造出符合要求的冷却水路&#xff0c;导致模具在注塑过程中容易产生热量积聚&#xff0c;进而引发烫伤、缩孔等不良。然而&#xff0c;随着3D打印技术的飞速发展&#xff0c;这些…

0基础学习Mybatis系列数据库操作框架——Mysql的Geometry数据处理之WKT方案

大纲 几何结构构建点点集合线线集合面面集合几何信息集合 TypeHandlerSQL操作写入操作读取操作完整XML Mapper测试代码建表SQL总结代码参考资料 WKT全称是Well-Known Text。它是一种表达几何信息的字符串内容。比如点可以用WKT表示为POINT (3 3)&#xff1b;线可以用WKT表示为L…

Playwright教程

Playwright简介 支持多数浏览器 在Chromium&#xff0c;Firefox和WebKit上进行测试。Playwright拥有适用于所有现代浏览器的完整API覆盖&#xff0c;包括Google Chrome和Microsoft Edge&#xff08;带有Chromium&#xff09;&#xff0c;Apple Safari&#xff08;带有WebKit&a…

【哈希映射 字符串 乘法原理】2227. 加密解密字符串

本文涉及知识点 哈希映射 字符串 乘法原理 LeetCode 2227. 加密解密字符串 给你一个字符数组 keys &#xff0c;由若干 互不相同 的字符组成。还有一个字符串数组 values &#xff0c;内含若干长度为 2 的字符串。另给你一个字符串数组 dictionary &#xff0c;包含解密后所…

SpringCloud微服务03-微服务保护-分布式事务-MQ基础-MQ高级

一、微服务保护 1.雪崩问题 如何做好后备方案就是后续&#xff1a; 2.雪崩解决方案 某一个服务的线程是固定的&#xff0c;出现故障线程占满后&#xff0c;就不会让取调用这个服务&#xff0c;对其他服务就没有影响。 3.Sentinel ①初识Sentinel 配置过程&#xff1a;day05-服…

C++之多态详解

1. 多态的概念 1.1 概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会 产生出不同的状态。 举个栗子&#xff1a;比如买票这个行为&#xff0c;当普通人买票时&#xff0c;是全价买票&a…

源码编译安装LAMP

目录 1.LAMP概述 2.编译安装Apache httpd服务 1.关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下 2.安装环境依赖包 3.配置软件模块 4.编译及安装 5.优化配置文件路径&#xff0c;并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别 6.添…

数据清洗(ETL)案例实操

文章目录 数据清洗&#xff08;ETL&#xff09;概述案例需求和分析代码实现和结果分析 数据清洗&#xff08;ETL&#xff09;概述 “ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;Extract&#xff09;、转换&…

查询一个字符串在另一个字符串中出现的次数(java)

查询一个字符串在另一个字符串中出现的次数 例&#xff1a; String str1“helloworld,java,python,hellokafka,world big table helloteacher”; String str2“hello”; 字符串str2在str1中出现3次 代码 package exercise.test8;public class Demo8 {public static void mai…

【网络安全】2030年十大新兴网络安全威胁

欧盟网络安全局&#xff08;ENISA&#xff09;已发布了一份全面的清单&#xff0c;列出了预计到2030年将影响数字领域的十大新兴网络安全威胁。 该预测是为期八个月的广泛研究的成果&#xff0c;融合了ENISA前瞻专家小组、CSIRTs网络以及欧盟CyCLONe专家的见解。 这项研究突显…

[技术报告]InternLM2 Technical Report

摘要 像ChatGPT和GPT-4这样的大型语言模型&#xff08;llm&#xff09;的进化引发了人们对人工通用智能&#xff08;AGI&#xff09;出现的讨论。然而&#xff0c;在开源模型中复制这种进步一直是一个挑战。本文介绍了InternLM2&#xff0c;这是一个开源的大语言模型&#xff…

【面试干货】矩阵对角线元素之和

【面试干货】矩阵对角线元素之和 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 创建一个3x3的二维数组来表示输入的矩阵。通过嵌套循环读取输入的矩阵元素&#xff0c;并将其保存到数组中。再次嵌套循…

揭秘齿轮加工工艺的选用原则:精准打造高效传动的秘密武器

在机械制造领域&#xff0c;齿轮作为传动系统中的重要组成部分&#xff0c;其加工工艺的选择至关重要。不同的齿轮加工工艺会影响齿轮的精度、耐用性和效率。本文将通过递进式结构&#xff0c;深入探讨齿轮加工工艺的选用原则&#xff0c;带您了解如何精准打造高效传动的秘密武…

Web应用防火墙的重要性

网络安全是一个永恒的话题&#xff0c;尤其是在未知威胁不断涌现的情况下。企业网络安全是保障业务稳定运行的基础&#xff0c;Web应用防火墙(WAF)是企业网络安全的重要屏障&#xff0c;其性能直接影响到网络服务的质量和安全。 Web应用防火墙是什么&#xff1f; Web应用防火墙…

试试这个自动备份工具!

需要定时备份数据&#xff01; 在这个科技迅速发展的时代&#xff0c;数据安全变得极为重要。作为普通用户&#xff0c;我们需要了解数据备份的重要性。数据备份就像一把保护我们的伞&#xff0c;让我们不用担心重要文件意外丢失带来的困扰。如果我们忽视数据备份&#xff0c;…