Blog

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Servlet

发表于 2019-08-07 分类于 JavaEE 阅读次数:
本文字数: 3.3k

概念及原理

概念:Servlet(server applet)就是运行在服务器端的小程序,Servlet是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则。
原理:
1.当服务器接收到客户端浏览器的请求后,会解析请求url的路径,获取访问的Servlet的资源路径
2.查找web.xml文件,是否有对应的
3.有的话,tomcat会根据对应的的全类名,将字节码文件加载进内存,并且创建其对象
4.调用其方法

例子

1.创建JavaEE项目
2.定义一个类,实现Servlet接口
3.实现接口中的抽象方法
4.配置Servlet(2.5在web.xml中配置,3.0用注解的方式配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class ServletDemo 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 {
System.out.println("hello");
}

@Override
public String getServletInfo() {
return null;
}

@Override
public void destroy() {

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>first_servlet</servlet-name>
<servlet-class>cn.yb.test.ServletDemo</servlet-class>
<!--指定Servlet创建的时机-->
<!--1.第一次访问时创建-->
<!--load-on-startup 值为负数-->
<!--2.在服务器启动时创建-->
<!--load-on-startup 值为正数-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>first_servlet</servlet-name>
<url-pattern>/firstservlet</url-pattern>
</servlet-mapping>
</web-app>

3.0中使用@WebServlet注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {
String name() default "";

String[] value() default {};

String[] urlPatterns() default {};

int loadOnStartup() default -1;

WebInitParam[] initParams() default {};

boolean asyncSupported() default false;

String smallIcon() default "";

String largeIcon() default "";

String description() default "";

String displayName() default "";
}

Servlet体系结构

Servlet — 接口
GenericServlet — 抽象类
HttpServlet—抽象类

  • GenericServlet:将Servlet接口中其他的方法做了默认的空实现,只将service()方法作为抽象方法
  • HttpServlet:对http协议的一种封装,简化操作
1
2
3
4
5
6
public class ServletDemo1 extends GenericServlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("hello");
}
}
1
2
3
4
5
6
7
8
9
10
11
public class ServletDemo1 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);
}
}

------ 已触及底线感谢您的阅读 ------
麻辣香锅不要辣 微信支付

微信支付

  • 本文作者: 麻辣香锅不要辣
  • 本文链接: https://http://ybhub.gitee.io/2019/08/07/Servlet/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
# JavaEE # Servlet
SpringAop
  • 文章目录
  • 站点概览
麻辣香锅不要辣

麻辣香锅不要辣

21 日志
11 分类
20 标签
GitHub 简书
  1. 1. 概念及原理
  2. 2. 例子
    1. 2.1. Servlet体系结构
© 2019 – 2020 麻辣香锅不要辣 | 站点总字数: 20.4k字
|
0%