初遇servlet

初遇servlet

JavaWeb 简介

C/S 体系结构

​ C/S 是 Client/Server 的缩写,即 客户端/ 服务器结构。在这种结构中,服务器通常采用高性能的 PC 机或工作站,并采用大型数据库系统(如 Oracle 或SQL Server),客户端则需要安装专用的客户端软件。这种结构可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器,从而降低了系统的通信开销。

B/S 体系结构

​ B/S 是 Browser/Server 的缩写,即 浏览器/ 服务器结构。在这种结构中, 客户端不需要开发任何用户界面,而统一采用如 IE、Firefox、Chrome 等浏览器,通过 Web 浏览器向 Web 服务器发送请求,由 Web 服务器进行处理,并将处理结果逐级传回客户端。这种结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,从而节约了开发成本,是一种全新的软件体系结构。这种体系结构已经成为当今应用软件的首选体系结构。

Web 应用程序

​ Web 应用程序大体上可以分为两种,即静态网站和动态网站。静态页面的浏览,即静态网站。动态网站需要根据用户的请求动态生成页面信息。
Web 应用技术:
​ 客户端应用的技术:html、css、js。
​ 服务器端应用技术:jsp、servlet。

Tomcat

简介:

​ Tomcat 是一个符合 JavaEE WEB 标准的最小的 WEB 容器。Tomcat 是由 Apache 提供(www.apache.org)提供的可以用安装版和解压版,安装版可以在服务中出现一个 Tomcat 的服务,免安装没有,开发中使用免安装版。 Tomcat 简单的说就是一个运行 Java 的网络服务器, 底层是 Socket的一个程序,它也是 JSP 和 Servlet 的一个容器。Tomcat 技术先进、性能稳定,而且免费,属于轻量级应用服务器。

安装:

​ 运行 Tomcat 需要 JDK 的支持【Tomcat 会通过 JAVA_HOME 找到所需要的JDK】。 安装就是解压缩过程。启动 Tomcat,能访问则算安装好了。

tomcat结构目录:

1、bin:启动和关闭 tomcat 的 bat 文件
2、conf:配置文件 server.xml 该文件用于配置 server 相关的信息,比如tomcat 启动的端口号,配置主机(Host) web.xml 文件配置与 web 应用(web 应用相当于一个 web 站点)tomcat-user.xml 配置用户名密码和相关权限
3、lib:该目录放置运行 tomcat 运行需要的 jar包
4、logs:存放日志,当我们需要查看日志的时候,可以查询信息
5、webapps:放置我们的 web 应用
6、work 工作目录:该目录用于存放 jsp 被访问后生成对应的 server 文件和.class 文件

Eclipse 关联 Tomcat:

Window→preferences→Server→Runtime Environment→add→apache-tomcat-8.0.23

Http协议

超文本传输协议,应用层协议。

协议格式:

http : //ip或域名:端口/项目路径/资源路径?参数名=参数值

协议特点:

1、支持客户端/服务端模式
  2、简单快速
  3、灵活
  4、http/1.1后支持持续连接
  5、无状态

1)请求协议:

请求行:
    请求方式(GET/POST) 请求路径 协议版本
请求头:
   每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。
  
   GET请求没有请求正文,POST请求有

2)响应协议:

响应行(状态行):
    协议版本 响应状态码 状态码说明
响应头/消息报头:
    每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。
响应正文:

​ 浏览器中能看到内容

消息头:

请求头:
    referer
      该请求头指明请求从哪里来(上一个页面是谁)
      如果是直接从地址栏输入的地址,是没有referer请求头
      常用场景:百度竞价、统计工作和防盗链等
响应头:
    Refresh:
      自动跳转(单位是秒),可以在页面通过 meta 标签实现,也可在后台实现。

<meta http-equiv=”refresh” content=”3;url=http://www.baidu.com” >

第一个servlet

实现步骤:

1、新建项目
  1)、右侧空白,右键选择"New"
  2)、选择"Project",搜索"Web",选择"Dynamic Web Project"
  3)、设置项目名称及版本为2.5
  4)、选择"Next",再"Next",设置站点名Context root
  5)、选择"Finished"
2、新建普通Java类
3、实现Servlet规范,继承HttpServlet类

4、重写service()方法

public class ServletPractice extends HttpServlet{

	/**
	 * 服务方法,可执行多次,每次访问Servlet时都会调用
	 */
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		System.out.println("我收到了请求");
	}

	/**
	 * 销毁方法,Servlet实例销毁时调用,只会调用一次
	 */
	@Override
	public void destroy() {
		System.out.println("我被关闭了");
	}

	/**
	 * 初始化方法,服务器执行的方法,只会执行一次,Servlet第一次被访问时执行
	 */
	@SuppressWarnings("unused")
	@Override
	public void init(ServletConfig config) throws ServletException {
		//得到初始化参数的值
		String encod=config.getInitParameter("encod");	
	}	
}

5、配置web.xml (项目的WEB-INF目录下)

<servlet>
	<servlet-name>servlet02</servlet-name>
  	<servlet-class>com.shsxt.servletPractice.ServletPractice02</servlet-class>
</servlet>
<servlet-mapping>
  	<servlet-name>servlet02</servlet-name>
  	<url-pattern>/sp02</url-pattern>
</servlet-mapping>
注意:

​ 1、< servlet>中的< servlet-name>标签的值要唯一
  2、< servlet-mapping>中的< url-pattern>的值要唯一
  3、< servlet>中的< servlet-name>与< servlet-mapping>的< servlet-name>标签保持一致
  4、< url-pattern>的值前面要加"/"
  5、修改了配置文件必须要重启服务器才会生效
  6、一个Servlet可以配置多个访问路径
     通配符"*"
    只能放在最前面或最后面
    不能放中间且不能单独存在(以/分割的,不能和单词组成整体)。
     越精确越优先。
​ 7、发布项目并启动服务

​ 8、访问并查看结果

工作原理:

客户端发出请求 根据 web.xml 文件的配置,找到对应的 读取中的值 找到对应的 找到该 class 并加载执行该 class,返回结果 由 Web 服务器将结果响应给客户端。

Servlet 的生命周期:

​ Servlet 没有 main()方法,不能独立运行,它的运行完全由 Servlet 引擎来控制和调度。 所谓生命周期,指的是 servlet 容器何时创建 servlet 实例、何时调用其方法进行请求的处理、 何时并销毁其实例的整个过程。(此处讨论默认的生命周期)

1、实例和初始化时机

当请求到达容器时,容器查找该 servlet 对象是否存在,如果不存在,则会创建实例并 进行初始化。
  init 方法,初始化方法,服务器执行的方法,只会执行一次,Servlet第一次被访问时执行。

2、就绪/调用/服务阶段

有请求到达容器,容器调用 servlet 对象的 service()方法,处理请求的方法在整个声明周 期中可以被多次调用;HttpServlet 的 service()方法,会依据请求方式来调用 doGet()或者 doPost()方法。但是, 这两个 do 方法默认情况下,会抛出异常,需要子类去 override。
  service 方法,服务方法,可执行多次,每次访问servlet时都会调用。

3、销毁时机

当容器关闭时(应用程序停止时),会将程序中的 Servlet 实例进行销毁。

destroy 方法,Servlet 实例销毁时执行,只会执行一次。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值