大家好,我们来分享一下Servlet 的初步认识
Servlet(Server Applet),全称Java Servlet,未有中文译文,
是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的理解:
Servlet是指Java语言实现的一个接口
广义的理解
Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
servlet 是sun 公司研发的 动态web技术。实现了servlet接口的Java程序就是servlet
就这样就可以了
对于servlet的理解,就是任何实现了这个Servlet接口的类
接下来就是要实现它
-
使用idea 创建一个新的最简单的maven 项目
-
我们要编写一个类 , 用来实现我们servlet 接口
将这个 -
将我们自己写的这个类发布到web服务器上 (例如tomcat)
这里什么都不用选,因为最简单的Maven项目就是不带任何模板的maven项目
接下来还有一个页面,选择默认完成就可以
这样maven 项目新建完成,删掉src 这个目录
导入需要的jar包
在上面的那个文件当中
(这两个jar包是我们执行servlet 程序必需的jar包)
<dependencies>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>4.0.1version>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>javax.servlet.jsp-apiartifactId>
<version>2.2.1version>
dependency>
dependencies>
我使用的是idea 2020 他会在右侧出现一个maven的图标(这一点是因软件版本而异的)
点一下, 就可以下载我们所需的jar 包,放到我们自己配置的本地远程仓库
看这个路径就可以了
有关于远程仓库的问题可以看这个
这就是我们建的一个子项目
注意看第一个项目中的这一行内容
他表示servlettest 包含在第一个项目当中
<modules>
<module>servlettest</module>
</modules>
也就是说,servlettest 项目是第一个项目的子项目
同样,在子项目(servlettest )项目当中其实也有一个 parent
<parent>
<artifactId>untitled</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
其实他就是代表untitled项目是servlettest 这个项目的爸爸 (父亲的角色)
我们前面搞了那么多,其实就是建了一个父项目和子项目
子项目可以使用 父项目 ,反过来讲就是错的
可以把它想成继承的关系
看我这个就可以
在子项目当中的指定位置上改一个这个文件
<?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"
metadata-complete="true"></web-app>
<!--我们把这个文件换一下,因为它这个太老了-->
其实这个内容是可以在tomcat 当中找到的
这就是它的具体路径
接着,我们再来往下
在main 文件夹新建 java resource两个文件夹
这些都是我认为关于这个类,你应该知道的东西
package ceshi; //这是一个包 , 当中文件夹就可以
import javax.servlet.http.HttpServlet; //这是程序正常运行必须的包
public class FirstServlet extends HttpServlet { //1.FirstServlet是我们自己随便写的类(自定义)
//2.HttpServlet 是默认(程序自带的)的类
// 3. 我们做了一个继承 *** 作
// 其实子项目servlettest 当中是使用了父项目里的jar包
//我们就是为了实现接口
}
这是截图 ,也许这样看的清晰
在这个类当中 按住ctrl 键 不放,然后点击HttpServlet
这就是这个类的源码
源码里面写着它的实现原理和过程,看的懂就看,看不懂也无所谓
重写方法
package ceshi;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class FirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
这样的话,这个类就写好了
package ceshi;
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 FirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
PrintWriter writer = resp.getWriter();
writer.print("hi,servlet "); //输出具体内容
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
这个实例要明确一点,我们这是Java程序,浏览器要去访问它,就要连接web服务器,这个过程可以称为 注册
在web.xml 当中写
本质上,就是为了web服务器可以调用servlet 程序
<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"
metadata-complete="true">
<servlet>
<servlet-name>hiservlet-name>
<servlet-class >ceshi.FirstServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name > hiservlet-name>
<url-pattern >/hiurl-pattern>
servlet-mapping>
web-app>
接下来,我们连接tomcat (web 服务器)
点这里
tomcat 配置完成
这个时候,浏览器自动d出查看
默认会到这里
这是因为这个文件的原因
到我们自己映射的页面去
正常显示
好了,有关于Servlet 的初步认识以及实战 *** 作就到这里了,谢谢大家
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)