servlet

Servlet实例

丶灬走出姿态 提交于 2020-01-01 04:47:43
举例讲述法: 现有一个Servlet, "/Example1" => "my.Example1" 可以思考一下:当用户多次访问该服务时,后台创建了几个Example对象? 验证方法: 在my.Example1的构造方法里添加打印构造 观察: - 当Tomcat启动时,是否会立即创建Example1对象? - 当用户访问该服务时.... -当用户再次(多次)访问该服务时(刷新浏览器) **************************************************************** 下面进行测试验证: 测试代码: Servlet:方便起见,只进行控制台的输出 package my; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONObject; public class

CXF使用备忘

守給你的承諾、 提交于 2020-01-01 04:01:49
在javaeye里参考大牛们的帖子去配置spring2.5+hibernate3.2+CXF2.1,最终解决了路径问题后,终于成功了! CXF是Apache的一个重点项目,终于放出来了,因为它跟spring的结合很方便,于是就用一下,还是要自己动手一步步弄一下,才知道其配置上的一些小细节(如果用插件的话,就感觉不到它跟spring的关系和不知道它的很多细节,所以推荐不要用插件的好)。 在这里顺带提一下,spring2.5结合junit4.4可以很容易地运用annotation来进行testcase的编写,不过要注意的是eclipse3.3或者eclipose3.4,里头自带的junit4是junit4.3版本的,缺少需要的方法,所以要去下载最新的junit4.4版,然后替换掉eclipse插件里的junit.jar包。 准备依赖包,依赖包不用想那么多,我在这里是把握的项目包弄个截图,所以是很多的,重点是spring,hibernate,CXF*这些包。 在web.xml文件中添加以下servlet配置: <!-- CXF 配置 --> < servlet > < servlet-name > CXFServlet </ servlet-name > < servlet-class > org.apache.cxf.transport.servlet.CXFServlet </

Servlet总结

