Java 访问 Servlet 的基础流程
在 Java Web 开发中,Servlet 是服务器端的核心组件,用于处理客户端请求并生成动态响应,要实现 Java 代码对 Servlet 的访问,需遵循规范的开发流程,涉及项目结构、配置文件、编写代码及部署运行等多个环节,以下是详细的步骤和说明。

开发环境准备
在开始之前,需确保搭建完整的 Java Web 开发环境,主要包括以下工具:
- JDK:Java 开发工具包,建议使用 JDK 8 或更高版本,提供 Java 运行时基础和编译工具。
- Web 容器:如 Apache Tomcat、Jetty 等,用于解析和运行 Servlet,Tomcat 因其轻量级和易用性成为主流选择,需下载并配置环境变量。
- IDE:IntelliJ IDEA、Eclipse 等,支持 Web 项目开发,可简化 Servlet 创建和调试流程。
创建 Web 项目并配置 Servlet
-
创建动态 Web 项目
在 IDE 中新建 Dynamic Web Project(如 Eclipse)或 Web Application(如 IDEA),项目需包含标准目录结构:src/main/java:存放 Java 源代码,如 Servlet 类。src/main/webapp:存放 Web 资源,包括 HTML、JSP 及配置文件web.xml。
-
编写 Servlet 类
Servlet 需继承HttpServlet类并重写doGet()或doPost()方法,以处理 HTTP 请求。import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<h1>Hello, Servlet!</h1>"); } }代码中,
HttpServletRequest封装请求信息,HttpServletResponse封装响应对象,通过response.getWriter()输出内容到客户端。
配置 web.xml 部署描述符
web.xml 是 Web 应用的核心配置文件,用于映射 Servlet 的访问路径,在 src/main/webapp/WEB-INF/ 目录下创建或修改 web.xml,添加以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
<servlet>:定义 Servlet 名称和全限定类名。<servlet-mapping>:将 Servlet 名称与 URL 路径关联,此处访问/hello即可触发HelloServlet。
编译与部署 Servlet
-
编译 Servlet
IDE 会自动编译 Java 源代码,生成.class文件并置于WEB-INF/classes目录下,若手动编译,需确保 JDK 和 Servlet API(如servlet-api.jar)在类路径中,命令示例:javac -cp /path/to/servlet-api.jar HelloServlet.java
-
部署到 Web 容器
将项目打包为 WAR(Web Application Archive)文件,或直接将项目目录复制到 Tomcat 的webapps目录下,启动 Tomcat 后,容器会自动加载并解析web.xml,注册 Servlet。
访问 Servlet 的方式
-
通过浏览器直接访问
启动 Tomcat 后,在浏览器地址栏输入http://localhost:8080/项目名/hello,8080为 Tomcat 默认端口,项目名为 WAR 文件或项目目录名称,浏览器将显示 Servlet 输出的 “Hello, Servlet!”。 -
通过 HTML 表单提交
在webapp目录下创建 HTML 表单,通过action属性指定 Servlet 路径,method属性指定请求方法(GET/POST):<form action="hello" method="post"> <input type="text" name="username" placeholder="请输入用户名"> <input type="submit" value="提交"> </form>提交表单后,请求将发送至
HelloServlet的doPost()方法,可通过request.getParameter("username")获取表单数据。
-
通过 Java 代码模拟请求
在测试或跨应用调用时,可使用HttpURLConnection发送 HTTP 请求访问 Servlet:import java.net.*; import java.io.*; public class ServletClient { public static void main(String[] args) throws IOException { URL url = new URL("http://localhost:8080/项目名/hello"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); } in.close(); } }
注意事项
- 路径问题:
web.xml中的<url-pattern>需以 开头,且避免与静态资源路径冲突。 - 编码处理:通过
request.setCharacterEncoding("UTF-8")和response.setContentType("text/html;charset=UTF-8")防止中文乱码。 - 线程安全:Servlet 默认采用单例多线程模式,避免在 Servlet 类中定义可变成员变量,防止线程安全问题。
通过以上步骤,即可完成 Java 对 Servlet 的访问,Servlet 作为 Java Web 的基础,其正确配置和使用是开发动态 Web 应用的关键,后续可结合 Filter、Listener 等技术实现更复杂的业务逻辑。




















