Tomcat

Apache Tomcat,通常简称为Tomcat,是一个开源的Java Servlet容器,由Apache Software Foundation开发和管理。它实现了Java Servlet和JavaServer Pages (JSP)规范,提供了一个纯Java的HTTP web服务器环境,用于运行Java代码。

Tomcat的主要特点包括:

  1. Servlet容器:Tomcat是一个Servlet容器,它允许你运行Java Servlets和JSPs,这些是Java EE技术的一部分。

  2. 轻量级:Tomcat是一个轻量级的Web服务器和Servlet容器,它不像其他企业级的Java EE应用服务器那样提供所有的Java EE规范实现。这使得Tomcat更加适合小型到中型的Web应用程序。

  3. 可扩展性:Tomcat设计灵活,可以通过添加额外的组件来扩展其功能,例如,通过添加Apache Camel来集成不同的系统。

  4. 跨平台:Tomcat是100%纯Java编写的,因此它可以在任何支持Java虚拟机的操作系统上运行。

  5. 社区支持:作为一个开源项目,Tomcat有一个活跃的社区,提供文档、教程、论坛和邮件列表,以帮助开发人员解决问题和分享经验。

  6. 持续更新:Apache Software Foundation定期更新Tomcat,修复bug,提升性能,并增加新功能。

Tomcat广泛应用于开发和生产环境中,尤其是在需要轻量级解决方案的情况下。它经常与Spring Boot一起使用,Spring Boot是一个流行的Java框架,它简化了基于Spring的应用程序的配置和部署。Spring Boot内置了对Tomcat的支持,使得创建独立的、生产级别的Web应用程序变得非常简单。

流程如下(如何配置web.xml文件)

web.xml

 <servlet>
        <servlet-name>RequestAPIServlet</servlet-name>
        <servlet-class>com.example.ServletDemo1.RequestAPIServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RequestAPIServlet</servlet-name>
        <url-pattern>/RequestAPIServlet</url-pattern>
    </servlet-mapping>

在编写servlet程序的时候都会写servlet来继承HTTPservlet,然后重写doGet和doPost方法


public class HelloServlet3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("重写doGet");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("重写doPost");
    }
}

在doget和dopost中就可以写业务代码了

@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取web.xml中配置的上下文参数context-param
        ServletContext context = getServletConfig().getServletContext();
        String username = context.getInitParameter("username");
        String password = context.getInitParameter("password");
        System.out.println("context-param的参数username的值是:"+username);
        System.out.println("context-param的参数password的值是:"+password);

        //获取当前的工程路径  格式:/工程路径
        System.out.println("当前工程路径:"+context.getContextPath());

        //获取工程部署后在服务器硬盘上的绝对路径
        /*
              /  被服务器解析地址为:http://ip:port/工程名/  <br>
        *
        * */
        System.out.println("工程部署的绝对路径是:"+context.getRealPath("/"));
        ServletContext servletContext = getServletContext();
        System.out.println("key1的值为:"+servletContext.getAttribute("key1"));

        System.out.println("资源路径 URI is :"+req.getRequestURI());
        System.out.println("绝对路径 URI is :"+req.getRequestURL());
        System.out.println("客户端IP地址:"+req.getRemoteHost());

        /*req.setCharacterEncoding("utf-8");
        resp.setHeader("Content-Type","text/html;charset=UTF-8");
        */
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = resp.getWriter();
        writer.write("writer到此一游!");
    }

HttpServletRequest和HttpServletResponse一些常用方法

HttpServletRequest 常用方法
获取请求参数:
String getParameter(String name): 获取请求参数的值。
String[] getParameterValues(String name): 获取请求参数的所有值(用于复选框等)。
Enumeration<String> getParameterNames(): 获取所有请求参数的名称。
Map<String, String[]> getParameterMap(): 获取所有请求参数的映射。
获取请求信息:
String getMethod(): 获取请求的HTTP方法(如GET、POST)。
String getRequestURI(): 获取请求的URI。
String getContextPath(): 获取上下文路径。
String getServletPath(): 获取Servlet路径。
String getQueryString(): 获取查询字符串。
String getRemoteAddr(): 获取客户端的IP地址。
String getRemoteHost(): 获取客户端的主机名。
int getRemotePort(): 获取客户端的端口号。
获取请求头:
String getHeader(String name): 获取指定名称的请求头值。
Enumeration<String> getHeaderNames(): 获取所有请求头的名称。
int getIntHeader(String name): 获取整数值类型的请求头。
获取Cookie:
Cookie[] getCookies(): 获取请求中的所有Cookie。
获取属性:
Object getAttribute(String name): 获取请求属性的值。
void setAttribute(String name, Object o): 设置请求属性的值。
Enumeration<String> getAttributeNames(): 获取所有请求属性的名称。
获取请求体:
InputStream getInputStream(): 获取请求体的输入流。
HttpServletResponse 常用方法
设置响应状态码:
void setStatus(int sc): 设置响应的状态码(如200、404)。
添加响应头:
void setHeader(String name, String value): 设置响应头的值。
void addHeader(String name, String value): 添加响应头的值(多个值)。
发送重定向:
void sendRedirect(String location): 发送一个重定向响应到客户端。
设置内容类型:
void setContentType(String type): 设置响应的内容类型(如"text/html"、“application/json”)。
获取输出流:
ServletOutputStream getOutputStream(): 获取响应体的输出流。
PrintWriter getWriter(): 获取字符输出流,用于发送文本数据。
设置Cookie:
void addCookie(Cookie cookie): 添加一个Cookie到响应。
设置字符编码:
void setCharacterEncoding(String charset): 设置响应的字符编码(如UTF-8)

请求转发和请求重定向

笔记

 

 

相关推荐

  1. Tomcat

    2024-06-14 11:10:02       50 阅读
  2. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-06-14 11:10:02      49 阅读
  3. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-06-14 11:10:02      51 阅读
  4. Tomcat

    2024-06-14 11:10:02       63 阅读
  5. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-06-14 11:10:02      52 阅读
  6. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-06-14 11:10:02      55 阅读
  7. Tomcat

    2024-06-14 11:10:02       57 阅读
  8. <span style='color:red;'>tomcat</span>

    tomcat

    2024-06-14 11:10:02      41 阅读
  9. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-06-14 11:10:02      46 阅读
  10. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-06-14 11:10:02      37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-14 11:10:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-14 11:10:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-14 11:10:02       87 阅读
  4. Python语言-面向对象

    2024-06-14 11:10:02       96 阅读

热门阅读

  1. 云计算时代的等保测评挑战和应对策略

    2024-06-14 11:10:02       31 阅读
  2. vue设置点击自身以外其他区域关闭列表

    2024-06-14 11:10:02       27 阅读
  3. 查询ubuntu的ip方法

    2024-06-14 11:10:02       30 阅读
  4. 后端开发面试题5(附答案)

    2024-06-14 11:10:02       32 阅读
  5. 在Spring中如何手动开启事务(使用编程式事务)

    2024-06-14 11:10:02       28 阅读
  6. 【Go】十三、TOKEN机制与跨域处理方式

    2024-06-14 11:10:02       23 阅读
  7. Python类,面向对象详解

    2024-06-14 11:10:02       25 阅读