普通web项目添加servlet

传送门

新建的web项目为什么默认访问index.jsp

环境

开发工具:idea

jdk:1.8

正文

1、创建一个普通的web项目:idea新建maven web项目

2、把servlet-api.jar添加到项目中,这里直接把tomcat下的lib包引用过来

点击加号(+),选择JARs or directories,然后项目tomcat根目录下的lib文件夹

3、创建两个servlet java类,目录结构如下:

HelloServlet.java具体代码

package xin.yangshuai.servlet;

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

/**
 * HelloServlet
 *
 * @author shuai
 * @date 2019/8/26
 */
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println("Hello World !!!");
    }

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

HiServlet.java具体代码

package xin.yangshuai.servlet;

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

/**
 * HelloServlet
 *
 * @author shuai
 * @date 2019/8/26
 */
public class HiServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println("Hi World !!!");
    }

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

将java文件夹设置为Sources Root,点击java文件夹右键,选择Make Directory as,选择Sources Root

4、修改web.xml,首先修改web.xml版本,默认是2.3,这里改成4.0,并加入servlet的配置和映射

web.xml默认2.3版本的文件头

修改为4.0版本文件头,其它版本参考:web.xml版本

具体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">

    <!-- 配置和映射Servlet -->
    <servlet>
        <!--Servlet 注册的名字-->
        <servlet-name>helloServlet</servlet-name>
        <!--Servlet 的全类名-->
        <servlet-class>xin.yangshuai.servlet.HelloServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <!-- 配置和映射Servlet -->
    <servlet>
        <servlet-name>hiServlet</servlet-name>
        <servlet-class>xin.yangshuai.servlet.HiServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>hiServlet</servlet-name>
        <url-pattern>/hi</url-pattern>
    </servlet-mapping>

</web-app>

5、启动项目,浏览器访问,出现如下即表示运行成功

6、项目的目录结构

7、github地址:https://github.com/shuai2016/first_page.git

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: @WebServlet注解是Java Servlet规范定义的一种注解,用于标记一个类作为Servlet组件。在使用@WebServlet注解时,需要指定Servlet的访问路径和Servlet的名称等信息。 例如,以下是一个简单的使用@WebServlet注解的Servlet示例: ``` @WebServlet(name = "MyServlet", urlPatterns = {"/myservlet"}) public class MyServlet extends HttpServlet { // Servlet代码 } ``` 在这个示例,@WebServlet注解指定了Servlet的名称为"MyServlet",访问路径为"/myservlet"。这样,当用户访问"/myservlet"路径时,容器就会自动调用MyServlet类的相关方法处理请求。 ### 回答2: @WebServletJava Servlet规范的一个注解,用于将一个普通Java类标识为一个Servlet类。通过使用@WebServlet注解,可以简化Servlet的配置和部署工作。 @WebServlet注解有许多可配置的属性,其最重要的是urlPatterns属性,用于指定Servlet可以处理的URL模式。例如,可以使用@WebServlet(urlPatterns = "/hello")指定一个Servlet可以处理以“/hello”开头的URL请求。 除了urlPatterns属性外,还可以配置其他属性,如name、description、initParams等,用于为Servlet提供更多的信息和配置。这些属性可以在部署描述符(web.xml)进行配置,但使用@WebServlet注解可以减少对web.xml的依赖和配置。 @WebServlet注解还可以添加多个urlPatterns属性值,以处理多个URL模式。例如,@WebServlet(urlPatterns = {"/hello", "/hi"})将使Servlet能够处理以“/hello”和“/hi”开头的URL请求。 除此之外,可以使用@WebServlet注解配置Servlet的加载顺序(loadOnStartup属性),该属性指定了Servlet容器在启动时创建Servlet的顺序。默认情况下,Servlet容器会在第一个请求到达时才创建Servlet实例,但通过设置loadOnStartup属性,可以使Servlet在容器启动时立即创建。 总之,@WebServlet注解是一种简便的方式,用于将Java类标识为Servlet类,并提供了许多可配置的属性,使Servlet的配置和部署更加灵活和简单。 ### 回答3: @WebServlet注解是Java Servlet规范的一个注解,用于标记一个Java类作为Servlet组件。它可以被用于任何类,并且可以标记在类级别上。 @WebServlet注解提供了一种更简单和直观的方式来配置Servlet,而不再需要在web.xml文件进行显式的配置。通过注解,开发人员可以在Servlet类的代码定义Servlet的属性和行为。 @WebServlet注解有多个属性,包括name、urlPatterns、value、description、initParams等。其,name属性用于指定Servlet的名称,urlPatterns属性用于指定该Servlet的访问路径。通过这些属性,可以方便地配置Servlet的名称和URL映射,使得开发人员更加灵活地控制Servlet的行为。 此外,@WebServlet注解还可以通过initParams属性来配置Servlet的初始化参数,从而在Servlet初始化时传递一些参数。这个属性可以接收一个数组,每个数组元素包含一个键值对,表示一个初始化参数的名称和值。 在开发,使用@WebServlet注解可以简化Servlet的配置和管理,使代码更加清晰、简洁。它消除了传统的XML配置文件,减少了配置的复杂性和维护的工作量。同时,它还提供了更多灵活的配置选项,使得我们能够更加灵活地定制和控制Servlet的行为。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值