Servlet基础

1.servlet配置 

<servlet>

       <servlet-name>随意</servlet-name>

      <servlet-class>包名+类名</servlet-class>

</servlet>

 

<servlet-mapping>

     <servlet-name>与上同名</servlet-name>

     <url-pattern>/想访问的地址</url-pattern>

</servlet-mapping>

可以有多个mapping。

2. javax.servlet.http
  class HttpServlet:

 void

service(ServletRequest req, ServletResponse res)
          Dispatches client requests to the protected service method.

Tomcat调用这个方法把客户端请求分发到受保护的service方法。从接口Servlet中来的,HttpServlet实现了该接口。

protected  void

service(HttpServletRequest req, HttpServletResponse resp)
          Receives standard HTTP requests from the public service method and dispatches them to the doXXX methods defined in this class.

该方法从上述service方法接受http请求,然后再调用doXXX()方法去处理

从上述可以看出,我们可以重写受保护的service方法来处理请求,但是一般不这样做,一般还是重写doGet()或者doPost()方法。

另外:

/:在html中,代表域名的访问路径;而在web.xml中,代表webapp。这点要注意。

 

3.servlet生命周期

从始至终,servlet只有一个对象。具体如下:

加载(classLoader)--->实例化(new)--->初始化(init())---->处理请求(公共的service()方法---受保护的service()方法---doGet()/doPost())--->退退出服务(destroy())。

new:客户端第一次访问时;

init():只调用一次;

处理请求:基于线程池。

destroy():webapp退出、加载、类文件变化等。

3.GenericServlet类中有两个init()方法

ServletConfig:代表的是servlet的配置信息。该对象是Tomcat从配置文件中读取包装成一对象得到的。

voidinit(ServletConfig config)
          Called by the servlet container to indicate to a servlet that the servlet is being placed into service.

 void

init()
          A convenience method which can be overridden so that there's no need to call super.init(config).

 

原因:若程序员要重写带参数的init()方法,但是忘记调用super.int(config)方法,则this.getServletConfig()将为null,所以为了解决这个问题,该类提供了一个不带参数的init()方法,即重写该方法即可。

<servlet>
    <servlet-name>TestLife</servlet-name>
    <servlet-class>包名.类名</servlet-class>
    <init-param>
    	<param-name>参数名</param-name>
    	<param-value>参数值</param-value>
    </init-param>
	<init-param>
    	<param-name>参数名</param-name>
    	<param-value>参数值</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>TestLife</servlet-name>
    <url-pattern>/TestLife</url-pattern>
  </servlet-mapping>

 

servlet中读取初始化参数:

读取所有的:

Enumeration  em=this.getInitParameterNames();     获取所有参数名
			while(em.hasMoreElements()){
				//取出参数名字
				String name=(String)em.nextElement();
				//取出参数名称对应的参数值
				String value=this.getServletConfig().getInitParameter(name);
				//打印出结果
				System.out.println(value);
				   
			}


4.从页面取参数

 request.getParameter(参数名) :一个参数名对应一个参数值;

 request.getParameterValues(参数名):一个参数名对应多个值;

 request.getParameterNames():获取页面所有的参数名字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值