- 浏览: 164858 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zhousheng193:
非常感谢LZ
在JSP页面及servlet的doGet()方法中处理汉字乱码的问题 -
jie523314:
学习下。。。
读取XML文件
引用
1、servlet的生命周期与核心类及接口
(1)核心类与接口
A.Servlet接口
init(ServletConfig);
service(ServletRequest,ServletResponse);
destroy();
B. GenericServlet抽象类
对Servlet接口作了部分实现。主要是实现了
init()方法。
C. HttpServlet
继承了GenericServlet,对http协议作了封装。
实现了service()方法:
service(HttpServletRequest,HttpServletResponse) ;
doGet(HttpServletRequest,HttpServletResponse) ;
doPost(HttpServletRequest,HttpServletResponse) ;
service()方法,其默认的实现是:依据请求是
get还是post方式,来调用doGet()与doPost()方法。
(2)servlet的生命周期
含义:
所谓生命周期,指的是,servlet容器如何去
管理servlet对象的创建、调用、销毁以及其资源
的获取与释放。
因为开发人员不能够直接调用servlet,也就是说,
servlet对象的创建及销毁等管理工作全部由servlet
容器来负责。如果开发人员想干涉容器对servlet
的管理工作,就需要对Servlet接口中的几个方法进行回调。
过程:
实例化 --》初始化--》就绪与调用--》资源释放--》销毁
实例化:
第一种情况:当服务器启动时,会对配置有
load-on-startup参数的servlet进行实例化。
第二种情况:当请求到达服务器,并且该请求
要访问的servlet没有实例化。
实例化就是调用servlet公开的不带参的构造器。
初始化:
就是容器会调用servlet的init(ServletConfig)
方法。
具体细节是:容器先会构造一个ServletConfig
对象(该对象可以方便地访问servlet初始化配置
参数等)。然后,再将该对象传给servlet实例。
初始化的目的:一般用于获取资源。比如
,加载资源文件。
初始化方法只会执行一次。
如何override init()方法?
A.如果override init(ServletConfig config)
super(config);
....初始化代码
B.也可以 override init(); //更好
....初始化代码
就绪与调用:
经过实例化与初始化,servlet就可以接受调用。
在默认情况下,多个请求会共享同一个servlet
实例。
也就是说:在同一个服务器里,某个
servlet,只有唯一一个实例。
while(true){
Socket s = ServerSocket.accept();
new WorkThread(s).start();
}
WorkThread extends Thread{
Socket s;
Servlet servlet;
public void run(){
servlet.service();
}
}
每当一个请求到达服务器,会启动一个线程来
处理请求。而多个线程有可能会共享同一个实例(
比如多个请求访问的是同一个servlet)。
资源释放与销毁:
容器会依据自己的算法决定是否销毁某个
servlet实例,在销毁之前,会调用destroy()。
用于释放在初始化方法中获得的资源。
(3)线程安全问题
A.原因:
多个线程可能会共享同一个servlet实例
如果多个线程对servlet实例进行写操作。
B.解决方式:
方式一:使用synchronized
方式二:不建议使用
让servlet实现SingleThreadModel(标识接口,
里面没有任何方法)
此时,每一个线程都会使用一个自己的servlet实例。
方式三:在servlet类当中,尽量不要对
属性进行写操作。
练习:
计价
产品的最终价格(totalPrice) =
产品的原始价格(price) * (1 + 税率(taxRate));
写一个PricingServlet,在初始化方法中,加载
一个配置文件 tax.properties。
tax.properties:
beijing=0.08
....
也就是说,税率是多少,要依据城市名查找
配置文件。
2、url-pattern:
servlet容器如何去分析请求路径。
比如 http://ip:port/appName/abc
step1: 除掉应用名之前的字符串。
得到/abc.html
step2: 去web.xml中,查找url-pattern,
进行匹配:
首先,做精确匹配:即step1中获得的字符串
必须与url-pattern中定义的字符串完全一致。
如果匹配不上,模糊匹配:使用通配符。
例如:
/* :表示/下任意的字符串。
/abc/*:
后缀方式的匹配:
例如:
*.do:匹配任意以.do结尾的字符串。
*.action:
最后,如果仍然匹配不上,会查找静态资源
,如果找到,则返回,找不到,则404
3、一个servlet处理多个请求。
发表评论
-
添加过滤器的配置方法
2010-08-23 08:25 765引用方法: 1、写个类实现Filter接口 实现3个方法: p ... -
如何使用fileupload工具来实现文件上传
2010-08-17 14:07 10131。需要两个夹包文件: commons-fileupload- ... -
jsp中a标签?传参,参数怎么获取页面当中文本框的值
2010-08-16 16:50 9502引用<input type="text&quo ... -
个人感觉这个DAO实例写的还可以吧??呵呵
2010-08-14 13:23 751package org.tarena.shopping.d ... -
Session技术的理解
2010-08-12 20:38 817引用3、Session技术 (1)什么是session ... -
cookie如何使用??
2010-08-12 13:53 10142、cookie技术 (1)什么是cookie? 是 ... -
浏览器cookie的学习与测试
2010-08-12 11:24 733生成cookie: package web; imp ... -
学web很容易迷惑的问题
2010-08-11 15:00 599get只有一个流,参数附 ... -
总结response/request/DoGet/DoPost
2010-08-11 14:49 1288引用1.Response [JSP] JSP中的隐藏对 ... -
servlet中service doGet doPost 的联系和区别
2010-08-11 14:44 1859在servlet中默认情况下,无论你是get还是post ... -
servlet处理表单的doGet和doPost
2010-08-11 14:37 967service() 是在javax.servlet.S ... -
在JSP页面及servlet的doGet()方法中处理汉字乱码的问题
2010-08-11 14:34 2002在doPost()方法中使用过滤器(所有编码方式为过滤器中设置 ... -
Servlet中doGet与doPost的区别
2010-08-11 14:31 1470Serlvet接口只定义了一个服务方法就是service,而H ... -
Servlet中doGet(),doPost(),service()函数的关系
2010-08-11 14:28 11061,三者之间的关系:doGet()和doPost()是由函数 ... -
对象的产生4种方法
2010-08-10 13:22 660引用 对象的产生到底有多少种方法了: · 直接用new关键字 ... -
如何避免浏览器访问数据库出现乱码问题
2010-08-06 16:09 1054引用 mysql 创建 数据库时指定编码很重要,很多开发者都使 ... -
get/post提交怎么判别如何使用
2010-08-05 19:39 2496引用 get/post方式: get方式: ... -
手动生成servlet的一个实例方法
2010-08-05 17:01 907引用 Servlet 1、什么是S ... -
JSP和asp内置对象
2010-06-26 19:29 872引用JSP内置对象(9个常用的内置对象) 引用JSP共有以下9 ... -
html简介及用法总结
2010-06-26 17:31 1543WWW基本概念 www的全称为World Wide Web,即 ...
相关推荐
### 达内培训Servlet课堂笔记知识点详解 #### 一、Servlet概述 - **Servlet定义**:Servlet是一种服务器端的小程序,用于处理客户端发送来的HTTP请求,并返回相应的HTTP响应。它是Java Web开发的基础技术之一。 - ...
### Java Servlet基础知识详解 #### 一、Servlet简介与体系结构 **Servlet** 是Java平台用于构建Web应用程序的核心技术之一,特别是在传统的B/S(浏览器/服务器)架构中扮演着至关重要的角色。Servlet允许开发者...
【标题】:“韩顺平servlet和jsp课堂笔记”涵盖了Web开发中的两个核心技术——Servlet和JSP(JavaServer Pages)的学习资料。韩顺平是一位知名的IT教育专家,他的课程通常深入浅出,适合初学者入门及进阶者提升。 ...
【JSP 与 Servlet 基础】 JSP (Java Server Pages) 和 Servlet 是 Java Web 开发中的核心技术,主要用于构建动态网页。它们都是基于 Java 平台,提供了一种便捷的方式来处理用户请求并生成响应。 1、**Servlet ...
是否还在默默的看着学习路线图,寻找适合自己的学习资源,现在不需要如此麻烦了,动力节点全新整理Javaweb阶段全套教程已经上线,内涵网络通信、HTML、CSS、JavaScript、MySQL、JDBC、JSP、Servlet等技术,Javaweb从...
### Servlet基础知识及应用详解 #### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。...
**JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态Web应用程序方面发挥着关键作用。...通过阅读这些笔记,你可以系统地学习这两门技术,并将它们应用于实际项目中。
本资源是 Java EE 技术课堂笔记,涵盖了 JSP、Servlet、SSH 等关键技术。下面是笔记的详细内容: 一、Java EE 技术概述 Java EE(Java Enterprise Edition)是 Sun Microsystems 公司推出的企业级 Java 应用服务器...
Servlet-JSP-课堂笔记.md
【Java培训课堂笔记——跃达创新】 在Java编程领域,跃达创新是一家知名的教育机构,致力于提供高质量的Java培训课程。这份"跃达创新Java培训课堂笔记"是学习Java技术的重要资源,尤其对于初学者和希望深入理解Java...
这份"JAVA WEB开发实战经典培训【课堂笔记】"是由MLDN李兴华提供的专业培训资料,主要以PDF格式记录了整个课程的关键知识点。这份笔记对于初学者和希望深入理解Java Web技术的人来说是一份宝贵的资源。 一、Java ...
【标题】"b站狂神课堂笔记超详细"所指的是在哔哩哔哩(B站)上一位被称为“狂神”的讲师所分享的JavaWeb相关的课程笔记,这些笔记以其详尽全面而受到学习者的欢迎。JavaWeb是Java编程语言在Web开发领域的应用,涵盖...
【课堂笔记(韩顺平)】 本篇笔记主要涵盖了多个IT技术领域的知识点,包括内容管理系统(CMS)、数据库操作、Servlet编程、JavaScript、路径处理、调试技巧以及HTTP协议等。以下是对这些知识点的详细说明: 1. **...
《JAVA WEB开发实战经典》是一本深入探讨Java Web开发技术的教材或课堂笔记,由知名讲师李兴华或MLDN团队编著。这本书涵盖了从基础到高级的Java Web开发知识,旨在帮助读者全面掌握这一领域的核心技能。通过阅读这份...
这个"Javaee课堂笔记精华总结就业必备"显然是一份针对求职者或初入职场的开发者准备的学习材料,旨在帮助他们掌握JavaEE的核心概念和技术,以提升就业竞争力。 JavaEE平台包括一组服务、APIs和协议,用于构建分布式...
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> ``` 这里使用了`InternalResourceViewResolver`作为视图解析器,它可以解析出真正的视图页面。 #### ...
Servlet技术是JavaEE平台中的核心组成部分,用于构建动态web应用程序。Servlet是JavaWeb三大组件之一,这三大组件包括Servlet程序、Filter过滤器和Listener监听器,它们协同工作以实现复杂的功能。 Servlet是一个...
【标题】:“北京圣思园java课堂笔记 (javaSE和javaee)” 提供了全面的Java学习资源,涵盖了从基础的Java Standard Edition (javaSE)到进阶的Java Enterprise Edition (javaEE)的相关知识。 【描述】:“北京圣思园...
《黑马程序员SpringMVC课堂笔记》是一份详细记录了SpringMVC框架学习过程的资料,主要针对Java EE开发者,特别是那些希望通过黑马程序员的教程来提升自己SpringMVC技能的学员。SpringMVC作为Spring框架的重要组成...
根据提供的文档信息,以下是对JavaEE框架SSM(Spring+SpringMVC+MyBatis)课堂笔记中的关键知识点进行的详细解析。 ### 第一部分:Spring框架基础 #### 1. Spring简介 - **Spring概念**:Spring是一个开源的轻量级...