Java web.xml配置 servlet

本文介绍如何在servlet目录中创建并配置Servlet应用,包括两种创建Servlet的方法及其在web.xml中的配置过程。通过示例展示了如何实现GET方法并在浏览器中进行测试。

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

这是我的 servlet 目录,我在里面建了两个测试类 hello和hello1。



1、其中 hello1是快捷方式建的。就是  。点击下面所示的 S 符号。这种方式会自动配置好 servlet相关信息。
2、hello 是 直接在 view 包上new出来的


配置文件如下:
值得注意的地方是
1、servlet-class 要如实填写。在那个包就那个包。把src往下的全都填写上去
2、servlet-name 和 url-pattern可以随意写,但是上下两个name要保持一致。以及pattern至少要一个/
我在hello中实现了 GET方法,以便在浏览器中测试是否能连接成功,代码如下:


/**
 * 
 */
package View;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author Administrator
 *
 */
public class hello extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		out.println("<!doctype html>");
		out.println("<html>");
		out.println("<head><meta charset='utf-8'><title>Login Get</title></head>");
		out.println("<body><p>HELLO测试</p");
		out.println("</body></html>");
		out.close();
	}
}



然后在 浏览器中输入:http://localhost:8080/myshop/hello

浏览器中输入的 URL 分为以下组成部分:
协议://IP:端口/文件路径
文件路径 = 部署在tomcat下的工程名(上面例子中就是 myshop)+ 在web.xml中设置的 url-pattern值
即:myshop/hello

值得注意的一点是,使用 S 按钮快捷创建的servlet 默认是 /类名  并且不会在web.xml中写出来.

一般情况 写完之后要 重启一下服务器。才会生效。




### 如何在 Eclipse 中通过 `web.xml` 配置 Servlet 要在 Eclipse 中通过 `web.xml` 文件配置 Servlet,可以按照以下方式进行操作: #### 1. 创建动态 Web 项目启用 `web.xml` 如果在创建动态 Web 项目时未自动生成 `web.xml` 文件,则可以通过调整项目Java EE 版本来解决此问题。确保项目的 Dynamic Web Module 设置为低于 **4.0** 的版本(例如 3.1 或更早),因为从 Servlet API 4.0 开始,默认情况下不再强制生成 `web.xml` 文件[^3]。 #### 2. 找到编辑 `web.xml` 文件 在项目的 `WEB-INF` 目录下找到 `web.xml` 文件,对其进行必要的修改。以下是典型的 `web.xml` 配置结构: ```xml <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!-- 定义 Servlet --> <servlet> <servlet-name>CheckParamServlet</servlet-name> <servlet-class>servlet.CheckParamServlet</servlet-class> </servlet> <!-- 映射 URL 到 Servlet --> <servlet-mapping> <servlet-name>CheckParamServlet</servlet-name> <url-pattern>/checkparam</url-pattern> </servlet-mapping> </web-app> ``` 上述代码定义了一个名为 `CheckParamServlet` 的 Servlet 将其映射到 `/checkparam` 路径上[^5]。 #### 3. 解决可能的冲突问题 需要注意的是,在某些情况下可能会遇到注解和 `web.xml` 同时配置同一 Servlet 导致的冲突问题。例如,如果已经在 Servlet 类中使用了 `@WebServlet("/servlet/CheckParamServlet")` 注解,则无需再在 `web.xml` 中重复配置Servlet 和其路径映射[^2]。可以选择删除其中一种配置方式来解决问题。 #### 4. 测试配置的有效性 完成以上步骤后,启动 Apache Tomcat Server 来测试配置是否生效。如果仍然无法正常访问 Servlet,可能是由于 servlet-class 的路径不正确引起的。此时建议通过右键单击 Servlet 文件选择 “Run As -> Run on Server”,观察浏览器中的实际访问路径,据此修正 `web.xml` 中的相关配置[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值