Demo

IDEA demo1:
http://heawill.top/upload/2021/07/demo-14a888df59e74c8aa506f51addd5559e.zip
IDEA demo2(投票demo):
http://heawill.top/upload/2022/04/vote_demo-0adf9b6662624598a037224cd200647a.zip

基本概念

jsp/servlet项目需要依托对应的容器,如tomcat,才能跑起来。
其主要是web.xml配置文件,和servlet实现。

servlet文件示例

package com.example.demo;

import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;

@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
    private String message;

    public void init() {
        message = "Hello World!";
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("text/html");

        // Hello
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>" + message + "</h1>");
        out.println("</body></html>");

        String contextPath = request.getSession().getServletContext().getRealPath("/");
        System.out.println(contextPath);
    }

    public void destroy() {
    }
}

如果不使用@WebServlet注解,则需要在web中配置此servlet,如:

<?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对象 -->
        <servlet-name>HelloServlet</servlet-name>
        <!-- 上面一句指定Servlet对象的名称 -->
        <servlet-class>com.example.demo.HelloServlet</servlet-class>
        <!-- 上面一句指定Servlet对象的完整位置,包含包名和类名 -->
    </servlet>

    <servlet-mapping>
        <!-- 映射Servlet -->
        <servlet-name>HelloServlet</servlet-name>
        <!--<servlet-name>与上面<Servlet>标签的<servlet-name>元素相对应,不可以随便起名  -->
        <url-pattern>/hello-servlet</url-pattern>
        <!-- 上面一句话用于映射访问URL -->
    </servlet-mapping>
</web-app>