Servlet概述、Servlet继承关系、Servlet调用过程

Servlet概述

什么是Servlet?
Servlet:Server Applet,服务器端的Java程序,是由SUN公司提供的一门动态Web资源开发技术

Servlet本质上其实就是一段Java程序。和之前的Java程序不同的,Servlet程序是无法独立运行的,必须将Servlet程序放在服务器中,由服务器调用才可以执行!


静态Web资源:任何人在任何条件下访问同一个网页,看到的都是相同的效果,这样的网页叫做静态Web资源。(比如百度首页、tmooc首页)

动态Web资源:在不同的访问条件下,访问同一个网页,看到的是不同的效果,这样的网页叫做动态Web资源。(商城的购物车页面、订单页面等)


运行在服务器端的Servlet程序,其作用是什么?
在这里插入图片描述
总结:运行在服务器端的Servlet程序的作用是:在服务器将请求接收过来后,对请求进行处理,即处理请求

使用Eclipse创建Servlet

通过Eclipse创建Servlet,默认继承HttpServlet。由于HttpServlet也是Servlet接口的子类,让HelloServlet继承HttpServlet,相当于间接实现了Servlet接口。

继承HttpServlet类,默认会覆盖doGet方法和doPost方法,两个方法的作用为:

  • doGet方法:当浏览器发送请求的方式为GET提交时, 将会调用doGet方法来处理请求

  • doPost方法:当浏览器发送请求的方式为POST提交时, 将会调用doPost方法来处理请求
    提示:如果当GET提交和POST提交处理代码相同时,可以将代码写在其中一个方法里(例如写在doGet中),并在另外一个方法(例如doPost)中调这个方法。这样一来,不管是GET提交还是POST提交,最终doGet方法都会执行,都会对请求进行处理!!
    创建好的servlet完整版的程序如下:

package com.tedu;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
		/*当浏览器发送请求访问Servlet,请求方式为GET提交,服务器将会调用doGet方法处理这次请求
		 * 
		 */
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//对请求进行处理
		//如果输出中文,加上下面的代码
		response.setContentType("text/html;charset=utf-8");
		//通过response获取一个输出流(向浏览器发送数据)
		PrintWriter out=response.getWriter();
		out.write("hello world");
	}
	
	/*当浏览器发送请求访问Servlet,请求方式为post提交,服务器将会调用doPost方法处理这次请求
	 * 
	 */


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

其中解决的中文乱码的问题及优化
Servlet在web.xml中的配置
在通过Eclipse创建Servlet时,会自动在web.xml文件中进行Servlet相关信息的配置

(注意:如果是复制Servlet类文件,但配置信息不会跟着复制,需要自己手动添加配置,否则复制的Servlet将无法访问!)

<servlet-name>HelloServlet</servlet-name>

<servlet-class>com.tedu.HelloServlet</servlet-class>
<servlet-name>HelloServlet</servlet-name>

<url-pattern>/HelloServlet</url-pattern>
关于上面的配置信息:

a) Eclipse每创建一个Servlet, 就会在web.xml文件中添加两个标签:和标签(可以将这两个标签看成一个组的标签)

b) 和标签内都会有一个标签,标签的内容可以更改,但要求更改后的这两个标签的内容也必须一致。

c) 标签用于配置Servlet类的全路径名(即包名+类名)

需要注意:如果在创建Servlet后修改了Servlet类的名称,这个地方也要一起更改,否则将会出现"ClassNotFoundException" 即类找不到异常

d) 标签用于配置浏览器以什么路径访问当前Servlet(即Servlet对外访问的路径),默认的路径是:/类名

例如:上面为HelloServlet配置的为 /HelloServlet,因此我们在浏览器中的访问路径则为:

http://主机名/web项目访问路径/HelloServlet

Eclipse如何发布一个Web应用
当通过eclipse将day09项目发布到服务器中,是直接将day09拷贝到服务器中对应的目录下吗?

发布的过程如下:
在这里插入图片描述
Servlet继承关系
在这里插入图片描述
Servlet调用过程
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值