Servlet 学习笔记1

Servlet 学习笔记

servlet基础

初步认识servlet

在JSP开发过程中,人们不断地将JSP进行模式化的分离处理。模式化的处理将网页中的表示、业务处理、逻辑处理层进行了很好的分离,增强了程序的可扩展性及可维护性。最初的JSP开发模式为JSP+JavaBean,称为Model1模式。在建立中、小型的网站中,这种模式应用的比较多。JSP+ Servlet+ JavaBean则慢慢演变成了Model2模式,它在实际中更为广泛地得到应用。一般的大型网站中,都采用此技术进行构建。

Servlet是一种独立于平台和协议的服务器端的Java应用,可以生成动态的Web页面。与传统的CGI(计算机图形接口)和许多其他类似CGI技术相比,Servlet具有更好的可移植性、更强大的功能、更节省投资、效率更高、安全性更好、代码结构等特点。

Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。除Java Servlet API,Servlet还可以使用以扩展和添加API的Java类软件包。Java语言能够实现的功能,Servlet基本上都能实现(除了图形界面外)。Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。通常所说的Servlet就是指HttpServlet,用于处理HTTP请求,能够处理的请求有doGet()、doPost()、service()等方法。在开发Servlet时,可以直接继承javax.servlet.http. HttpServlet。

Servlet技术功能

Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet,之后,Servlet继续运行直到其他客户机发出请求。Servlet的工作流程如图1所示。

servlet 的功能涉及范围很广,主要功能如下:
  1. 创建并返回一个包含基于客户请求性质的动态内容和完整的HTML页面
  2. 创建可嵌套到现有HTML页面中的一部分HTML页面(HTML片段).
  3. 与其他服务器资源(包括数据库和基于java的应用程序)进行通信
  4. 用多个客户机处理连接,接收多个客户机的输入,并将结果传递到多个客户机,例如,servlet可以是多参与者的游戏服务器
  5. 当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至Applet的新连接,并将该连接保持在打开状态,当允许客户机和服务器简单,高效地执行会话的情况下,Applet也可以启动客户浏览器和服务器之间的连接,可以通过定制协议进行通信.
  6. 讲定制的处理提供给所有服务器的标准程序,例如,servlet可以修改如何认证用户…

Servlet技术特点

Servlet技术带给程序员最大的优势是它可以处理客户端传来的HTTP请求,并返回一个响应。Servlet是一个Java类,Java语言能够实现的功能,Servlet基本上都可以实现(图形界面以外)。总地来说,Servlet技术具有以下特点。

  1. 高效

    在服务器上仅有一个Java虚拟机在运行,
    它的优势在于当多个来自客户端的请求进行访问时,Servlet为每个请求分配一个线程而不是进程。
    
  2. 方便

      Servlet提供了大量的实用工具例程,
      例如处理很难完成的HTML表单数据、读取和设置HTTP头、处理Cookie和跟踪会话等。       
    
  3. 夸平台

      Servlet是用Java类编写的,它可以在不同的操作系统平台和不同的应用服务器平台下运行。
    
  4. 功能强大

      在Servlet中,许多使用传统CGI程序很难完成的任务都可以利用Servlet技术轻松地完成。例如,
      Servlet能够直接和Web服务器交互,而普通的CGI程序不能。
      Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。 
    
  5. 灵活性和可扩展性

     采用Servlet开发的Web应用程序,由于Java类的继承性、构造函数等特点,使得应用灵活,可随意扩展。
    
  6. 共享数据

      Servlet之间可通过共享数据很容易地实现数据库连接池。它能方便地实现管理用户请求,简化Session和获取前一页面信息的操作。而在CGI之间通信则很差。由于每个CGI程序的调用都开始一个新的进程;调用间通信通常要通过文件进行,因而相当缓慢。同一台服务器上的不同CGI程序之间的通信也相当麻烦。
    
  7. 安全

      有些CGI版本有明显的安全弱点。即使是使用最新的标准和PERL等语言,系统也没有基本安全框架。而Java定义有完整的安全机制,包括SSL\CA认证、安全政策等规范。
    

Servlet 开发

创建Servlet

Servlet的创建十分简单,主要有两种创建方法。第一种方法为创建一个普通的Java类,使这个类继承HttpServlet类,再通过手动配置web.xml文件注册Servlet对象。此方法操作比较繁琐,在快速开发中通常不被采纳,而是使用第二种方法进行创建,直接通过IDE集成开发工具进行创建。

使用集成开发工具创建Servlet非常方便,下面以MyEclipse为例介绍下Servlet的创建过程,其它开发工具大同小异。

  1. 在指定的项目中打开MyEclipse的新建向导,并在“输入过滤器文本”框中输入“servlet” MyEclipse将自动导航到Servlet,如图1所示。

  1. 选择“Servlet”单击“下一步”按钮,进入到Servlet创建对话框,按提示创建Servlet对象,如图2所示。在这一步要输入Servlet对象的包名及类名,同时MyEclipse还提供了Servlet对象的方法,如doPost()、doGet()等等,可根据实际需要进行选择。

配置Servlet的相关元素

一个Servlet对象的正常运行,需要进行适当的配置,以告知Web容器哪一个请求调用哪一个Servlet对象处理,对Servlet起到一个注册的作用。Servlet的配置包含在web.xml文件中,主要通过以下两部进行设置:

  1. 声明Servlet对象
    在web.xml文件中,通过元素声明一个Servlet 对象,在此标签下包含两个主要子元素,分别为与.其中元素用于指定Servlet的名称,此名称可以为自定义的名称. 。元素用于指定Servlet对象的完整位置,包含Servlet对象的包名与类名,其声明语句如下:

    <servlet>
    
    <servlet-name>SimpleServlet</servlet-name>
    
    <servlet-class>com.lyq.SimpleServlet</servlet-class>
    
    </servlet>
    
  2. 在web.xml文件中声明了Servlet对象后,需要映射访问Servlet的URL,此操作使用标签进行配置。标签包含两个子元素,分别为与,其中元素与标签中元素相对应,不可以随意命名。元素用于映射访问URL,其配置方法如下:

    <servlet-mapping>
    
    <servlet-name>SimpleServlet</servlet-name>
    
    <url-pattern>/SimpleServlet</url-pattern>
    
     </servlet-mapping>
    
Servlet的创建及配置
  1. 创建名称为MyServlet的Servlet对象,它继承HttpServlet类。在此类中重写doGet()方法,用于处理HTTP的get请求,通过PrintWriter对象进行简单输出,其关键代码如下:
      public class MyServlet extends HttpServlet {

         public void doGet(HttpServletRequest request, HttpServletResponse response)

                  throws ServletException, IOException {

            response.setContentType("text/html");

            response.setCharacterEncoding("GBK");

            PrintWriter out = response.getWriter();

            out.println("<HTML>");

            out.println("  <HEAD><TITLE>Servlet实例</TITLE></HEAD>");

            out.println("  <BODY>");

            out.print("    Servlet实例: ");

            out.print(this.getClass());

            out.println("  </BODY>");

            out.println("</HTML>");

            out.flush();

            out.close();

        }

        }
  1. 在web.xml文件中对MyServlet进行配置,其中的访问的URL的相对路径为“/MyServlet”,其关键代码如下:
       <servlet>

        <servlet-name>MyServlet</servlet-name>

        <servlet-class>com.ityang.servlet.MyServlet</servlet-class>

         </servlet>

         <servlet-mapping>

         <servlet-name>MyServlet</servlet-name>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值