一、maven中心库
maven中心库是一个“工程管理/构建工具”,其核心功能有:
- 管理依赖;
- 构建/编译,这个过程会调用JDK;
- 打包,就是可以将Java代码打包成jar文件或者war文件。
maven中心库能够将这些操作串起来。
可以不用下载安装maven,idea中内置了maven中心库。
二、简介Servlet
Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给 API, 帮助简单高效的开发一 个 web app.
动态页面就是每次用户输入的参数不同构造出的输出结果不同。例如百度的搜素页面,每次搜索的关键词不同得到的页面结果也不同。
三、实现Servlet动态页面
1、创建一个maven项目
创建一个项目,选择maven,点击next选择文件存储的路径即可。
2、引入依赖
进入maven库 https://mvnrepository.com下载servlet依赖,选择与自己JDK和tomcat匹配的版本。
将对应的maven内容引入到创建的maven项目中的pom.xml中,并需要引入在depencies标签中。
在刚开始引入时会出现报红,但是当依赖自动下载完成之后字体就会恢复正常。
3、创建目录结构
maven虽然已经有了一些目录:
- src 表示源代码所在的目录。
- main/java 表示源代码的根目录.,后续创建 .java 文件就放到这个目录中.
- main/resources 表示项目的一些资源文件所在的目录. 此处暂时不关注.
- test/java 表示测试代码的根目录. 此处暂时不关注。
但是还是不足以支撑写一个Servlet项目,还需要手动创建一些目录和文件。
web.xml文件内容如下:
<!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 Application</display-name> </web-app>
4、编写Servlet代码
在main/java目录下创建HelloServlet类,该类继承HttpServlet,然后重写了doGET方法。
@WebServlet("/hello") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("hello world"); resp.getWriter().write("hello world"); } }
- doGet方法要做的工作就是根据请求计算出响应,这个方法在Tomcat收到一个HTTP GET请求的时候就会被Tomcat调用,也是一个回调函数。
- 传入的HttpServletRequest代表的是一个HTTP请求,HttpServletResponse代表的是一个HTTP响应。
- 在这个类上方加上 @WebServlet("/hello") 注解, 表示 Tomcat 收到的请求中, 路径为 /hello 的请求才会调用 HelloServlet 这个类的代码. (这个路径未包含 Context Path)。
- resp.getWriter() 会获取到一个流对象, 通过这个流对象就可以写入一些数据, 写入的数据会被 构造成一个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器.
这里就体现出如果一个类要被TomCat调用需要满足如下条件:
- a) 创建的类需要继承自 HttpServlet
- b) 这个类需要使用 @WebServlet 注解关联上一个 HTTP 的路径
- c) 这个类需要实现 doXXX 方法.
5、打包
需要先修改pom.xml,打包成一个war包,因为默认是jar包,再设置打包的文件名称。
<!-- 打的包是一个war包,默认是jar包 --> <packaging>war</packaging> <build> <!-- 表示打出的war包的名称--> <finalName>hello</finalName> </build>
然后双击package 进行打包。
打包成功,并在target文件夹下生成了hello.war文件。
6、部署
将上一步生成的hello.war文件拷贝到Tomcat的webapps目录下。
7、验证程序
打开Tomcat服务器,使用127.0.0.1:8080/hello/hello在浏览器中进行访问。
绿色代表第一级目录,叫做Context Path,就是刚才拷贝到webapps目录下的war包文件名称。
紫色代表第二级目录,叫做Servlet Path,是刚才创建的HelloServlet上面的
@WebServlet("/hello")注解名称。
如果对代码进行了如下修改:
resp.getWriter().write("hello world"+System.currentTimeMillis());
就需要再将5、6、7 再重复一遍,新修改的代码再次访问时才会生效。
这就引入了idea中的是smart Tomcat插件方便我们进行操作。
安装SmartTomcat插件:
下载完成后进行apply应用。
然后点击运行
出现如下信息表示成功:
然后再次在浏览器中访问即可:
每次刷新,时间戳也会发生改变。
简介Servlet2:https://developer.aliyun.com/article/1521657?spm=a2c6h.13148508.setting.31.55b44f0eN6tfHC