Servlet && tomcat

 

开发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容易造成线程并发,使程序崩溃

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值