首页 /  技术专区  /  Servlet 宽屏模式 >

HelloServlet

1.Servlet简介

Servlet就是sun公司开发动态web的一门]技术

Sun在这些API中提供一个接口叫做: Servlet, 如果你想开发一个Servlet程序, 只需要完成两个小步骤:

    编写一个类,实现Servlet接口

    把开发好的Java类部署到web服务器中。

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


2.HelloServlet

1.构建一个普通的Maven项目,删掉里面的src目录,以后我们的学习就在这个项目里面建立Moudel;这个空的工程就是Maven主工程;|

image.png

image.png

image.png

2.导入servlet-api依赖。

image.png

<!-- 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>

3.新建一个子项目,servlet-01。

image.png

image.png

image.png

image.png

image.png

关于maven项目中父子工程的理解:

父工程pom中会有:

<modules>
    <module>servlet-01</module>
</modules>

子工程pom中会有:

<parent>
    <artifactId>javaweb-02-servlet</artifactId>
    <groupId>com.allen</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

4.把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"
         metadata-complete="true">

</web-app>

5.编写一个servlet程序

在servlet-01中新建java、resources,并标记文件

image.png

新建com.allen.servlet包,并在包下创建HelloServlet类。

image.png

package com.allen.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 resp) throws ServletException, IOException {
        PrintWriter witer = resp.getWriter();
        witer.print("Hello, Servlet!");
    }

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

6.编写servlet映射。

为什么需要映射:我们写的是IAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要再web服务中注册我们写的Servlet,还需给他一个浏览器能够访问的路径;

在WEB-INF下的web.xml中添加:

<!-- 注册Servlet -->
<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>com.allen.servlet.HelloServlet</servlet-class>
</servlet>

<!-- Servlt映射路径 -->
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello</url-pattern>
</servlet-mapping>

7.配置tomcat并启动。

补充:

如果遇到问题:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8

解决方法:https://www.liqinglin0314.com/article/292

image.png

访问hello测试:

image.png


mapper问题:

1、一个servlet可以指定一个mapping映射路径:

<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>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello2</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello3</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello4</url-pattern>
</servlet-mapping>

3、一个servlet可以指定通用映射路径:

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

4、默认请求路径

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

5、指定一些后缀或者前缀

<!-- 可以自定义后缀实现请求映射
注意:.*前面不能加项目映射的路径 -->
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

6、优先级问题

指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求; 



头像
0/200
图片验证码