手动实现一个servlet

博客要求手动实现一个Servlet,用户访问该Servlet并刷新浏览器时,可看到服务器当前时间。还提示往用户浏览器输出语句的方式,以及体会此实现方式与静态页面的区别,最后说明了实现需创建一个Servlet项目。

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

要求:

手动实现一个servlet,要求用户去访问这个servlet的时候,user每次在browser刷新都可以看到服务器当前的时间。

提示:要往用户浏览器输出语句,目前可以在service里调用如下代码:

      public void service(ServletRequest req, ServletResponse res) {
   

                System.out.println("hello,servlet!");


		res.getWriter().println("hello,world");
   
      } 

体会这种方式去实现servlet跟静态页面有何区别。

实现:

1.前提是创建一个Servlet项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:

@WebServlet("/time")
public class ShowTime extends GenericServlet{
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws IOException {
//格式化时间 yyyy-MM-dd HH:mm:ss
        SimpleDateFormat t = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //获得ServletContext对象。
        //一个WEB应用中的所有Servlet共享同一个ServletContext对象,
        // 因此Servlet对象之间可以通过ServletContext对象来实现通讯
        ServletContext servletContext = getServletContext();
        //用来存储一个对象,也可以称之为存储一个域属性
        //域属性名称为key,域属性的值为t.format(new Date()
        servletContext.setAttribute("key",t.format(new Date()));
        servletResponse.getWriter().println(servletContext.getAttribute("key"));
    }
}

结果:
在这里插入图片描述

手动配置Servlet涉及在Java Web应用程序中创建一个Servlet,并了解其完整的生命周期过程,主要包括以下几个步骤: 1. **定义Servlet**: 首先,你需要创建一个实现了`javax.servlet.Servlet`接口或继承了`javax.servlet.http.HttpServlet`的类。这是Servlet的核心,它定义了处理HTTP请求的方法,如`doGet`和` doPost`。 ```java public class HelloWorldServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理GET请求 response.getWriter().println("Hello, World!"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理POST请求 response.getWriter().println("Received POST request"); } } ``` 2. **部署Web应用**: 将包含Servlet的`.class`文件以及相关的资源(如HTML、JSP等)放入web应用目录结构(比如WEB-INF/web.xml文件),并确保该目录被添加到服务器的部署路径中。 3. **注册Servlet**: 在web.xml配置文件中通过 `<servlet>`标签声明Servlet,并指定Servlet类名和URL映射。 ```xml <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> ``` 4. **启动服务器**: 启动Web服务器,Servlet会在容器启动时自动加载和初始化。 5. **生命周期阶段**: - 初始化(init()):当Servlet第一次被创建时,服务器会调用Servlet的`init()`方法进行初始化配置。 - 服务(service()):当接收到客户端请求时,服务器会调用相应的处理方法(如`doGet`或`doPost`)。 - 销毁(destroy()):当服务器关闭或Servlet不再需要时,会调用`destroy()`方法进行清理工作。 6. **访问Servlet**: 通过浏览器访问URL `http://yourserver/yourapp/hello`,应该能看到对应的响应结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值