Servlet为什么需要映射

Servlet的访问不同于静态资源如JSP和HTML,由于Oracle的Servlet规范,Servlet类文件放置在WEB-INF/classes下,浏览器无法直接访问。通过web.xml配置Servlet映射,可以隐藏实现细节并提供简洁的URL,比如将.action映射到ActionServlet。这种方式便于管理和简化用户访问,同时也遵循了Servlet的目录结构标准。
摘要由CSDN通过智能技术生成

一 问题描述

  在学习Java web的过程中,创建了Servlet类之后,需要到配置文件(或部署描述符文件)web.xml中配置Servlet的映射,于是就产生了疑问,像JSP、HTML文件可以直接根据路径名,例如http://localhost:8080/helloworld/index.jsp进行访问,那么为什么class文件(类的字节码文件)不能像http://localhost:8080/helloworld/WEB-INF/classes/com/company/app/HelloWorld.class这样去访问呢?

二 问题解决

原因如下:

  1. 最重要的一点,Oracle公司的Servlet规范定义了Java web应用的目录结构,自定义的Servlet类及其他类文件编译后必须放在项目根目录\WEB-INF\classes\,而WEB-INF目录下的文件浏览器无法直接访问,因此需要建立映射,使得浏览器可以通过该映射(本质是统一资源标识符)访问该类。
  2. 可以给同一个Servlet建立多个映射。.do结尾的Servlet都由ActionServlet来处理。(来自Tomcat与Java Web,孙卫琴,虽然可以这么用,但是实际中一个Servlet应该具备单一功能,建立多个映射不实用。可能有其他应用场景,目前不清楚)
    <servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>com.company.servlet.ActionServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
  1. 简化访问Servlet的URL,使得用户更容易理解和记忆。同时,隐藏了Web应用的实现细节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月几时有666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值