大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。
1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员…
2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。
3、如果您觉得文章有用,请收藏,转发,评论,并关注我,谢谢!
博客导航跳转(请收藏):​邵奈一的技术博客导航​​ | ​​公众号​​ | ​​微信  | ​​掘金​​ | ​​51CTO​​ | ​​简书​​ | ​​微博​​ |




教程目录

0x00 教程内容

  1. 创建Servlet
  2. 配置Servlet

0x01 创建Servlet

1. 方式一:直接新建Servlet类

创建Servlet非常简单,只需要新建一个类,然后继承 ​​HttpServlet​​ 类就可以了:

public class LoginServlet extends HttpServlet {

2. 方式二:使用IDEA新建

JavaWeb项目如何配置Servlet_java

比如这里我新建一个 ​​Servlet​​ :

JavaWeb项目如何配置Servlet_jsp_02

新建之后是这样:

package com.java.servlet;

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

@WebServlet(name = "ProductServlet")
public class ProductServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

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

}
}

0x02 配置Servlet

但是创建好 ​​Servlet​​ 之后,其实还是要配置好它的,不然就无法在项目中使用。

1. 方式一:配置 web.xml 文件

<!--设置servlet-->
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>com.java.servlet.LoginServlet</servlet-class>
</servlet>
<!--设置servlet的url-->
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>

说明:

其实上面使用IDEA创建Servlet,会默认配置好 ​​@WebServlet​​ 注解的name属性:

@WebServlet(name = "ProductServlet")

1. 方式二:使用注解

使用注解方式非常简单,只需要写上注解的属性就可以了:

@WebServlet(name = "login", urlPatterns = "/login")

直接在 ​​servlet​​ 上面加上注解,如图:

JavaWeb项目如何配置Servlet_开发_03

以上方式其实可以省略成这样:

@WebServlet("/login")

其实完整的写法是,以上是省略写法:

@WebServlet(urlPatterns = "/login")

如果你把 ​​url​​ 参数配置错的话,比如把斜杠去掉配置成这样:

@WebServlet(urlPatterns = "login")

其实是会报以下错误的:

Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> login in servlet mapping
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3184)
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3159)

其实就是说 ​​url​​ 配置不正确。

0xFF 总结

  1. 使用注解的方式非常简单,直接写个​​url​​​ 就可以了,如:​​@WebServlet("/login")​
  2. Servlet是Web开发的基础,掌握了基础,后面学习框架就会轻松很多,其实框架的底层就是这些基础,只是越来越简单而已,比如减少很多繁琐的操作,比如更加简单等等。
  3. 感谢支持!


邵奈一 原创不易,如转载请标明出处,教育是一生的事业。