Java Web实验三:Servlet入门

爱编程的松子 2024-10-13 16:03:01 阅读 77

实验三   Servlet入门

一、实验目的

1.学会 Servlet的创建、配置及运行方法;

2.掌握Servlet的生命周期。

二、实验内容

1.在IDE中编写一个Servlet类TestServlet,重写init()方法,service()(或者doGet(),doPost())方法,destroy()方法;

2.正确配置该Servlet类TestServlet;

3.启动Tomcat服务器,通过浏览器访问该Servlet类TestServlet,观察init()方法,service()(或者doGet(),doPost())方法,destroy()方法的执行顺序,执行的次数以及执行的时机,示例如下图所示:

4.编写一个类HelloServlet继承于HttpServlet,分别重写doGet(),doPost()方法,编写一个html页面form.html,在该页面提供两个个按钮分别按照get和post方式访问该HelloServlet,观察两种方法调用的不同,如下图所示:

三、实验源代码、运行截图

TestServlet.java

<code>package com.xxx.servlet;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

import java.io.IOException;

import java.io.PrintWriter;

@WebServlet("/ser01")

public class TestServlet extends HttpServlet {

// 重写 init() 方法

@Override

public void init() throws ServletException {

// 初始化代码

System.out.println("TestServlet 初始化");

// 可以在这里加载资源或执行其他初始化操作

}

// 重写 service() 方法(或者单独重写 doGet() 和 doPost())

// 注意:通常我们不会直接重写 service() 方法,除非需要处理所有类型的请求

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 服务端代码

System.out.println("TestServlet service() 方法被调用");

// 根据请求类型调用 doGet 或 doPost

super.service(req, resp); // 调用父类的 service 方法,它会根据请求方法调用 doGet 或 doPost

}

// 重写 destroy() 方法

@Override

public void destroy() {

// 销毁代码

System.out.println("TestServlet 销毁");

// 可以在这里释放资源或执行其他清理操作

}

}

Server.xml

<?xml version="1.0" encoding="UTF-8"?>code>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"code>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"code>

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"code>

version="4.0">code>

<servlet>

<servlet-name>HelloServlet</servlet-name>

<servlet-class>com.xxx.servlet.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloServlet</servlet-name>

<url-pattern>/HelloServlet</url-pattern>

</servlet-mapping>

</web-app>

HelloServlet.java

package com.xxx.servlet;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

import java.io.IOException;

import java.io.PrintWriter;

//@WebServlet("/HelloServlet")

public class HelloServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

processRequest(req, resp, "GET");

// 处理 GET 请求

System.out.println("HelloServlet doGet() 方法被调用");

resp.setContentType("text/html");

PrintWriter out = resp.getWriter();

out.println("<html><body>");

out.println("<h1>HelloServlet GET 请求处理</h1>");

out.println("</body></html>");

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

processRequest(req, resp, "POST");

System.out.println("HelloServlet doPost() 方法被调用");

resp.setContentType("text/html");

PrintWriter out = resp.getWriter();

out.println("<html><body>");

out.println("<h1>HelloServlet POST 请求处理</h1>");

out.println("</body></html>");

}

private void processRequest(HttpServletRequest req, HttpServletResponse resp, String method) throws ServletException, IOException {

resp.setContentType("text/html;charset=UTF-8");

}

}

Test.html

<!DOCTYPE html>

<html lang="en">code>

<head>

<meta charset="UTF-8">code>

<title>Form for GET and POST Requests</title>

</head>

<body>

<h2></h2>

<form action="HelloServlet" method="post">code>

<label for="studentIdPost">学号:</label>code>

<input type="text" id="studentIdPost" name="studentIPost" required><br>code>

<label for="namePost">姓名:</label>code>

<input type="text" id="namePost" name="namePost" required><br>code>

<input type="submit" value="post">code>

</form>

<form action="HelloServlet" method="get">code>

<label for="studentIdGet">学号:</label>code>

<input type="text" id="studentIdGet" name="studentIdGet" required><br>code>

<label for="nameGet">姓名:</label>code>

<input type="text" id="nameGet" name="nameGet" required><br>code>

<input type="submit" value="get">code>

</form>

</body>

</html>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。