servlet随笔

一、servlet配置

  

<!-- 向服务器注册servlet -->

  <servlet>
     <!-- servlet-name是给我们使用的,我们使用这个servlet-name对servlet进行配置! -->
        <servlet-name>AServlet</servlet-name>
      <!-- servlet-class指定全类名,给服务器使用,服务器使用这个全类名创建一个servlet实例【对象】 -->
       <servlet-class>com.neuedu.servlet.AServlet</servlet-class>
  </servlet>

  <!-- servlet-mapping做请求映射 -->
  <servlet-mapping>
     <servlet-name>AServlet</servlet-name>
   <!-- 请求映射是通过这个url-pattern来实现的! -->
     <url-pattern>/BServlet</url-pattern>
  </servlet-mapping>

注意点:
 1.<url-pattern>标签中指定的映射路径不必和<servlet-name>标签指定的内容保持一致!
 2.只有你浏览器地址栏中请求的url和我们这里<url-pattern>标签中的映射一致的时候,我们自定义的servlet类才会处理这个请求!

二、生命周期

   servlet是由tomcat服务器来管理的!
 
   servlet生命周期:是指servlet对象由产生到销毁的过程!
  
   servlet生命周期涉及的几个方法:
      1.构造器方法:只会在第一次访问这个servlet的时候调用一次,调用一次就说明servlet是单例的,但是servlet是多线程的,  非线程安全的,也就是说在servlet中我们尽量不要在service方法中操作全局变量!
  
      2.init方法:init方法只会在第一次访问servlet的时候调用一次,对servlet对象进行初始化操作!
  
      3.service:service方法会在每次访问这个servlet的时候都调用一次,而且我们的业务逻辑也是写在这个service方法!
  
      4.destroy方法::destroy方法只会在我们的项目卸载的时候调用一次,也就是说在服务器关闭的时候会在服务器关闭的时候调用一次!

三、servletConfig

   ServletConfig:是一个接口,一个ServletConfig对象只代表当前的servlet类的配置信息。

   1) represent:

 <servlet>
  <!-- servlet-name是给我们使用的,我们使用这个servlet-name对servlet进行配置! -->
     <servlet-name>AServlet</servlet-name>
  <!-- servlet-class指定全类名,给服务器使用,服务器使用这个全类名创建一个servlet实例【对象】 -->
     <servlet-class>com.neuedu.servlet.AServlet</servlet-class>
 </servlet>

   2).如何获取:
       由服务器创建,通过init方法的参数直接传递给我们,我们直接在init方法使用就可以了!

   3)功能:

    getServletName():获取当前servlet-name值,也就是获取servletname
       getInitParameter("password"):获取servlet的初始化参数!
       getServletContext():获取当前web应用!

四、ServletContext

   1 ) 代表:代表的是当前web应用,也就是指的web.xml文件中的信息!
 
   2)获取:通过ServletConfig对象的getServletContext()获取!
 
   3 ) 功能:
      1)getInitParameter:获取整个web应用的初始化参数,也就是如下:

        <context-param>
            <param-name>user</param-name>
            <param-value>lisi</param-value>
             </context-param>

      2)获取资源的真实路径:getRealPath()
           虚拟路径:http://localhost:8080/servlet-demo1/index.html   
           真实路径:E:\LHF teacher\marsworkspace\servlet-demo1\WebContent\index.html

五、MyGenericServlet

   1.定义一个抽象类实现servlet接口,保留service方法不去实现,其余方法都实现了!
   2.自定义抽象类子类,在web.xml文件中注册一下这个子类!

六、HttpServlet(现在一般使用这个)

  1)代表:代表浏览器向服务器发送的请求报文
     2 ) 获取:由tomcat服务器创建,然后做为参数传递给我们相对应的doGet或者doPost方法! 
       3 ) 功能:
        getParameter()获取请求参数
        getContextPath():获取当前项目名
        setAttribute/getAttribute:本身就是一个域对象!
        request.getRequestDispatcher("1.html").forward(request, response);可以实现转发功能!

七、HttpServletResponse

   1)代表:服务器响应给浏览器的响应报文
   2)获取:由服务器创建,然后做为参数传递给我们相对应的doGet或者doPost方法!
      3)功能:
       response.getWriter().println("<h3>hello world!</h3>");可以返回给浏览器一个页面或者一个页面片段!
       response.sendRedirect("/servlet1/1.html"); :可以做请求的重定向

八、转发和重定向

  转发:当浏览器向服务器发送请求的时候,服务器自己不处理,而是调用其它的web资源进行处理!
       重定向:当浏览器向服务器发送请求的时候,服务器返回给浏览器一个特殊的响应,这个特殊的响应告诉浏览器再向另一个地址发送一个请求

  

  转发和重定向的区别:

  发生在浏览器端还是服务器 浏览器的请求次数 浏览器地址栏是否发生变化 浏览器是否能够感知到
转发 发生在服务器端 1 不发生变化 感知不到
重定向 发生在浏览器端 2 发生变化 能感知到

九、路径问题:

   ①相对路径和绝对路径     绝对路径        相对路径

    ②常见的路径:    url-pattern:

            转发的路径:     > 这两个的绝对路径由服务器解析,相对于项目的根目录      http://主机地址:端口号/项目名/

             重定向的路径:    页面中的路径:     > 这两个路径有浏览器解析,相对于服务器的根目录      http://主机地址:端口号/

