3. Java Web 第一个Servlet例程

2019-07-08  本文已影响0人  飞扬code

Servlet技术: 用java语言开发动态资源的技术

servlet特点:

1)servlet就是一个普通的java类,继承HttpServlet类
2)一个普通的java类实现了Servlet接口,也叫Servlet程序。我们通常继承HttpServlet是为了创建一个基于http协议的servlet程序。
3)servlet程序交给tomcat服务器运行。

开发servlet的步骤

1)编写servlet程序,继承HttpServlet

/**
 * 第一个servlet程序
 * @author APPle
 */
public class HelloServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       //向浏览器输出内容
      response.getWriter().write("this is first servlet!!!"+new Date());
    } 
}

2)servlet程序交给tomcat服务器运行
2.1 把servlet的class字节码拷贝到WEB-INF/classes目录下
2.2 在web.xml文件中配置

 <!-- 浏览器访问: http://localhost:8080/Demo/hello -->

  <!-- 配置一个servlet -->
  <!-- servlet的配置 -->
  <servlet>
    <!-- servlet内部名称。可以自定义 -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- servlet类的全名:包名+简单类名 -->
    <servlet-class>com.demo.servlet.HelloServlet</servlet-class>
  </servlet>

  <!-- servlet的映射配置 -->
  <servlet-mapping>
    <!-- sevlet内部名称。和servlet配置的内部名称保持一致!! -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- servlet的路径映射。访问servlet的名称 -->
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

Servlet的路径映射

url-pattern: 表示servlet的路径映射,也叫servlet访问名称。


image.png

注意:
1)url-pattern要么以/开头,要么以*开头

例如: neuedu/demo1错误写法。 

2)不能同时使用两种模糊匹配。

例如: /neuedu/*.html 错误写法

3)当多个url-pattern同时符合匹配规则,那么:

3.1  精确匹配的url-pattern会优先被执行。(长的最像的url-pattern优先)
3.2  后缀名结尾的模糊匹配的url-pattern优先级最低。

Sevlet缺省路径

/ : 表示servlet的缺省路径。
在tomcat服务器中配置了一个DefaultServlet,叫默认Servlet,该默认Servlet的url-pattern就是/ 。默认Servlet的作用,用于解析web应用下的静态资源。

这里涉及一个经常会考察的问题: 浏览器输入一个资源名称时,查找资源的顺序是如何?
1)首先,在当前web应用下的web.xml文件中查找是否有匹配的url-pattern
2)如果匹配到,执行对应的servlet(动态资源)
3)如果没有匹配到,就交给tomcat服务器的默认Servlet去处理
4)默认Servlet会到当前web应用下读取对应名称的静态资源文件。
5)如果读到对应的静态资源文件,那么就把内容返回给浏览器
6)如果读不到对应的静态资源文件,那么就返回404的错误页面。

Servlet的生命周期

servlet的生命周期由tomcat服务器控制的。

Servlet的四个生命周期实例化、初始化、处理请求、销毁。

构造方法: 在创建servlet对象时调用。只调用1次。证明servlet对象在tomcat服务器中是单实例的。
init方法:在创建完servlet对象后调用。只调用1次。
service方法: 在每次请求servlet时调用。调用n次。
destroy方法: servlet对象销毁时调用。只调用1次。tomcat服务器停止或web应用重新部署时调用

image.png

Servlet2 和 Servlet3的区别

1、Servlet3可以完全抛弃web.xml配置文件
欢迎页的名称:index.html或index.jsp,可以自动识别。

2、创建servlet的区别
servlet3中创建servlet无需在web.xml中进行配置
通过注解实现配置,例如:

@WebServlet(/url) 等价于 @WebServlet(name="xxx",urlPatterns="/url")
//urlPattern可以设置为数组  urlPatterns={"/url1","/url2"}
//servlet可以设置多个不同的访问url
上一篇 下一篇

猜你喜欢

热点阅读