一、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()之前,不然会影响整个网页页面的编码。
相关推荐
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
Servlet 基础补充案例习题 在本节中,我们将探讨 Servlet 基础补充案例习题,旨在掌握实际开发中 Servlet 程序的基本实现和使用。我们将通过两个案例,分别演示如何编写基于 HTTP 协议的 Servlet 程序,并掌握 ...
**学习JSP和Servlet基础,你需要理解它们的基本概念、生命周期、API使用以及如何协作处理Web请求。此外,熟悉EL和JSTL,以及如何在实际项目中应用MVC模式,对于提升开发效率和代码质量至关重要。本课件将逐步引导你...
### Servlet基础知识详解 #### 一、Servlet的基本概念与工作原理 1. **Servlet定义** - **定义**: Servlet是一种Java程序,它运行在服务器端,遵循特定的标准规范,能够响应客户端的请求并生成动态内容。 - **...
总的来说,Servlet基础知识和Servlet容器模型构成了Java Web开发的核心部分。掌握这些概念有助于理解Web应用的工作原理,以及如何在实际项目中有效地使用Servlet和容器提供的功能。通过深入学习和实践,开发者可以...
在本教程"Servlet基础Demo"中,我们将深入理解Servlet的工作原理,以及如何创建和运行一个简单的Servlet应用。 首先,Servlet是一个Java类,它实现了Servlet接口或者HttpServlet类,后者是Servlet接口的一个实现,...
因此,可以说Servlet是JSP技术的基础,因为JSP最终也是通过Servlet来实现其功能的。 处理HTTP请求的方法主要有两种:GET和POST。GET请求通常用于获取资源,其参数会显示在URL中,而POST请求则常用于向服务器提交...
### servlet基础教程知识点详解 #### 一、Servlet简介与特点 **Servlet** 是服务器端的一种小型程序,主要用于处理客户端发送的HTTP请求,并返回相应的HTTP响应。它与客户端的小程序 **Applet** 相对应,主要区别...
有关第7章_Java_Servlet基础(1)
Servlet基础入门教程 Servlet是Java Web开发中的一个关键组件,它是服务器端的程序,用于处理来自客户端(如浏览器)的请求并返回响应。本教程旨在为初学者提供一个全面的Servlet入门指南,涵盖其基本概念、方法及...
通过学习“Servlet基础教程”,你可以掌握创建动态网站的基本技能。无论你想构建用户管理系统还是其他类型的Web应用,Servlet都能提供强大的支持。这个课程将帮助你理解Servlet的工作原理,如请求和响应的处理,以及...
在"Servlet基础源代码"的学习中,你将接触到以下关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、实例化、初始化、服务、销毁等阶段。当服务器启动或第一次接收到对Servlet的请求时,会加载并...
在Servlet基础.ppt中,我们主要关注以下几个关键知识点: 1. **Servlet接口和HttpServlet类**: - `Servlet`接口是所有Servlet的基类,定义了Servlet的基本行为。在`HttpServlet`类中,它实现了Servlet接口,并...
在本篇3+Servlet基础中,我们将深入探讨Servlet的基本概念、接口、配置以及实际应用。 首先,Servlet是一个Java类,它实现了Servlet接口或HttpServlet接口,这两个接口都是Java Servlet API的一部分。Servlet接口...
Servlet基础
在Servlet编程中,`GenericServlet`是最基础的抽象类,它实现了Servlet接口,而大多数HTTP相关的Servlet会继承`HttpServlet`。`HttpServlet`提供了针对HTTP请求方法的抽象方法,如`doGet`和`doPost`。开发者通常需要...
Servlet基础教程 http原理 request, response
### Servlet基础 **1. Servlet概述:** Servlet是Java API的一部分,是一个Java类,用于扩展服务器的功能,处理HTTP请求。Servlet生命周期由容器(如Tomcat)管理。 **2. Servlet生命周期方法:** - **init()**:...