• javaweb回顾第一篇servlet的学习和理解


        前言:关于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个方法的作用说完了现在看下代码

     1 public class HelloWorldServlet implements Servlet{
     2 
     3     private ServletConfig servletConfig;
     4     //private ServletInfo
     5     public void init(ServletConfig config) throws ServletException {
     6         this.servletConfig=config;
     7     }
     8 
     9     public ServletConfig getServletConfig() {
    10         return servletConfig;
    11     }
    12 
    13     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    14         String initReleName=this.servletConfig.getInitParameter("realName");
    15         String servletName=this.servletConfig.getServletName();
    16         String username=req.getParameter("username");
    17         
    18         res.setContentType("text/html;charset=gb2312");//避免中文乱码
    19         //得到PrintWriter对象,
    20         PrintWriter out=res.getWriter();
    21         //向客户端发送数据
    22         out.println("Hello World " +username+"<br/>");
    23         out.println("servlet名称:"+servletName+"<br/>");
    24         out.println("内联的真实名称:"+initReleName+"<br/>");
    25         //关闭流
    26         out.close();        
    27     }
    28 
    29     /**
    30      *用于返回Servlet的描述信息,这些信息可以是Servlet的作者,版本、版权信息等
    31      */
    32     public String getServletInfo() {
    33         String str    ="zhangsan";
    34         return str;
    35     }
    36 
    37     public void destroy() {
    38         // TODO Auto-generated method stub
    39     }
    40 }
    View Code

    我们在来配置一个web.xml

     1 <!DOCTYPE web-app PUBLIC
     2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
     4 <web-app>
     5     <display-name>myservlet</display-name>
     6     <description>这是我的第一个servlet</description>
     7     <servlet>
     8         <servlet-name>HelloWorldServlet</servlet-name>
     9         <servlet-class>com.lp.servlet.HelloWorldServlet</servlet-class>
    10         <init-param>
    11             <param-name>realName</param-name>
    12             <param-value>张三</param-value>
    13         </init-param>
    14     </servlet>
    15     <servlet-mapping>
    16         <servlet-name>HelloWorldServlet</servlet-name>
    17         <url-pattern>/helloworld</url-pattern>
    18     </servlet-mapping>
    19 </web-app>
    web.xml

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

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

    2:Servlet的生命周期

    我用一幅图来表示

  • 相关阅读:
    ASP.NET MVC 以Stream 下载文件
    ITextSharp 初次接触
    Easyui中tree组件实现搜索定位功能及展开节点定位
    lodop 打印控件的使用
    XML IList<T> TO DataSet TO DataTable 相互转换
    JSONToObejct 问题 part 1
    可以动态添加图片的轮播插件
    防止机器注册
    sqlServer 取每组的前几条数据
    log4net 动态设定日志文件名
  • 原文地址:https://www.cnblogs.com/LipeiNet/p/5662014.html
Copyright © 2020-2023  润新知