十、base标签

  base标签里面有一个href属性,这个属性允许我们用使用相对路径的方式使用绝对路径!
       我们再使用相对路径的时候,相对路径会以这个href属性值作为前缀!

时间: 2024-10-06 22:40:02

servlet随笔的相关文章

servlet技术学习随笔

进入这里学习的第二天!开始着手想看servlet,前面看到javabean jsp 跟这个servlet的MVC框架!真心觉得很重要,技术这种东西学会了就很懂!学不会再怎么解释都不明白.看了一整上午!没怎么搞明白!才想起来以前学习c#的土办法!各种去百度!起查……终于算是有点懂得了! (1).  PrintWriter out = response.getWriter();当一个Servlet响应的时候将响应信息通过out对象输出到网页上,当响应结束时它自动被关闭.PrintWriter用处是将

servlet和jsp学习指南(一)servlet

近期接触了些纯servlet与jsp的编程项目,顺便把<servlet和jsp学习指南>这本书拿出来看看,感悟良多.记下随笔,以便会议. 要编写一个servlet首先要实现Servlet或者继承HttpServlet package test.com.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet

我的第一个Servlet

学了一个学期JEE,明天就要考试了. 在3月份自己开始准备去努力的复习考研的高数还有英语等学科. 结果到现在才发现,虽说是考的计算机(本专业的)但是考研和技不可兼得. 想想自己没准备考研的时候的每天大部分时间都是在敲代码. 现在做一个简单的动态网站都有些不知如何下手. 但是,对于现在的我来说,并没有后悔,还好上课我认真听过. 代码都是一个一个敲出来的,熟能生巧. 因此,我不会后悔选择考研这条路.虽说不能把大量的时间用于喜欢的代码上,但是虽说都忘得差不多了,但是自己还是会从头学. --------

JavaWeb学习随笔

Servlet学习随笔 1.HttpServlet init(ServletConfig)------Servlet生命周期中的初始方法,默认情况是服务器创建后第一次访问这个Servlet时调用,可以修改配置信息,使其在服务器一创建时就被调用; 修改配置信息的方法-----在web.xml的<servlet>下添加<load-on-startup>x<load-on-startup>,x是正整数,越小表示优先级越高 url路径的配置,完全匹配>目录匹配>(.

java servlet上传centos服务器

前面一篇随笔说了Centos上架设javaWeb运行环境的方法,这篇主要讲打包上传服务器. 一.数据库连接文件.propeties 为了数据库安全,mysql3306端口访问我做了ip访问限制,由于mysql和网站都在一个服务器上,所以上传时我们将ip修改成-->localhost 二.webxml配置 这个截图主要说下webxml中标签的作用. webXml中主要的标签一共就三个---><servlet>  <servlet-mapping>    <welco

java-web——第六课 Servlet 控制器的引入

前言: 之前我们写的代码,可以以这样的流程图来解释 今天我们需要讲的就是不让 jsp 直接访问 javabean 而是加入一个新概念, setvlet 控制器, 也是对应了我们软件工程的 MVC 思想 如下图: 废话不多说,直接进入我们的正文: 正文: 首先我们先考虑我们的需求 需求很简单,就是显示一个表格以及其中的内容 接下来我会一步一步写出步骤来实现这次的需求 步骤一:建立一个 java web 项目 并且分好包,为待会写代码提供规范 步骤二:建立一个 实体类 实体类内容如下图: 步骤三:建

java servlet手机app访问接口(三)高德地图云存储及检索

这篇关于高德地图的随笔内容会多一点, 一.业务说明     对应APP业务中的成员有两类,一是服务人员,二是被服务人员,  主要实现功能, 对APP中的服务人员位置进行时时定位, 然后通过被服务人员登录APP时提供的一个经纬度来计算服务人员与被服务人员之间的距离 单位m. 下面是整个详细流程,从创建高德对应应用(这里注册我就不说了)------最后完成此功能. 二.创建servlet对应的高德地图应用,创建自己的云图数据库表 注册帐号后登录点击右上角的控制台,会出现下面这个界面,我截图 这里当然

ServletContext结合Servlet接口中的init()方法和destroy()方法的运用----网站计数器

我们一般知道Servlet接口中的init()方法在tomcat启动时调用,destroy()方法在tomcat关闭时调用.那么这两个方法到底在实际开发中有什么作用呢?这就是这个随笔主要讲的内容. 思路:网站计数器,如果想在服务器关闭时,保留以前的访问量,最简单的方式是把访问数据放在数据库中,但这样会增加服务器的压力.所以ServletContext结合Servlet接口中的init()方法和destroy()方法的一起使用便可以做一个网站计数器. 把数据写在一个.txt文件中,在init()方

Spring 中bean的scop 阅读随笔(记)

bean的scope scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,即容器在对象进入其相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象. Spring容器最初提供了两种bean的scope类型:singleton和prototype,但发布2.0之后,又引入了另外三种scope类型,即request.session和global session类型.不过这三种类型有所限制,只能在Web应用中使用.也就是说,只有在