Java Webday3

1.Servlet的概述

Servet是使用Java语言编写的运行在服务器端的程序。狭义的Serlet是指Java语言实现的一个接口,广义的Serlet是指任何实现了这个Servlet接口的类,一般情况下, 人们将Servet理解为后者。Servilet 主要用于处理客户端传来的HTTP请求,并返回一个响应,它能够处理的请求有doGet()和doPost()等方法。

Servlet由Servlet容器提供,所谓的Servlet容器是指提供了Servlet 功能的服务器(本书中指Tomcat), Servlet 容器将Servlet动态地加载到服务器上。与HTTP协议相关的Servlet使用HTTP请求和HTTP响应与客户端进行交互。因此,Servlet容器支持所有HTTP协议的请求和HTTP响应与客服端进行交互。因此,Servlet容器支持所有HTTP协议的请求和响应。 Servlet应用程序的体现结构如图
在这里插入图片描述
在图中,Servlet的请求首先会被HTTP服务器(如Apache)接收,HTTP服务器只负责静态HTML页面的解析,对于Servlet的请求转交给Servlet容器,Servlet容器会根据web.xml文件中的映射关系,调用相应的Servlet,Servlet将处理的结果返回给Servlet容器,并通过HTTP服务器将响应传输给客户端。

Servlet技术具有如下特点。
●方便: Servlet提供了大量的实用工具例程,如处理很难完成的HTML表单数据、读取和设置HTTP头,以及处理Cookie和跟踪会话等。
●跨平台: Servlet用Java类编写,可以在不同操作系统平台和不同应用服务器平台下运行。●灵活性和可扩展性:采用Servlet开发的Web应用程序,由于Java类的继承性及构造函数等特点,使得应用灵活,可随意扩展。
除了,上述几点外,Servlet 还具有功能强大、能够在各个程序之间共享数据、安全性强等特点,此处就不再详细说明,读者作为了解即可。

2.使用Eclipse工具开发Servlet

1.新建Web项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于Eclipse工具在创建Servlet时会将Servlet的相关配置文件添加到web.xml中,因此打开web.xml文件,可以看到TestServlet01的虚拟映射路径已经自动进行配置,如图:
在这里插入图片描述

3.部署和访问Servlet

在这里插入图片描述
在这里插入图片描述
接下来,在浏览器中输入地址“http://locatlhost:9999/HttpServlet/luo.xml”

4 Servlet的多重映射

4.1 Servlet映射路径中使用通配符
在实际开发过程中,开发者有时候会希望某个目录下的所有路径都可以访问同一个Servlet,这时,可以在Servlet映射的路径中使用通配符“米”。 通配符的格式有两种,具体如下。

(1)格式为“.扩展名”,例如“.do" 匹配以".do"结尾的所有URL地址。

(2)格式为“/”, 例如“/abc/" 匹配以“/abc" 开始的所有URL地址。

需要注意的是,这两种通配符的格式不能混合使用,例如,/abc/*.do 就是不合法的映射路径。另外,当客户端访问一个Servlet 时,如果请求的URL地址能够匹配多个虚拟路径,那么Tomcat将采取最具体匹配原则查找与请求URL最接近的虚拟映射路径。例如,对于如下所示的-些映射关系:

/abc/* 映射到Servlet1

/* 映射到Servlet2

/abc 映射到Servlet3

*.d0 映射到Servlet4

将发生如下一些行为:

当请求 URL为“/abc/a.html” “/abc/” 和“/” 都可以匹配这个URL, Tomcat会调用Servlet1

当请求URL为“/abc”"/abc/“和“/abc"都可以匹配这个URL, Tomcat会调用Servlet3当请求URL为“/abc/a.do” “.do" 和“/abc/*" 都可以匹配这个URL, Tomcat会调用Servlet1

当请求URL为“/a.do"“/“和“.do"都可以匹配这个URL, Tomcat会调用Servlet2当请求URL为“xxxyy/.do””“.do”和“/”都可以匹配这个URL,Tomcat 会调用Servlet2

ServletConfig和ServletContext接口

ServletConfig接口
什么是ServletConfig: 它是servlet的配置对象,作用就是获取与servlet的初始化参数。
它的子类是GenericServlet和HttpServlet.
它被实列化是通过web服务器实现的。
Servletonfig接口的常用方法
在这里插入图片描述
获到servletContext对象:getServletContext()
获取servlet的名称:getServletName():对应web.xml里面testservlet
初始化参数的配置:web.xml文件中

<servlet-class>cn.itcat.servlet.TestServlet</servlet-class>
  <init-param>
  	<param-name>encoding</param-name>
  	<param-value>utf-8</param-value>
  </init-param>
  <init-param>

在这里插入图片描述

public class TestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		PrintWriter out = response.getWriter();
		ServletConfig config=this.getServletConfig();
		String value= config.getInitParameter("encoding");
		System.out.println("encoding"+value);
		out.println("encodig="+value);

在这里插入图片描述
ServletContext接口
ServletContext对象是在web服务器启动时就创建了,是web服务器创建的servletContext对象,
每一个web项目只有一个ServletContext对象。
ServletContext对象的作用:获取web应用程序的初始化参数,在web应用程序能共享数据,获取web项目下的资源文件。
得到ServletContext对象:
1.通过ServletConfig对象: config.getServletContext()
2.直接得到: getServletContext();

 	<param-name>username</param-name>
  	<param-value>admin</param-value>
  </init-param>
  <init-param>
  	<param-name>ip</param-name>
  	<param-value>192.168.1.1</param-value>
  </init-param>
  </servlet>
  <servlet-mapping>
  <servlet-name>baizhenchuan</servlet-name>
  <url-pattern>/TestServlet</url-pattern>
  </servlet-mapping>
   <servlet>

在这里插入图片描述
2020080605044

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bai3322732541

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值