随声附和 提交于 2020-01-01 00:04:29
Servlet总结 1.Servlet接口 创建HelloServlet实现Servlet接口,作为实例代码 1.Servlet生命周期方法:以下方法都是Servlet容器负责调用(tomcat就是一个Servlet容器) ​ 1.构造方法 ​ 只要第一次请求Servlet时,创建实例,调用构造器.说明Servlet是单实例的 public HelloServlet ( ) { // TODO Auto-generated constructor stub System . out . println ( "HelloServlet's constructor" ) ; } ​ 2.init()方法:只被调用一次,在创建好实例后立即被调用.用于初始化当前的构造方法 @Override public void init ( ServletConfig config ) throws ServletException { } 3.service()方法:被调用多次,每次请求都会调用service方法.实际用于响应请求 @Override public void service ( ServletRequest req , ServletResponse res ) throws ServletException , IOException { // TODO Auto

Tomcat部署(原理详解与部署实操)

醉酒当歌 提交于 2019-12-31 22:55:08
Tomcat部署 一、前言 ​ 之前的文章讲述的是web中两大服务器软件:Apache和Nginx,在这,对此我们先做一个简单的小结。 1.Apache和Nginx的特点与性能 ​ Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。但是其配置相对复杂,自身不支持动态页面。 ​ Nginx,轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。其特点是占有内存少,并发能力强,易于开发,部署方便。Nginx 支持多语言通用服务器。但是,Nginx 只适合静态和反向代理。其优点在于支持:负载均衡、反向代理、处理静态文件。Nginx 处理静态请求的速度高于Apache(3倍以上)。 2.Apache和Nginx的区别 Apache是同步多进程模型,一个连接对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。 nginx轻量级,抗并发,处理静态文件好 Apache超稳定,对PHP支持比较简单,nginx需要配合其他后端用,处理动态请求有优势,建议使用前端nginx抗并发,后端apache集群,配合起来会更好。 二、Tomcat概念 1.Tomcat 是什么? ​ Tomcat是Apache 软件基金会(Apache

Web基础了解版10-Filter-Listener

♀尐吖头ヾ 提交于 2019-12-31 18:46:05
Filter 对于WEB应用来说,过滤器是一个驻留在服务器中的WEB组件,他可以截取客户端和WEB资源之间的请求和响应信息。 在一个WEB应用中可以部署多个过滤器,多个过滤器就组成了一个过滤器链,请求和响应必须在经过多个过滤器后才能到达目标 当配置多个Filter以后就有一个执行顺序的问题,实际执行顺序是按照在web.xml文件中servlet-mapping的顺序决定的,如果顺序越靠前越先被调用。 Filter接口 Filter是一个接口。 Filter是Java Web三大组件之一。(JavaWeb三大组件分别是:Servlet小程序、Filter过滤器、Listener监听器) 作用:1.检查用户访问权限    2.设置请求响应编码,解决乱码问题 主要API Filter init(FilterConfig)方法用于初始化Filter doFilter (ServletRequest,ServletResponse,FilterChain)作用和service()方法类似,是过滤请求和响应的主要方法。 destroy()用于在Filter对象被销毁前做一些收尾工作。如:释放资源等。 FilterConfig FilterConfig对象在服务器调用init()方法时传递进来。 getFilterName() 获取Filter的名字 getServletContext()

Servlet.init() for servlet [spring-dispatcher] threw exception

那年仲夏 提交于 2019-12-31 06:26:17
在ssm商铺开发1.0中遇到该问题,之前项目运行正常,在电脑安装jdk1.6之后出现该问题,具体报错如下 解决办法:   eclipse中将jdk切换回1.8,在window配置中将相关jdk都切换。是jdk与其他之间的兼容问题。我在切换回之后问题消失,但是隔天再次出现该问题。最后将eclipse重安装,将环境重新搭建(eclipse的环境),最后解决该问题。   很可能是之前eclipse环境搭建混乱,卸载有残留,导致不兼容。   这是本人本次问题解决办法。 来源: https://www.cnblogs.com/MT-1996/p/10772336.html

Hello-SpringMvc

梦想的初衷 提交于 2019-12-30 23:57:20
什么是SpringMVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。就是将业务逻辑、数据、显示分离的方法来组织代码 MVC主要作用是 降低了视图与业务逻辑间的双向偶合 。MVC不是一种设计模式, MVC是一种架构模式 。当然不同的MVC存在差异。 Model(模型) :数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。 View(视图) :负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。 Controller(控制器) :接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作。 最典型的MVC就是 JSP + servlet + javabean 的模式。 Model1 在web早期的开发中,通常采用的都是Model1。 Model1中,主要分为两层,视图层和模型层。 Model1优点:架构简单,比较适合小型项目开发; Model1缺点:JSP职责不单一,职责过重,不便于维护 Model2

SSM集成Easyui框架及多模块开发的认识

心已入冬 提交于 2019-12-30 20:22:12
首先我们需要建立好一个emaven项目,并且在pom.xml中导入响应的jar包, 1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>cn.itsource</groupId> 8 <artifactId>crm</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>war</packaging> 11 12 <name>crm</name> 13 <url>http://www.example.com</url> 14 15 <properties> 16 <project.build.sourceEncoding>UTF-8</project.build

文件上传

*爱你&永不变心* 提交于 2019-12-30 16:27:00
SpringMVC 中对文件上传做了封装,我们可以更加方便的实现文件上传。从 Spring3.1 开始,对于文件上传,提供了两个处理器: CommonsMultipartResolver StandardServletMultipartResolver 第一个处理器兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了 commons-fileupload 这个第三方工具,所以如果使用这个,一定要添加 commons-fileupload 依赖。 第二个处理器兼容性较差,它适用于 Servlet3.0 之后的版本,它不依赖第三方 工具,使用它,可以直接做文件上传。 CommonsMultipartResolver 使用 CommonsMultipartResolver 做文件上传,需要首先添加 commons- fileupload 依赖,如下: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> 然后,在 SpringMVC 的配置文件中,配置 MultipartResolver: <!-- multipart类型解析器,文件上传 --> <bean id=

Servlet监听器一

半世苍凉 提交于 2019-12-30 12:07:15
了解Servlet之前我们先了解监听器是什么?字面意思,就是监听这个web干嘛了,然后我们根据得到的信息可以采取什么措施。 术语:监听器 :专门用于对其它对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。 Servlet对象 根据监听的事件 可以分为三种类型:域对象监听器,属性监听器,HttpSession域内对象监听器。本文主要讲解域对象监听器。 域对象(request、session、application)监听器 :监听域对象自身的创建和销毁的事件监听器;原来域对象的创建和销毁我们无法参与,监听器的出现提供了参与的机会 下面我们通过一些实验对监听器进行了解,了解如何创建域对象监听器和域对象监听器何时作用。 1、创建一个名为“listener”的web项目,并将tomcat中的servlet包引入 2、创建applictionListener、sessionListener两个Class,并分别对应ServletContextListener、HttpSessionListener两个接口; 3、创建一个index.jsp 4、在web.xml进行配置 applictionListener中代码: package listener; import javax.servlet.ServletContextEvent; import