Servlet && tomcat

来源:互联网 发布:淘宝卖家怎样添加客服 编辑:程序博客网 时间:2024/05/17 07:00

 

开发servlet有三种方法:

1.实现servlet 接口

2.继承GenericServet  (了解即可)

3.继承HttpServlet

 

servlet 不能独立运行,它运行完全由servlet引擎来控制和调度

 

面试题:请简述servlet的生命周期(工作流程)

      其生命周期全过程:加载(Classloader);实例化(new);初始化(init(ServletConfig));处理请求(doget  dopost);退出服务( destroy() 只会new一个对象,以后再调用也不会new )

      a》当servlet第一次被调用的时候,会触发init函数,该函数会把servlet实例装载到内存。init函数只会被调用一次。

      b》然后去调用 servlet 的service函数

      c》当第二次后访问该servlet就直接调用serivice 函数

      d》当web 应用reload 或者是关闭 tomcat 或者关机 都会调用 destory 函数,该函数应付去销毁servlet.

为什么需要web服务器/web究竟是干什么的??下面正在解答、、、、、

 

 在DOS窗口下,netstat -anb来查看端口使用

 Servlet 的单例问题:

当servlet 被第一次访问后,就被加载到内存,以后该实例对各个请求服务,即就是一个单例

 .

1.实现servlet 接口

package heng.java.servlet;import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class MyfirstServlet implements Servlet {@Override//销毁该servlet,从内存中清除,该函数被调用一次。public void destroy() {}@Override//得到servletConfig对象public ServletConfig getServletConfig() {return null;}@Override//该函数时得到servlet配置信息。public String getServletInfo() {return null;}@Override//该函数用于初始化servlet,就是把该servlet装载到内存中,该函数只会被调用一次public void init(ServletConfig arg0) throws ServletException {}@Override//该函数是服务函数,我们的业务逻辑代码就是写在这里。该函数每次都会被调用public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {System.out.println("helloworld21656"+new java.util.Date());res.getWriter().println("helloworld "+new java.util.Date());}}


 

 doGet 和doPost 的区别:

 

 

 

 

 

 

 

tomcat 环境变量配置

方法一:

 

方法二:

在tomcat 文件中修改启动文件(startu.bat) 在此文件中第二十五行添加 set JAVA_HOME= C:\Program Files (x86)\Java\jdk1.6.0_10

Tomcat 目录层次结构:

 

 

bin:启动和关闭tomcat的bat文件

conf:配置文件

       server.xml:该文件用于配置和server相关的信息。比如tomcat启动端口后,配置Host,配置Context既web应用

       web.xml:该文件配置与web应用(web应用就相当于是一个web站点)

       tomcat-users.xml:该文件用户配置tomcat的用户密码和权限

lib: 该目录放置运行tomcat运行需要的jar包

logs:该目录存放日志,当我们需要去查看日志的时候,很有用!当我们启动tomcat错误时候,可以查询信息。

webapps:该目录下,放置我们的web应用(web站点)比如:建立web1目录,下面放置各种文件。。。则web1就被当做一个web应用管理起来(tomcat6.0 以后支持)

work:工作目录。该目录用于存放jsp被访问生成的对应的server文件和class文件。

 

 

 

 

 

 

在对servlet 进行映射的时候,可以使用通配符合有两种格式:

第一种格式:*扩展名  比如 *.do  *.sdfsdfsdf

第二种格式:以/ 开头  同时以/* 结尾    比如:/*     /sdfsd/*

第三种:/       这是说此servlet是缺省的servlet,那么该servlet就只处理别的servlet都不处理的请求

在匹配的时候,要参考的标准:

(1)看谁的匹配度高,谁就被摆选择

 (2)*. do 的优先级最低。

 

Servlet 的启动配置:

<servlet>    <servlet-name>MyServlet</servlet-name>    <servlet-class>com.heng.servlet.MyServlet</servlet-class>    <load-on-startup>1</load-on-startup>  </servlet>

这样,在tomcat启动时,servlet 对应的应用就初始化了,并创建了实例。。。。。不然只有当访问到该应用时才会初始化servlet,创建实例。

 

注意:static 修饰的属性,当类加载时就会被调用,从而写到内存里。。。所以static的必定是共享的,so容易造成线程并发,使程序崩溃

原创粉丝点击