第一个Servlet程序
第一个Servlet程序
Servlet
Servlet是Java服务器端编程,不同于一般的Java应用程序,Servlet程序是运行在服务器上的,服务器有很多种,Tomcat只是其中一种。
程序实例
在MyEclipse中新建一个Web Project。
在src中新建一个包,其中新建一个类叫HelloWorldServlet。
编写Servlet程序如下:
package com.shengqishiwind.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet extends HttpServlet { @SuppressWarnings("deprecation") @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 首先将访问修饰符覆写为public // 设置内容类型 resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html><head><title>Hello World Sample</title></head>"); out.println("<body><h1>Hello World Title<h1><h2>" +new Date().toLocaleString() + "</h2></body></html>"); out.flush(); } }
Servlet程序没有main方法,类一般都需要继承HttpServlet类。
web.xml
web.xml叫做deployment descriptor,部署描述符。
打开web.xml,编写内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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"> <servlet> <servlet-name>HelloWorldServletName</servlet-name> <servlet-class>com.shengqishiwind.servlet.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServletName</servlet-name><!-- servlet-name 要和上面的保持一致--> <url-pattern>/HelloWorld</url-pattern><!-- 注意前面要有斜线--> </servlet-mapping> </web-app>
访问这个页面
首先进行部署,这里采用在Tomcat的conf的server.xml的Host标签中加入:(详见使用MyEclipse开发第一个Web程序)
<Context path="/HelloWeb" docBase="E:\MDD\MyEclipseWorkspace\HelloWeb\WebRoot" reloadable="true"/>
然后运行服务器:
点击IDE中的Run Server按钮:
然后在浏览器中输入:http://localhost:8080/HelloWeb/HelloWorld
就可以看到页面。
过程解释
首先,服务器收到请求,根据其逻辑路径(HelloWeb),找到其物理路径("E:\MDD\MyEclipseWorkspace\HelloWeb\WebRoot")(配置文件中列出的);
然后根据后面的HelloWorld,找到web.xml中对应的url-pattern,然后找到对应的名字:HelloWorldServletName,根据它找到对应的servlet,其中列出了类名:com.shengqishiwind.servlet.HelloWorldServlet,
实例化这个类的对象,再执行其中的doGet()方法,将页面返回。
注意,更改Java代码不需要重启服务器(因为server.xml配置文件中加了reloadable="true",所以更改代码时服务器会重启),但是更改配置代码(web.xml中代码)需要重启服务器。
我们可以将Servlet看作是嵌套了HTML代码的Java类;可以将JSP看作是嵌套了Java代码的HTML页面。
参考资料
圣思园张龙老师视频教程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了