苦尽甘来 一个月学通JavaWeb(十五 Servlet)

夜光序言:

不管是人还是妖怪,只要心灵想通就没有区别,孤单一人会感到寂寞,最初的一步会害怕,都是如此~~

 

 

 

正文:积水成河~~厚积薄发

Servlet概述

生命周期方法:

  1. void init(ServletConfig):出生之后(1次);
  2. void service(ServletRequest request, ServletResponse response):每次处理请求时都会被调用;
  3. void destroy():临死之前(1次);

 

特性:

  1. 单例,一个类只有一个对象;当然可能存在多个Servlet类~
  2. 线程不案例的,所以它的效率是高的~

 

Servlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。

 

 

1 什么是Servlet

Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:

  1. 接收请求数据;
  2. 处理请求;
  3. 完成响应。

  例如客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己来编写,每个Servlet必须实现javax.servlet.Servlet接口。

 

2 实现Servlet的方式(由我们自己来写~~)

实现Servlet有三种方式:

  1. 实现javax.servlet.Servlet接口;
  2. 继承javax.servlet.GenericServlet类;
  3. 继承javax.servlet.http.HttpServlet类;

  通常我们会去继承HttpServlet类来完成我们的Servlet,但学习Servlet还要从javax.servlet.Servlet接口开始学习。

Servlet.java

public interface Servlet {
    public void init(ServletConfig config) throws ServletException;
    public ServletConfig getServletConfig();
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException;
    public String getServletInfo();
    public void destroy();
}

3 创建helloservlet应用

我们开始第一个Servlet应用吧!首先在webapps目录下创建helloservlet目录,它就是我们的应用目录了,然后在helloservlet目录中创建准备JavaWeb应用所需内容:

  1. 创建/helloservlet/WEB-INF目录;
  2. 创建/helloservlet/WEB-INF/classes目录;
  3. 创建/helloservlet/WEB-INF/lib目录;
  4. 创建/helloservlet/WEB-INF/web.xml文件;

 

接下来我们开始准备完成Servlet,完成Servlet需要分为两步:

  1. 编写Servlet类;
  2. 在web.xml文件中配置Servlet;

 

HelloServlet.java

public class HelloServlet implements Servlet {
	public void init(ServletConfig config) throws ServletException {}
	public ServletConfig getServletConfig() {return null;}
	public void destroy() {}
	public String getServletInfo() {return null;}

	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		System.out.println("Genius:hello servlet~~");
	}
}

我们暂时忽略Servlet中其他四个方法,只关心service()方法,因为它是用来处理请求的方法。我们在该方法内给出一条输出语句!

 

web.xml(下面内容需要背下来)

<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>cn.Genius.servlet.HelloServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/helloworld</url-pattern>
	</servlet-mapping>  

在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起,上面配置是把访问路径:“/helloworld”与“cn.itcast.servlet.HelloServlet”绑定到一起。

  1. <servlet>:指定HelloServlet这个Servlet的名称为hello;
  2. <servlet-mapping>:指定/helloworld访问路径所以访问的Servlet名为hello。

<servlet>和<servlet-mapping>通过<servlet-name>这个元素关联在一起了~~

接下来,我们编译HelloServlet,注意,编译HelloServlet时需要导入servlet-api.jar,因为Servlet.class等类都在servlet-api.jar中。

javac -classpath F:/tomcat6/lib/servlet-api.jar -d . HelloServlet.java

然后把HelloServlet.class放到/helloworld/WEB-INF/classes/目录下,然后启动Tomcat,在浏览器中访问:http://localhost:8080/helloservlet/helloworld即可在控制台上看到输出~~~

/helloservlet/WEB-INF/classes/cn/itcast/servlet/HelloServlet.class;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值