前言:关于servlet相信学过java的都不会陌生,我最近又把这些基础知识整理一遍,便于自已能更好的理解ssm或者ssh,下面开始

1:Servlet接口

servlet有5个方法下面分别简单的介绍每个方法的作用

1.1:public void init(ServletConfig config)

在servlet被实例化以后,servlet容器会调用init方法来初始化该对象,这个方法主要是完成在请求前的一些初始化工作,比喻调用数据库连接,实例化对象等

1.2:public void service(ServletRequest req, ServletResponse res)

这个方法是一个核心的方法,我们主要的操作就在这个方法中进行,在收到客户端请求以后然后进行业务的处理,把处理的信息响应给客户端

1.3:public void destroy()

这个方法是当servlet实例被移除的时候会调用,释放servlet中的资源,比喻关闭数据库连接等可以理解为析构函数

1.4:public String getServletInfo()

这个方法主要是用于返回Servlet的描述信息,这些信息可以是Servlet的作者,版本、版权信息等

1.5:public ServletConfig getServletConfig()

主要返回容器调用init以后传给servlet对象的ServletConfig对象

5个方法的作用说完了现在看下代码

 public class HelloWorldServlet implements Servlet{

     private ServletConfig servletConfig;
//private ServletInfo
public void init(ServletConfig config) throws ServletException {
this.servletConfig=config;
} public ServletConfig getServletConfig() {
return servletConfig;
} public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
String initReleName=this.servletConfig.getInitParameter("realName");
String servletName=this.servletConfig.getServletName();
String username=req.getParameter("username"); res.setContentType("text/html;charset=gb2312");//避免中文乱码
//得到PrintWriter对象,
PrintWriter out=res.getWriter();
//向客户端发送数据
out.println("Hello World " +username+"<br/>");
out.println("servlet名称:"+servletName+"<br/>");
out.println("内联的真实名称:"+initReleName+"<br/>");
//关闭流
out.close();
} /**
*用于返回Servlet的描述信息,这些信息可以是Servlet的作者,版本、版权信息等
*/
public String getServletInfo() {
String str ="zhangsan";
return str;
} public void destroy() {
// TODO Auto-generated method stub
}
}

我们在来配置一个web.xml

 <!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>myservlet</display-name>
<description>这是我的第一个servlet</description>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.lp.servlet.HelloWorldServlet</servlet-class>
<init-param>
<param-name>realName</param-name>
<param-value>张三</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>

web.xml

注释1:xml中的Servlet第一个表示Servlet-name表示名称,为了和后面servlet-mapping中的Servlet-name进行关联,然后在影射的时候就可以找到需要的Servlet类了

在浏览器中输入http://localhost:8080/servlet-test/helloworld?username=lp然后我们可以看到效果

2:Servlet的生命周期

我用一幅图来表示

javaweb回顾第一篇servlet的学习和理解的更多相关文章

  1. Java并发包下锁学习第一篇:介绍及学习安排

    Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...

  2. javaweb回顾第九篇EL表达式

    前言:关于EL表示式开发用的非常多,现在我们回顾一下关于如果去操作EL表达式 1:EL表达式语法 所有EL表达式都是由{开始}结束,表达式中用.和[]操作符来访问数据比喻${user.userName ...

  3. javaweb回顾第二篇tomcat和web程序部署

    前言这篇主要说下关于tomcat中一些属性和web程序的简单部署,可能在实际开发有更好的部署方式,但是这也是一个基础. 1:tomcat 关于tomcat估计只要接触java的人都听过这个名字,那我们 ...

  4. 第一篇,java学习之旅

    在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import j ...

  5. 第一篇-Git基础学习

    学习网址: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758410 ...

  6. LARK BOARD开发板试用第一篇-上电测试学习

    1. 先看下板子外观,做工很不错 2. 主芯片的型号是,SoC 为 Cyclone V SX 系列的 5CSXFC6D6F31,不仅在芯片中包含传统的 FPGA 架构,还集成了基于 ARM Corte ...

  7. javaWeb技术第一篇之HTML

    <!-- 当前是最简的html --> <html> <!-- 告诉浏览器当前是一个html文档 最外面的标签. --> <head> <!--h ...

  8. 我的第一篇博客-学习书写markdown

    Markdown学习(标题:井号+空格+标题名字 回车 ) 标题: 二级标题## 空格+名字 三级标题### 空格+名字 四级标题#### 空格+名字 五级标题##### 空格+名字 六级标题#### ...

  9. itop-4412开发板使用第一篇-信号量的学习使用

    1. 本次基于itop-4412研究下Linux信号量的使用方法. 2. 创建信号量的函数,信号量的头文件在那个路径?编译应用程序的话,头文件有3个路径,内核源码头文件,交叉编译器头文件,ubuntu ...

随机推荐

  1. ubuntu搭建nfs网络文件系统

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  2. vagrant 安装使用 win7

    第一步.安装VirtualBox和vagrant 下载地址: https://www.virtualbox.org/wiki/Downloads http://downloads.vagrantup. ...

  3. flash builder4.7bug

    flash builder4.7项目,swc中的button实例出来有bug,解决办法: 1,把button都改成movieclip. 2,改用swf做资源.

  4. dom相关指令

    1.ng-show  和 ng-hide 当ng-show=''true''的时候 dom会显示,反之隐藏,通过控制display属性 2.ng-if 当ng-if=“true” 的时候,dom显示, ...

  5. c++实战吐槽(我还是太年轻了)

    习惯了用java, 现在切换到c++遇到了一些很滑稽的问题, 特此记录. 一. 使用了野指针 都知道不能使用野指针, 指针定义后,要初始化为null, 我在项目里面默认构造函数里面确实初始化为null ...

  6. qt显示视频

    针对qt4的(视频格式为rgb32)     v4l_grab_movie(&v4l_dev);   unsigned char *pBuffer= v4l_dev.buffer;   QIm ...

  7. StyleCop源码分析

    前言: 由于最近在进行项目配置,配置内容:根据一个结构体,一一对应地配置xml文件(两个) 写一个和此结构体对应的类(只包含属性,字段).反复配置后,觉得太繁琐,因此想到使用程序完成自动配置,网上搜索 ...

  8. Tomcat部署方式

    tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/he ...

  9. FME之于规划CAD数据质量检测

    最近琢磨规划CAD数据转换入库GIS方面的技术问题,看过一些前辈的文章/文献,对于使用FME WorkBench方面,有了一些了解,往往直接转换数据丢失比较严重,而且GIS对图形属性和空间拓扑比较严格 ...

  10. onSaveInstanceState & onRestoreInstanceState

    一.onSaveInstanceState Called to retrieve per-instance state from an activity before being killed so ...