JavaWeb

本文深入解析JavaWeb的概念,详细介绍了如何在Tomcat服务器上发布网站,以及Servlet的开发和配置过程。涵盖从项目搭建、Servlet接口实现到映射路径设置的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JavaWeb概念

在这里插入图片描述

2. Web服务器

tomcat

在这里插入图片描述

2.1 发布一个网站

  • 将自己写的网站,放到tomcat中指定的web应用的文件夹下(webapps)

    --webapps: Tomcat服务器的web目录
        -Root
        -example:网站的目录名
        	- WEB-INF
        		-classes:java程序
        		-lib:web应用所依赖的jar包
        		-web.xml 网站的配置文件
       		- index.xml 默认的首页
        	-static
        		-css
        			-style.css
        		-js
        		-img
    

3. Servlet

3.1 servlet简介

  • 开发Servlet程序的步骤
    • 编写一个类,实现Servlet皆苦
    • 把开发好的Java类部署到web服务器中

把实现了Servlet接口的Java程序叫做,Servlet。

3.2 HelloServlet

Servlet接口Sun有两个默认的实现类:HttpServlet,GenericServlet

1、构建一个普通的Maven项目,删掉里面的src目录,以后就在项目里面建立Moudle;

​ 这个空的过程就是maven的主工程

2、maven父子工程的理解:

# maven父工程的pom.xml文件中会有,module标签表示子工程
<modules>
        <module>servlet-01</module>
</modules>
#maven子工程的pom.xml文件中会有,parent标签表示子工程
<parent>
        <artifactId>javaweb-02-servlet</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
</parent>

父项目中的java,子项目可以直接使用;反之不成立

3.3 Maven环境优化

​ 1、修改web.xml为最新的

<?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">
  <display-name>Archetype Created Web Application</display-name>
</web-app>

​ 2、将maven的结构搭建完整

​ 3、编写一个Servlet程序

​ 1 编写一个普通类

​ 2 实现Servlet接口,这里直接继承HtppServlet

public class HelloServlet extends HttpServlet {
    // 由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // ServletOutputStream outputStream = resp.getOutputStream();
        PrintWriter writer = resp.getWriter(); // 响应流
        writer.print("HelloWorld");
    }

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

​ 4、编写Servlet的映射

因为写的是Java程序,但是要通过浏览器访问,而浏览器需要访问web服务器,所以我们需要在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>hello</servlet-name>
    <servlet-class>com.atguigu.HelloServlet</servlet-class>
  </servlet>
<!--  Servlet的请求路径-->
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

5、 配置Tomcat

3.4、Servlet原理

在这里插入图片描述

Mapping问题:

1 一个Servlet指定一个映射路径

 <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

2 一个Servlet指定多个映射路径

 <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello1</url-pattern>
  </servlet-mapping>
 <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello2</url-pattern>
  </servlet-mapping>

3一个Servlet指定一个通用映射路径

 <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello/*</url-pattern>
  </servlet-mapping>

4 一个Servlet指定通配符

<!--  注册404-->
<servlet>
    <servlet-name>error</servlet-name>
    <servlet-class>com.atguigu.servlet.ErrorServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>error</servlet-name>
    <url-pattern>/![在这里插入图片描述](https://img-blog.csdnimg.cn/20200724232628547.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pc3Nhc2Qx,size_16,color_FFFFFF,t_70)
*</url-pattern>
</servlet-mapping>

5、优先级问题

​ 制定了固有的映射路径优先级最高,/hello

​ 如果找不到就会走默认的处理请求,/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值