Servlet相关介绍

一、什么是servlet

        Java Servlet 是运行在Web服务器或应用服务器上的程序,使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其它源的记录,还可以动态创建网页。

        web服务器只能处理静态的资源,不能处理动态的页面,所以需要扩展其功能,因此使用servlet就能扩展其功能,web服务器收到请求后,如果需要计算,则调用servlet进行处理。

二、Servlet快速入门

        1、写一个Java类实现Servlet接口,或者继承HttpServlet

        2、重写service方法

        3、编译

        4、打包

        5、部署

        6、启动容器,访问Servlet

public class HelloServlet extends HttpServlet {
    /**
     * 处理请求的方法 容器接收对应的请求后会自动调用
     * @param req  容器将请求中携带的数据进行分析,然后将数据封装到request对象中,同时跟响应对象一起传递到方法中
     * @param resp  程序员将最终数据处理的结果封装 到response对象中 响应给浏览器
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        /**
         * 设置响应头,声明服务器响应数据的格式
         */
        resp.setContentType("text/html;charset=utf-8");

        //获取输出流 将数据写出到浏览器
        PrintWriter writer = resp.getWriter();
        writer.print("<h1>hello servlet</h1>");
        //关闭流  关闭流之前,会将响应流中的数据发动给浏览器
        writer.close();
    }
}

配置web.xml文件

<servlet>
        <!--设置servlet的别名-->
        <servlet-name>helloServlet</servlet-name>
        <!--处理请求的实体类-->
        <servlet-class>cn.kgc.servlet.HelloServlet</servlet-class>
</servlet>
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <!--拦截请求的路径-->
        <url-pattern>/hello.do</url-pattern>
    </servlet-mapping>

三、Servlet处理请求过程

URL:http://localhost:8080/hello.do

step1:根据ip和端口号建立连接

step2:浏览器端通信模块打包数据

step3:发送数据到服务器

step4: 服务器通信模块解析数据

step5:容器创建request和response对象,然后将解析后的数据存放到request对象中

step6: 根据请求路径,寻找相关的servlet类创建对象,

step7:调用其service方法,将step5创建的对象作为参数传入

step8:获取service方法处理后的结果,并打包响应回浏览器

step9:浏览器的通信模块解析响应数据

step10:展示数据

四、Servlet生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 初始化后调用 init () 方法。只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用

  • Servlet 调用 service() 方法来处理客户端的请求。service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

  • Servlet 销毁前调用 destroy() 方法。destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。

  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的

五、Servlet客户端HTTP请求

HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

三个基本原则

1.基于请求响应模型

2.一次请求对应一次响应

3.请求必须是客户端发出,服务端只能被动的等待请求,然后做出回应

HTTP请求格式

1.请求行(请求方式 请求资源路径 协议和版本)

2.消息头

3.请求实体内容

如果请求的方式是get请求,那么请求的实体内容为空,只有请求方式是post请求时,实体内容才有数据

六、Servlet服务器HTTP响应

1.状态行

2.响应头

3.响应实体内容

七、AJAX技术

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面

1.发送ajax请求的方式一

$.ajax({
		   	url:'',						//请求地址
		   	data:{'username':username}, //请求参数
		   	dataType:'json',  			//返回数据的格式
		   	type: 'post', 				//请求方式  
		   	async:true,   				//是否开启异步请求
		   	success:function(date){
		   	  //请求成功回调
		   	},
		   	error:function(){
               //请求失败回调 
		   	}	
	   })

2、发送ajax请求的方式二

$.get(url,[data],[callback],[type]);
// url:要发送请求的URL地址  
// data:可选参数,要发送到服务器的数据
// callback:可选参数,请求成功后的回调函数
// type:可选参数,要返回的数据类型,默认为智能判断,可以设置为"json"、"xml"等

3、发送ajax请求的方式三

$.post(url,[data],[callback],[type]);
// 与方式二中的各个参数相同只是请求方式不同

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值