【DRP学习总结】——初探servlet

 前言

    servlet在赛迪网校视频中就已经学过了,但是总感觉它很深,大部分都听懂。经过几个月了,通过DRP视频,发现servlet并没有自己想得那么难,可能是因为这个老师讲得太好了吧。


 servlet是什么

 

      登陆网页的时候,我们一般会用JavaScript判断用户和密码是否为空、输入的数据是否符合要求等等,当我们的用户名和密码通过JavaScript验证后,http协议就会把用户名和密码这些数据打包传输到服务器中,服务器则会通过servlet解析http协议。这些数据通过解析之后,服务器就会得到用户名和密码,这个时候这些数据就可以通过服务器会再进行验证,如用户名和密码是否合理的判断。在服务器判断通过之后,再到数据判断。

  

     说了那么多,servlet到底是什么呢?java servlet的web或应用程序服务器,并作为请求来自web浏览器或其他http客户端和http服务器上的数据库或应用程序之间的中间层上运行的程序。使用servlet,我们可以获得网页上用户的输入,通过网页形式,现在从数据库或调用其他数据,从而创建动态网页。servlet可以在Tomcat、Resin、Apache和IIS服务器上运行,而管理servlet的服务器成为servlet容器,所以有时候我们也把这些服务器成为容器。servlet有两种发送方式,get和post,如果用get提交就用get接收,如果用post提交就用post接收,servlet的传送方式是相对应的。

     

     总结以上

   

     1、servlet是中间运行程序,并且是在服务器上运行的中间程序

     2、servlet是一种动态生成网页的技术


servlet的解析过程


         说到servlet的解析过程,少不了httpservletrequest(请求)和httpservletresponse(响应)。当数据从客户端传到服务器的时候,由httpservletrequest保存,所以我们解析的时候就从这个东西里的getParameter取就行了。当我们需要传回解析结果的时候我们就要用httpservletresponse这个东西了,同时我们可以通过setContentType方法来把结果以HTML或图片等形式返回。

     

     下面创建栗子:

   

import javax.servlet.http.*;
import javax.io.*;
import javax.servlet.*;
public class LoginServlet extends HttpServlet{
	public void doGet(HttpServletRequest request,HttpServletReponse response)//http协议传过来的对象放在request对象里,获得表单对象//通过response响应页面请求
	  throws ServletException,
		IOException{
			String username = request.getParameter("username");//用getParamer指定参数,取出对象,然后可以进行验证判断
			String password = request.getParameter("password");
			
			System.out.println("username=" + username);
			System.out.println("password=" + password);
			response.setContentType("text/html");//甚至响应内容,response可以响应HTML、图片等			
			response.getWriter().println("Login Success!!!");
		}
}


     当数据传送到服务器之后,服务器会根据URL来截取项目名称,再根据URL截取servlet访问名称,在根据servlet找到servlet-name,再根据servlet-name找到class文件,再根据class的完整路径,采用反射对servlet进行实例化,然后再通过service方法(servlet的通信过程中的所有请求都通过service方法)调用doget或dopost方法。然后截取参数值,调用业务逻辑,访问数据库等,最后完成请求,返回输出HTML字符串,通过服务器发送给浏览器,最后浏览器渲染页面。

    

     来副图吧

     


servlet的生命周期


      提到生命周期我们都不陌生,什么session、cookie生命周期啊,什么MVC生命周期啊。生命周期是一个东西的产生消亡过程。

 

     servlet通过容器的来实现对其生命周期的管理。  servlet的生命周期是从服务器上开始,也就是在服务器上加载并实例化servlet,然后就是初始化(init),接着就是处理请求:service方法调用的doget或dopost方法,最后是退出服务(destroy)。

 

      需要注意的是servlet只能实例化一次,init方法也只执行一次,所以servlet是单实例多线程的,它不是线程安全的,

     

总结

     一开始觉得java的东西很多很难,但是现在,java的东西依旧很多,但是一定不能再害怕它,了解它,熟悉它,最后吃掉它!


评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值