本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!
此处创建的是maven项目。
maven是一个构建工具,功能是帮助我们去构建,测试,打包一个项目。
1️⃣选中Maven,点击Next
2️⃣3️⃣4️⃣5️⃣设置项目名称与路径(此处的路径不要随便设置,一会要用到),点击Finish
完成创建项目(首次创建maven项目,IDEA会从互联网上加载很多依赖,需要花一定时间,此时需要保证网络畅通)。
每个Maven项目,都会有一个pom.xml 配置文件,这个文件里描述了maven项目的各方面的内容。
Servlet 是 tomcat 提供的api,不是标准库自带的,因此需要额外下载安装。
进入中央仓库https://mvnrepository.com/
下滑找到与Tomcat对应的版本,并点击。(查询对应版本:https://tomcat.apache.org/whichversion.html;此处我对应的版本是3.1.0)
在最顶层标签 project标签下 ,打出 dependencies标签 ,然后把 代码粘贴在dependencies标签中 。
以下的目录结构,目录位置,目录名字,文件名字与格式内容,要与下面的步骤保持一模一样。
第三行代码可能会冒红报错,原因是IDEA可以正确识别Java代码,不一定能正确识别其他文件,比如这里的xml文件。
这个报错可以忽略不管他,也可以alt + 回车解决掉。
DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Applicationdisplay-name>
web-app>
在java目录下创建 HelloServlet类。
如果继承HttpServlet类,报错或没有提示,说明没有正确的引入依赖,可以尝试去刷新一下。
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("/hello")
public class HelloServlet extends HttpServlet {
// 重写doGet方法
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 一定要把父类的doGet注释或者删除掉,父类的doGet会直接抛出405
// super.doGet(req, resp);
// 服务器的控制台打印 "hello world" ,服务器能看到,客户端看不到
System.out.println("hello world");
// 向resp 的 body 中写入 "hello world"这个字符串,这个内容就会被HTTP响应返回给浏览器,浏览器就会显示
resp.getWriter().write("hello world");
// resp.getWriter()得到resp内部的字符流Write对象,再通过write就可以将数据写入到HTTP响应中的body
}
}
小贴士
doGet方法要实现的功能就是根据请求计算出响应,再将想要写入resp响应对象中。 Tomcat会自动帮助我们完成读取解析请求,将响应写回客户端的功能
注解(@xxxxxxx)通常用来修饰一个类或者一个方法。实际应用中Tomcat中会有许多类许多方法,注解的作用通俗点说就是告诉Tomcat要调用的是哪个类哪个方法
这个代码,并不是独立运行,而是插入到Tomcat中,让Tomcat中的main方法在合适的时机调用,因此不需要咱们自己写main方法。
小贴士
Java当中的压缩包是jar与war
普通的java程序打包成jar包
要部署到tomcat的程序打包成war包
war包可以看作是特别定制的tomcat版jar包
war包是tomcat的专属格式,里面有一些特殊的目录结构和文件。
小贴士
之所以出现乱码是因为tomcat的字符集与Windows命令行用的不是同一个字符集。此处乱码也没关系,依然部署成功。
在浏览器地址栏输入URL,构造GET请求。
127.0.0.1:8080/hello_servlet/hello
URL也不是随便输入就行的!
注意!!!
不是Tomcat一启动,咱们代码中的doGet就会执行,而是遇到GET请求,且URL中的路径还要匹配时, 才会执行。
以上就是今天要分享的使用servlet写出的第一个hello world,加油加油加油!!!
路漫漫不止修身,也养性。