(七)、第一个项目HelloServlet
26.构建一个MAVEN项目
1.什么是Servlet?
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。
1.构建一个普通的MAVEN项目 2.删除里面的Src目录,以及不必要的代码 3.导入两个依赖. 4.构建Module模块: (1).关于Maven父子工程的理解: 父项目中会有: <modules> <module>Servlet-01</module> </modules> 子项目中会有:(没有的话手动添加) <parent> <artifactId>父项目名字</artifactId> <groupId>com.Jsxs</groupId> <version>1.0-SNAPSHOT</version> </parent> 5.重写Web项目: 更新最新的4.0 6.在main包中创建目录: java resource 7.在java中创建一个com.Jsxs.包,并在这个包中设一个类 8.实现Serlvet接口。这里我们直接继承HttpServlet 9.在类中重写两个方法: doGet doPost 10.在类中书写信息: 11.在web.xml中编写映射: 我们写的是java程序,但是要通过浏览器访问,而浏览器 需要连接web服务器,所以我们需要在web服务中注册我们写的Servlet,还需要能够 访问的路径。 12.配置Tomcat.
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.2.1</version> </dependency>
<!-- 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>
1.构建Model模块
2.配置类方法:
3.配置web.xml
package com.Jsxs.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 { // 由于get和post只是请求实现的不同方式,可以相互调用,业务逻辑都一样; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("进入GET模式"); PrintWriter writer = resp.getWriter(); //响应流 writer.println("hello servlet!"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
<?xml version="1.0" encoding="UTF-8"?> <web-app metadata-complete="true" version="4.0" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"> <!--注册servlet--> <servlet> <servlet-name>hello</servlet-name> <!-- --> <servlet-class>com.Jsxs.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
(八)、Servlet原理
27.Servlet原理
1.Servlet是由WEB服务器调用,WEB服务器在收到浏览器请求之后,
28.Mapping映射
1.一个Servlet可以指定一个映射路径 2.一个Servlet可以指定多个映射路径 3.一个Servlet可以指定通用映射路径 (1). 默认通道: /* */ (2).通用映射路径: hello/* */ 4.指定一些后缀或则前缀等待.... (1). *.后缀 ; *前面不能加/ 5.优先级问题: (1).指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求.
1.指定一个Servlet映射路径> 2.指定多个Servlet映射路径
3.指定通用的Servlet
4.指定后缀的名字
5.指定的固有的映射路径最高,最先执行