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)

请求转发和请求重定向

笔记

 

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值