day7servlet

Day07

Servlet

1.   servlet的入门

servlet 是运行在 Web 服务器中的小型 Java 程序。

需要web服务器知道java程序不是一个普通的java程序,而是一个servlet

           * 通过配置进行操作

           * 在web项目中,web.xml里面进行配置

实现Servlet接口

           * 如果实现接口,需要把接口里面的方法都实现

继承GenericServlet, HttpServlet类

           * 如果继承类,不需要把类中的方法都实现

 

配置web.xml

                    <servlet>

                             <serlvet-name>name</serlvet-name>

                             <serlvet-class></serlvet-class>

                    </servlet>

                    <servlet-mapping>

                             <serlvet-name>name</serlvet-name>

                             <url-pattern></url-pattern>

                   </servlet-mapping>

2.servlet的执行过程

                   1)发送请求http://localhost:8080/Day07/Demo1

                   2)<servlet-mapping>中的<url-pattern>匹配请求路径/Demo1,并找到<servlet-name>的servlet名称

                   3)根据找到的名称,上溯到<servlet>标签中的<servlet-name>,匹配<serlvet-class>

                   4)读取<serlvet-class>中的类路径,使用反射机制,加载class对象,并执行service()方法。

                   5)执行操作,返回相应。

3. servlet的生命周期

         servlet的生命周期:从servlet创建到servlet销毁的过程

 

         init方法,在servlet创建时候执行这个方法,执行一次,servlet在第一次访问时候创建

         service方法,在每次访问servlet时候会执行这个方法,执行多次

         destroy方法,销毁servlet时候执行这个方法,执行一次

4. servlet开发细节的问题

         servletRequest和serlvetResponse不带协议

         HttpServletRequest和HttpServletResponse带协议

 

         提交方式是get,调用doGet方法;提交方式是post,调用doPost方法

 

         在服务器启动时候创建servlet:

         通过配置文件进行配置 ,在servlet标签里面写标签<load-on-startup>正整数的值</load-on-startup>

 

5. url-pattern的配置

         5.1配置有三种方式

         第一种方式:完全路径匹配

         写法 : /aa   /hello

 

         第二种方式:目录匹配

         写法:  /aa/*

 

         第三种方式:扩展名匹配

         写法:  *.do  *.action

 

         5.2优先级

         完全路径匹配 > 目录匹配 > 扩展名匹配

 

6. 开发中路径的问题

         6.1相对路径

         (1)在html文件中引入图片

         (2)有三种情况

                   第一种:图片和html在同一个目录下面

                            *直接写图片的名称

                   第二种:图片在html的上层目录

                            *写 ../ 表示上层目录

                   第三种:图片在html的下层目录

                            *直接写目录名称和图片名称

 

         6.2绝对路径(一般开发中都使用)

         (1)第一种写法:http://ip地址+端口号/文件的路径

                   <imgsrc="http://127.0.0.1/day07-3/path02/a.jpg"/>

 

         (2)第二种写法:直接写 /项目名称/文件路径

                   <imgsrc="/day07-3/path01/cc/c.jpg"/>

 

7. 重定向和转发

         7.1重定向

         (1)使用的是客户端路径

         (2)重定向请求两次,使用的是客户端路径,携带项目名称 ,比如/day07/demo3

 

         7.2转发

         (1)使用的是服务端路径

         (2)转发请求一次,使用的是服务器端路径,不需要携带项目名称 , 比如 /demo4

 

8. ServletConfig对象

8.0 创建ServletConfig对象

         (1)直接使用方法创建对象getServletConfig()

 

         8.1得到当前运行的servlet的名称

         (1)web.xml中<servlet-name>ConfigDemo1</servlet-name>

         (2)StringgetServletName()

 

         8.2创建servletContext对象

         (1)ServletContextgetServletContext()

         (2)一般都使用getServletContext()方法

 

9. ServletContext对象

         创建ServletContext对象

         (1)第一种方式,使用ServletConfig对象里面的方法getServletContext()

         (2)第二种方式,直接使用getServletContext()

 

         配置全局初始化参数

           <context-param>

                   <param-name>url</param-name>

                   <param-value>localhost</param-value>

           </context-param>

 

         在启动tomcat服务器时候,会为每个项目创建一个唯一的servletContext对象,在这个项目里面如果通过servlet1向servletContext里面设置一个值,在这个项目里面的其他的servlet里面可以的这个值

 

        

 

         获取初始化参数

                   //getServletConfig().getServletContext();

                   ServletContextcontext = getServletContext();

                   context.getInitParameter(name);

                   context.getInitParameterNames();

         域对象[重重点]

                   项目已启动,就创建一个ServletContext

                   context.setAttribute(Stringname,Object obj);

                   Objectobj = context.getAttribute(String name);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值