`
liuting37
  • 浏览: 10210 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

servlet基础

 
阅读更多

一、servlet基础

       在web开发的过程时,编写jsp页面可实现动态页面。原理是将java代码嵌入到html代码中,这样一个页面中,既要编写逻辑代码又要编写显示标记代码,往往篇幅很长。而且在其中一部分需要改动的时候,往往会牵扯到其他的地方,使修改变得很麻烦,代码可读性也很差。

       我们希望能将java代码和html代码进行分离,并按功能分开存放,使代码结构清晰,增强可读性。

       servlet就这样产生了,它是连接前端和后台的中间部分,可以看做是jsp的底层,jsp中的java代码是在底层实现了这样一个类之后进行运行的。现在我们直接编写这个类,就可以了。

        将java代码分离出来之后,可以进行重复调用,也可以实现对很多页面的统一处理。

 

什么是servlet?

       servlet是能完成一个功能的一个类,它有4个方法,初始化方法,销毁方法,doGet(),doPost(),用来实例化。它的访问方法有,直接访问,表单提交。直接访问是get方式,表单提交可以设置为get方式或者post方式。

编写servlet:

1.继承HttpServlet类

2.实例化doPost()、doGet()方法,完成servlet的实质功能。

配置servlet:

写道
<servlet>
<servlet-name>buyServlet (给servlet取一个名字)</servlet-name> 
<servlet-class>servlet.buyServlet  (servlet类的路径)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>buyServlet  (跟上面一样的名字)</servlet-name>
<url-pattern>/buyServlet (写一个访问路径)</url-pattern>
</servlet-mapping>
 

    访问下面这个访问路径就可以调用到上面那个类了。

什么是过滤器?

   过滤器就是用来对多个页面进行统一处理的的类。

编写过滤器:

   1.实现filter接口

写道
import javax.servlet.Filter;
public class testFilter implements Filter {
}
 

 

   2.重写doFilter方法

写道
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
           response.setCharacterEncoding("UTF-8");
           PrintWriter out = response.getWriter();
           out.println("中国字哦~");
           chain.doFilter(request, response);
}
 

 

配置过滤器:

写道
<filter>
<filter-name>encodingFilter (取一个名字)</filter-name>
<filter-class>filter.encodingFilter (过滤器类的路径)</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter (跟上面相同的名字)</filter-name>
<url-pattern>/buyBasket.jsp (写要顾虑的页面的路径)</url-pattern>
</filter-mapping>
 

   与servlet配置的不同之处,仅在于,<url-pattern></url-pattern>标签中放置的是,需要被过滤的路径,并且这个路径可以是一个包的形式比如/*。

什么是监听器?

       监听器是用来编写,当页面中的某些动作发生时,需要发生的伴随处理的。

编写监听器:

    1.实现HttpSessionListener接口,当然还有HttpSessionAttributeListener接口,ServletContextListener接口,ServletContextAttributeListener接口。分别用于监听不同的事件。

写道
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener{
}
 

    2.重写方法

写道
public void sessionCreated(HttpSessionEvent event) {
// TODO Auto-generated method stub
//对session进行初始化;
HttpSession session = event.getSession();
HashMap<String,book> books = new HashMap<String,book>();
session.setAttribute("books",books);
session.setAttribute("money",null);
}
  

 

配置监听器:

写道
<listener>
<listener-class>listener.SessionListener</listener-class>
</listener>
 

    监听器的配置非常简单,因为它是对内置的几个对象的动态的监听,不需要设置相关的url。

二、开发一个例子中注意的问题

        开发一个购物车的例子,例子中存在三张页面。(1)显示所有图书页面(每本书显示书号,书名,单价,后面包含购书按钮);(2)购买某种书页面(显示该书书名,价钱,购书数量输入框,提交按钮);(3)购物车页面(显示所有别添加到购物车中的书单,包含书号,书名,单价,数量,还有购书总价钱)。

例子中包含两个servlet,初始化InitServlet,BuyOneBookServlet。

        数据库的设计,考虑到三个页面的需要,图书的数据库中包含书号,书名,单价,数量四个字段。

        在各个页面,和前后台的数据传递中,如果用session传值的话,需要(1)查询出所有的图书列表”allbook“(2)放入购物车的所有图书的列表”books“(3)购物车中图书的总价钱”money“(4)购单类书信息”book“。session中可存放的变量的种类是可以不一样的,但是对于列表类的变量,我们便于索引就采用了HashMap类型。

        在servlet之前放置了encodingFilter用来过滤各页面的编码。

        在filter中要注意的问题,必须把编码设置response.setCharacterEncoding("")放在所有request.getWriter()之前,不然会影响整个网页页面的编码。

分享到:
评论
1 楼 沈冠军 2013-10-20  
相比前面的两篇进步挺大的了,但是对servlet了解的还是不够,比如servlet的本质是什么?它什么能和前端的页面进行通信呢,是通过socket、http还是其它的方式?另外就是它的四个方法什么时候会被调用?比如销毁方法是不是请求完了就销毁了,还是有一个缓冲池呢,是不是每个请求都会创建一个实例。建议通过在这几个方法里面都输出log看看

相关推荐

    Servlet基础知识总结

    ### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...

    Servlet基础补充案例 习题.doc

    Servlet 基础补充案例习题 在本节中,我们将探讨 Servlet 基础补充案例习题,旨在掌握实际开发中 Servlet 程序的基本实现和使用。我们将通过两个案例,分别演示如何编写基于 HTTP 协议的 Servlet 程序,并掌握 ...

    jsp/servlet基础课件

    **学习JSP和Servlet基础,你需要理解它们的基本概念、生命周期、API使用以及如何协作处理Web请求。此外,熟悉EL和JSTL,以及如何在实际项目中应用MVC模式,对于提升开发效率和代码质量至关重要。本课件将逐步引导你...

    servlet基础知识新手下载

    ### Servlet基础知识详解 #### 一、Servlet的基本概念与工作原理 1. **Servlet定义** - **定义**: Servlet是一种Java程序,它运行在服务器端,遵循特定的标准规范,能够响应客户端的请求并生成动态内容。 - **...

    servlet基础与servlet容器模型

    总的来说,Servlet基础知识和Servlet容器模型构成了Java Web开发的核心部分。掌握这些概念有助于理解Web应用的工作原理,以及如何在实际项目中有效地使用Servlet和容器提供的功能。通过深入学习和实践,开发者可以...

    Servlet基础Demo

    在本教程"Servlet基础Demo"中,我们将深入理解Servlet的工作原理,以及如何创建和运行一个简单的Servlet应用。 首先,Servlet是一个Java类,它实现了Servlet接口或者HttpServlet类,后者是Servlet接口的一个实现,...

    北大青鸟 Servlet 基础 PPT

    因此,可以说Servlet是JSP技术的基础,因为JSP最终也是通过Servlet来实现其功能的。 处理HTTP请求的方法主要有两种:GET和POST。GET请求通常用于获取资源,其参数会显示在URL中,而POST请求则常用于向服务器提交...

    servlet基础教程

    ### servlet基础教程知识点详解 #### 一、Servlet简介与特点 **Servlet** 是服务器端的一种小型程序,主要用于处理客户端发送的HTTP请求,并返回相应的HTTP响应。它与客户端的小程序 **Applet** 相对应,主要区别...

    第7章_Java_Servlet基础(1)

    有关第7章_Java_Servlet基础(1)

    servlet基础入门教程

    Servlet基础入门教程 Servlet是Java Web开发中的一个关键组件,它是服务器端的程序,用于处理来自客户端(如浏览器)的请求并返回响应。本教程旨在为初学者提供一个全面的Servlet入门指南,涵盖其基本概念、方法及...

    javaweb Servlet基础教程

    通过学习“Servlet基础教程”,你可以掌握创建动态网站的基本技能。无论你想构建用户管理系统还是其他类型的Web应用,Servlet都能提供强大的支持。这个课程将帮助你理解Servlet的工作原理,如请求和响应的处理,以及...

    Servlet基础源代码

    在"Servlet基础源代码"的学习中,你将接触到以下关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、实例化、初始化、服务、销毁等阶段。当服务器启动或第一次接收到对Servlet的请求时,会加载并...

    Servlet基础.ppt

    在Servlet基础.ppt中,我们主要关注以下几个关键知识点: 1. **Servlet接口和HttpServlet类**: - `Servlet`接口是所有Servlet的基类,定义了Servlet的基本行为。在`HttpServlet`类中,它实现了Servlet接口,并...

    3+Servlet基础

    在本篇3+Servlet基础中,我们将深入探讨Servlet的基本概念、接口、配置以及实际应用。 首先,Servlet是一个Java类,它实现了Servlet接口或HttpServlet接口,这两个接口都是Java Servlet API的一部分。Servlet接口...

    Servlet基础

    Servlet基础

    Servlet基础 Servlet基础 Servlet基础 Servlet基础 Servlet基础

    在Servlet编程中,`GenericServlet`是最基础的抽象类,它实现了Servlet接口,而大多数HTTP相关的Servlet会继承`HttpServlet`。`HttpServlet`提供了针对HTTP请求方法的抽象方法,如`doGet`和`doPost`。开发者通常需要...

    Servlet 基础教程

    Servlet基础教程 http原理 request, response

    JSP和Servlet基础知识点

    ### Servlet基础 **1. Servlet概述:** Servlet是Java API的一部分,是一个Java类,用于扩展服务器的功能,处理HTTP请求。Servlet生命周期由容器(如Tomcat)管理。 **2. Servlet生命周期方法:** - **init()**:...

Global site tag (gtag.js) - Google Analytics