一.Servlet的基础
1.Servlet的概念,作用:
Servlet是指运行在服务端的Java小程序,是sun公司提供的一套定义动态资源规范,简单来说就是Java的一个接口。Servlet的作用就是用来接收和处理客户端请求,响应给浏览器的动态资源。
2.Servlet的工作原理:

3.访问资源的地址
- 访问静态资源:/Web应用名称/静态资源本身的路径
- 访问动态资源:/web应用名称/映射路径

当然,我们在运行tomcat服务器的时候是运行的tomcat的实例,每一个实例都会包含很多个web工程,一个web工程可能会有多个servlet。
4.Servlet基于tomcat的入门案例
1)思路:首先是在自定义类中实现Servlet接口,然后用web.xml配置servlet,然后在service/90方法中写简单的话,然后在前端页面写一个超链接,然后点击超链接进行请求。
2)步骤代码:
第一步,在自定义类中实现Servlet接口,这里实现servlet接口哦~
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
PrintWriter writer = servletResponse.getWriter();
writer.write("hello servlet");
writer.close();
}
第二步,在web.xml文件内配置servlet。
<servlet>
<servlet-name>a</servlet-name>
<servlet-class>com.sunshine.controller.FirstController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>a</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
第三步,在前端页面中写一个超链接。注意:可以是任何页面,但尽量写index.html页面。
<body>
<a href="servlet">servlet</a>
<a href="a">get</a>
<from action="b" method="post">
<input type="submit" value="提交">
</from>
</body>
最后启动tomcat打开页面。

除了上面的这种方式,我们也可以基于注解开发来进行编写。
@WebServlet("/annotation")
public class AnnotationController implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
servletResponse.setContentType("text/html;charset=utf-8");
PrintWriter writer = servletResponse.getWriter();
writer.write("hello 注解");
writer.close();
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
@WebServlet("/映射路径")里的内容也很多。

我们的入门案例就完成了,是不是很简单呢,下面开始我们的进一步加强~
这里我参照网上收集和我自己的理解来进一步加强~
二.Servlet的中阶
1.servlet的体系结构

下面是他们的一些方法。



2.servlet的生命周期
首先问几个问题:什么是servlet的生命周期?servlet对象什么时候创建?servlet对象什么时候销毁?
Servlet的生命周期就是servlet从创建到销毁的过程。默认情况下是在第一次有请求访问该Servlet实例的时候才会创建该Servlet对象。在服务器关闭,或者当前项目从服务器中移除的时候会销毁当前项目中的所有Servlet对象。
接下来就是关于servlet的几个实现方法。
分别是init():初始化servlet,getServletConfig():servlet配置信息,service():servlet服务业务操作,getServletInfo():servlet提示信息,destroy():servlet销毁。但是生命周期只涉及到其中三个。

下面举一个小栗子来说明servlet的生命周期:
@WebServlet("/servlet")
public class TestServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("servlet的init方法");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet的service方法");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("servlet的destroy方法");
}
}
然后启动服务器,这里用的是tomcat服务器。

然后我们在查看控制台。当我们第一次启动服务器,他就会自动初始化servlet,然后当我们点击请求的时候就会调用service方法进行业务处理。

当我们停止服务器就会销毁servlet
有时候我们需要在Servlet创建的时候做一些资源加载等等耗时操作,所以如果Servlet在第一次接收请求的时候才创建的话必然会影响用户的访问速度,所以此时我们需要让Servlet提前创建,将Servlet的创建提前到服务器启动的时候。
<!-- 配置Servlet本身 -->
<servlet>
<!-- 全类名太长,给Servlet设置一个简短名称 -->
<servlet-name>HelloServlet</servlet-name>
<!-- 配置Servlet的全类名 -->
<servlet-class>com.sunshine.servlet.TestServlet</servlet-class>
<!-- 配置Servlet启动顺序 -->
<load-on-startup>1</load-on-startup>
</servlet>
3.Servlet的三种映射路径的配置
3.1 完全路径匹配
访问当前Servlet的路径需要和配置的映射路径完全一致,例如Servlet的配置是/demo01,那么访问该Servlet的时候的路径也必须是http://localhost:8080/项目部署名/demo01才可以访问到
3.2 目录匹配
以 / 开始需要以 * 结束,注: Servlet里面用的不多, 但是过滤器里面通常就使用目录匹配
例如: 配置/* 访问的路径可写成/任意字符串,比方: /aa, /aaa; 配置 /aa/* 访问的路径可写成/aa/任意字符串,比方: /aa/b , /aa/cc
3.3 扩展名匹配
以*开头,以.扩展名结束,能够匹配所有以.相同扩展名结尾的请求路径
例如: *.action; 访问路径可以是 任意字符串.action,比方: aa.action, bb.action, c.action;
4.URL
4.1:统一资源定位符,它是某个互联网资源的唯一访问地址,客户端可以通过url访问到具体的互联网资源

4.2应用场景:客户端访问服务器的资源,或者一台服务器中要访问另外一台服务器的资源都是通过url访问
5.URI
5.1统一资源标识符, 它是服务器中某个资源的唯一标识,通过uri可以实现同一项目中的某个资源中访问另一个资源

5.2应用场景:在同一个项目的某个资源中访问该项目中的另一个资源
6.servlet与jsp的区别
Servlet 是一种在服务器端运行的 Java 程序,用于处理客户端请求并返回响应。Servlet 是通过实现Servlet 接口或扩展 HttpServlet 类来实现的。Servlet 的主要作用是处理客户端请求并生成响应,通常情况下,Servlet 用于控制请求的处理流程、数据的获取和操作、页面的跳转等。
JSP 是一种基于 HTML 的服务器端页面技术,它允许将 Java 代码嵌入到 HTML 页面中,以生成动态的Web 内容。JSP 页面通常包含 HTML 标记和 Java 代码,当 JSP 页面被请求时,服务器会将 JSP 页面编译成 Servlet,并在服务器端运行。JSP 的主要作用是用于生成动态的 Web 内容,包括动态页面和动态数据。
在 MVC(Model-View-Controller)模式中,Servlet 通常作为控制器(Controller)使用,负责处
理客户端请求并控制请求的处理流程。而 JSP 通常作为视图(View)使用,负责生成页面内容。模型(Model)通常指代数据模型,用于表示系统中的数据。
在使用 Servlet 和 JSP 开发 Web 应用时,通常使用 MVC 模式来组织代码,将应用分成模型、视图和控制器三个部分,以便于开发和维护。模型主要负责数据的获取和操作,视图主要负责生成页面内容,控制器主要负责控制请求的处理流程,并将模型和视图组合起来生成最终的响应。通常情况下,控制器(Servlet)会从客户端请求中获取必要的参数,并调用模型来处理数据,最后将数据传递给视图进行展示。这种方式可以有效地分离不同的代码逻辑,方便开发和维护。JSP侧重于视图,Servlet主要用于控制逻辑。
1万+

被折叠的 条评论
为什么被折叠?



