Tomcat手动部署web应用

本文详细介绍如何从零开始部署Web应用,包括创建目录结构、编译Servlet、配置web.xml及测试过程。通过实例演示了HelloWorldServlet的实现与部署步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们看一下web应用的目录结构:

按照结构创建好各目录后,接下来我们只要做两件事:

  1. 将servlet编译成的class文件文件放到classes目录下  ( class文件要用到的jar包放到lib目录下 )
  2. 在web.xml中设置好相关的配置,重启!

第一步:我们写一个简单的servlet,HelloWorldServlet.java:

package jsp.servlet;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloWorldServlet extends GenericServlet{

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        PrintWriter out=servletResponse.getWriter();
        out.println("Hello World!");
    }
}

然后用控制台的javac命令将其编译成class文件(记住命令要导入相关的包或者添加相关包到CLASSPATH环境变量)

编译好后放入classes文件夹下(注意该类所在的包也拷贝进去,如该例就是将jsp/servlet/HelloWorldServlet.class拷贝到classes文件夹下)

第二步:根据目录结构创建web.xml,写入:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
 version="3.0">
 	<servlet>
 		<servlet-name>HelloWorldServlet</servlet-name>
		<servlet-class>jsp.servlet.HelloWorldServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>HelloWorldServlet</servlet-name>
		<url-pattern>/HelloWorldServlet</url-pattern>
	</servlet-mapping>
</web-app>

web.xml说明:

<servlet>(声明类)
     <servlet-name>
表示类名
    <serlet-class>表示完整的类名

<servlet-mapping>(设置虚拟路径):
     
<servlet-name>表示要声明哪个类的虚拟路径
     <url-pattern>设置该类虚拟路径可以设置多个,其中“/”表示web应用目录,可以理解为http://localhost/myWebProject/

接下来我们来测试一下:

在浏览器中输入http://localhost/myWebProject/HelloWorldServlet

大功告成哈哈哈哈

我是程序小白,每次进步一丢丢。

<think>嗯,用户的问题很明确:电脑启动菜单里突然出现"USBEntryforWindowsToGo"选项,但自己从未创建过WTG设备。这确实会让人困惑,毕竟系统凭空多出个启动项。回顾之前的对话,用户最初是询问这个启动项的存在意义,现在则聚焦于"为何会无故出现"。需要排除几个可能性:首先考虑物理层面,用户是否无意中插入了别人的WTG设备?比如同事的加密U盘或者学校发放的系统恢复盘。其次可能是软件层面,某些系统优化工具错误添加了启动项,或者用户之前测试过WTG功能但遗忘了。特别注意到引用文献提到WTG的启动项具有临时性[^1][^2],正常情况下移除U盘后启动项应该消失。如果残留,可能是EFI引导分区里的残留条目。这让我想起Windows的BootOrder机制——当检测到外部Windows设备时,系统会自动在NVRAM添加启动项,但有时删除机制会失效。用户可能还隐含安全担忧:这个神秘启动项会否被恶意利用?确实存在风险,但攻击成本较高,需物理接触设备。更常见的是无害残留,就像注册表冗余项那样。解决方案其实简单:拔掉所有USB设备重启两次,90%情况能解决;若顽固残留再用bcdedit清理。最后想到个细节:某些品牌机预装系统恢复工具,其恢复镜像可能被误识别为WTG。比如戴尔的SupportAssistOSRecovery就常被误判,这个可能性也该提一下。</think>电脑出现“USB Entry for Windows To Go”启动项但您未主动创建,可能是以下原因造成的: --- ### **主要原因分析** 1. **曾插入他人/其他设备的WTG驱动器** - 即使短暂插入过**已配置好的Windows To Go USB设备**(如同事的WTG U盘、系统恢复盘等),电脑的UEFI固件会**自动缓存该启动项**至NVRAM中[^1]。移除设备后,条目可能残留。 - **触发场景**:借用他人U盘、测试外接设备、使用过系统修复工具盘。 2. **驱动程序或系统工具误添加** - 部分USB控制器驱动更新或系统优化工具(如启动项管理软件)可能错误写入WTG相关启动配置。 3. **EFI分区残留引导文件** - 若电脑曾从WTG设备启动,其引导文件(如 `\EFI\Microsoft\Boot\` 中的文件)可能临时保存在本地EFI分区,导致启动菜单误读。 4. **品牌机预装恢复工具干扰** - 部分厂商(如戴尔、惠普)的**系统恢复分区**或**SupportAssist工具**可能被识别为WTG设备,生成类似条目。 --- ### **解决方案:手动移除残留项** #### 方法1:通过系统命令清理(推荐) 1. **以管理员身份运行命令提示符** 2. 依次执行: ```bash bcdedit /enum firmware # 列出所有启动项 ``` 3. 找到标识为 **"USB Entry for Windows To Go"** 的项,记录其 `identifier`(如 `{xxxx-xxxx}`) 4. 删除该条目: ```bash bcdedit /delete {identifier} /f ``` > **注意**:将 `{identifier}` 替换为实际ID,保留花括号。 #### 方法2:重置UEFI启动配置 1. 重启电脑,进入 **UEFI/BIOS设置界面**(开机按F2/DEL键) 2. 找到 **"Boot Options" → "Delete Boot Entry"** 3. 选择残留的WTG条目并删除(不同主板选项名称略有差异)。 #### 方法3:断开所有USB设备后重启 - 拔掉**所有外接USB设备**(包括键鼠外的U盘、移动硬盘),重启2-3次,系统通常会自动清除无效项[^1]。 --- ### **安全提示** - **检查异常设备**:若条目反复出现,检查是否接入过陌生U盘,警惕恶意WTG设备引导劫持。 - **扫描启动项**:使用工具如 `EasyUEFI` 或 `MSConfig` 排查异常引导项。 > **实测建议**:90%的残留可通过**方法3**(拔USB设备+重启)解决;若无效再用命令行或UEFI设置清理[^1][^2]。 --- ### **相关问题延伸** 1. **如何彻底阻止系统自动添加WTG启动项?** 2. **残留的WTG启动项是否影响电脑性能或安全性?** 3. **除了命令行,如何用图形化工具管理UEFI启动项?** 4. **为何Mac电脑对WTG的兼容性更好?其启动机制有何不同?**[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值