第一个servlet的项目的搭建

先理解下访问web的过程:

第一个servlet的项目的搭建_html

前提:Tomcat服务器需要配置好,并且在idea的configurations中创建Tomcat的部署!

  1. 创建Maven项目中已经有的简单web框架,要先创建和配置好java和resource目录。
  2. 在pom.xml下导入servlet的依赖:
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>

    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>
</dependencies>
  1. 修改webapp/WEB-INF/web.xml文件中的版本号,尽量与我们Tomcat根目录的webapps\ROOT中的版本号一致:
<?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"
         metadata-complete="true">
</web-app>
  1. 在配置好的java文件中创建一个java文件,例如:com.chen.servlet.HelloServlet.class。
    注意点:需要继承HttpServlet类,然后创建两个Overrides Methods(doGet,doPost)。
    注意:可用来设置网站默认的字符编码:response.setCharacterEncoding("UTF-8")
package com.chen.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
        //响应的类型:html
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        //获取响应的输出流
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>第一个servlet程序执行成功!</h1>");
        out.println("</body>");
        out.println("</html>");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

  1. 写完了java文件后,需要在web.xml文件中注册我们的类
    注意点:
  • 每一个servlet-name都需要一个servlet-mapping;
  • url-pattern:表示我们可以在搜素框中输入的内容而转到我们写的类中!
<?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"
         metadata-complete="true">

    <!--web.xml是配置我们web的核心应用-->
    <!--注册servlet-->
    <servlet>
        <servlet-name>helloServlet</servlet-name>
        <servlet-class>com.chen.servlet.HelloServlet</servlet-class>
    </servlet>
    <!--一个servlet对应一个Mapping:映射-->
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <!--请求路径-->
        <url-pattern>/chenjinshun</url-pattern>
    </servlet-mapping>
</web-app>
  1. 另外我们还可以写一个静态网页来对比,在webapp目录下创建一个header.html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>我是cjs!</h1>
</body>
</html>
  1. 在idea里面开启Tomcat服务器,页面会直接跳转到index.jsp文件,然后我们在
    搜索框输入我们的header.html可以看到我们的静态网页!然后我们把header.html
    改为我们的url-pattern中的内容,就可以看到我们java类中的内容!

注意事项:

  • 我们在idea开启Tomcat服务时,要先把我们用bat文件开启的Tomcat服务器关闭,
    否则会显示端口号已经被占用的错误!
  • 创建静态网页的时候,要确保目录时跟index.jsp文件同级,否则无法找到文件!
  • 当我们的java文件需要输出中文时,记得设置字符编码!