SERVLET - 技术教程文章

(020)Spring Boot之Servlet、过滤器(Filter)、监听器(Listener)【代码】【图】

分别有两种方法实现Servlet、过滤器(Filter)、监听器(Listener)  先贴出pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.edu.spring</groupId><artifactId>...

Servlet生命周期与工作原理

Servlet生命周期分为三个阶段:  1,初始化阶段 调用init()方法  2,响应客户请求阶段  调用service()方法  3,终止阶段  调用destroy()方法 Servlet初始化阶段:  在下列时刻Servlet容器装载Servlet:    1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>     2,在Servlet容器启动后,客户首次向Servlet发...

<mvc:default-servlet-handler/>导致SimpleUrlHandlerMapping失效【代码】

整理springmvc的demo的时候遇到一件奇葩事情,本来就是想简单演示一下SimpleUrlHandlerMapping的用法就完活.结果写好demo怎么都无法进行映射,就好像根本就没有创建SimpleUrlHandlerMapping一样..关键配置文件如下:<!-- 容器默认的DefaultServletHandler处理 所有静态内容与无RequestMapping处理的URL--><mvc:default-servlet-handler/><bean id="handlerMapping"class="org.springframework.web.servlet.handler.SimpleUrlHandlerMa...

Servlet【代码】

一、Servlet是什么: servlet是一个小应用程序作用: 处理从客户端发送的请求及服务端的响应。开发步骤:    a)写一个类ServletDemo1,继承javax.servlet.GenericServlet类,实现  service方法    b) 打开web.xml文件,做如何配置<!-- sevlet标签是用来定义一个Servert对象的 --><servlet><servlet-name>demo</servlet-name><servlet-calss>cn.JA_K56c.servlet.ServletDemo1</servlet-class><!-- ServletDemo1 demo = ne...

Servlet生命周期

1、Servlet 通过调用 init () 方法进行初始化。2、Servlet 调用 service() 方法来处理客户端的请求。3、Servlet 通过调用destroy() 方法终止(结束)。4、最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。服务器会在启动时(如果load-on-startup为1)或者第一次请求Servlet时(如果load-on-startup为0)初始化一个Servlet对象无论请求多少次Servlet,最多只有一个Servlet实例,多个客户端并发的请求Servlet时,服务器会启动多...

No mapping found for HTTP request with URI [/spring_liu/hello.do] in DispatcherServlet with name 'SpringMVC'【代码】

控制台一直报No mapping found for HTTP request with URI [/spring_liu/hello.do] in DispatcherServlet with name ‘SpringMVC‘,最后发现是controller没有扫描到造成的,我这边是xml没有添加组件扫描<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"...

解决HttpServletRequest的输入流只能读取一次的问题【代码】【图】

背景 通常对安全性有要求的接口都会对请求参数做一些签名验证,而我们一般会把验签的逻辑统一放到过滤器或拦截器里,这样就不用每个接口都去重复编写验签的逻辑。在一个项目中会有很多的接口,而不同的接口可能接收不同类型的数据,例如表单数据和json数据,表单数据还好说,调用request的getParameterMap就能全部取出来。而json数据就有些麻烦了,因为json数据放在body中,我们需要通过request的输入流去读取。但问题在于request的...

如何开发一个Servlet【图】

1 如何开发一个Servlet1.1 步骤:1)编写java类,继承HttpServlet类2)重新doGet和doPost方法3)Servlet程序交给tomcat服务器运行!!3.1 servlet程序的class码拷贝到WEB-INF/classes目录3.2 在web.xml文件中进行配置 <!-- 配置一个servlet --> <!-- servlet的配置 --> <servlet> <!-- servlet的内部名称,自定义。尽量有意义 --> <servlet-name>FirstServlet</servlet-name> <!-- servlet的类全名: 包名+简单类名 --> ...

tomcat-servlet 练习一则【代码】【图】

先看下目录结构: (该目录在tomcat/webapps/下面,ch1是项目名)├───ch1 │ └───WEB-INF │ │ web.xml │ │ │ └───classes │ Ch1Servlet.class 1.2web.xml<?xml version="1.0" encoding="utf-8" ?> <web-app xmlns="http:/java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java....

struts2.1.*中再实现了一个servlet的方法

学习Struts2也有一段时间了,今天用Servlet写了一个验证码,然后搬到Struts2中,惊奇地发现Servlet无法访问,出现404错误!后来折腾了半天,终于找出原因了。这也算我学习中的一个重大发现吧。写下来给大家分享一下: 在李刚编写的《Struts2权威指南》一书中,他用的是Struts2.0*版本。而我在开发中用的是Struts2.1*版本的构包。其中有很大不同就是,新版本对servlet实现了过滤,而旧版本并未对其进行过滤! 原来我的web.xml定...

Servlet——相关概念【图】

Servlet相关概念·动态网页·以数据库为基础·不是独立存在与服务器上的网页文件·B/S和C/S架构·C/S客户机服务器架构·B/S浏览器和服务器架构 ·Servlet运行过程·浏览器发送请求到服务器·服务器根据请求的url,去调用相关的Servlet·通过Servlet中的打印流对象将生成的HTML数据输出给服务器·服务器将Servlet生成的数据再输出给客户端浏览器 实例程序1.新建web工程,名称为First 2.配置web.xml文件<?xml version="1.0" encoding="UTF-8"?...

【Servlet】利用Servlet3.0标准与JSTL表达式实现文件上传系统,支持图片上传后显示【图】

伴随着JDK1.6一起出现的Servlet3.0标准,使得JSP的文件上传系统不再艰难,此前在JSP的文件上传系统需要《【Jsp】使用jspsmartupload完成简单的文件上传系统》(点击打开链接)类似这样的插件才能完成的文件上传系统,还不支持中文,使得各位程序猿掏空心思才能解决这个问题。现在Servlet3.0对文件上传的方法进行封装,无须分块就可以实现。而且Servlet3.0还不用类似《【Servlet】最简单的ServletJavaWeb程序》(点击打开链接)在we...

SpringBoot: 2.SpringBoot整合servlet(转)【代码】

整合方式1:通过注解扫描完成 Servlet 组件的注册1、编写servletpackage com.bjsxt.servlet;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 java.io.IOException;/*** Created by Administrator on 2019/2/4.*/ @WebServlet(name = "FirstSe...

Java web之cookie session和application和servlet

Cookie和Session和Application记录下笔记1.Cookie是保留在浏览器端,当浏览器关闭,Cookie自动清空2. Session是保留在服务端,超时时间在服务端配置。//web.xml中配置 <web-app> <session-config> <session-timeout>20</session-timeout> </session-config> </web-app>//代码中设置 session.setMaxInactiveInterval(20*60);? ??3.Application是保留在服务端,服务端一直起着,它就一直存在。 可以用于保存全局的信息。4.Servlet?? ...

HttpServletRequest【代码】【图】

HttpServletRequest概述:service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口。request的运行流程 通过request获得请求行:package com.oracle.demo01;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax...

java-Servlet生命周期与jsp

容器如何处理请求资源路径?比如,在浏览器地址栏输入:ip地址路径/abc.html.Step1.默认访问的是一个servlet,会从web.xml中查找有没有匹配的servlet. web.xml url-pattern 匹配规则:(1) 精确匹配: <url-pattern>/abc.html</url-pattern>(2) 统配符匹配:使用*号匹配0到多个字符. <url-pattern>/*</url-pattern>(3) 后缀匹配:以*.开头,后接任意的字符<url-pattern>*.do</url-pattern >匹配所有以.do结尾的请求Step2.如果...

Java Web之Servlet技术【代码】【图】

1、Servlet基础  针对Servlet技术开发,Sun公司提供了一些列接口和类,其中最重要的是javax.servlet.Servlet接口,两个重要的包是javax.servlet和javax.servlet.http,Servlet就是一种实现了Servlet接口的类,它由Web容器(Tomcat/Jetty等)负责调用并创建,用于接收和响应用户请求。Servlet接口中定义了5个抽象方法:方法功能void init(ServletConfig config)负责Servlet初始化工作,容器在创建好Servlet对象后就调用此方法。该...

java使用servlet画出最简单的验证码一【代码】【图】

前面已经说明验证码存在的意义,接下来本片文章将讲解如何实现一个简单的验证码。在进行表单设计时,验证码的增加可以实现是否为“人为”操作,增加验证码可以防止网站数据库信息的冗杂...验证码作为一个图片,在页面中是“画”出来的,那么它是如何画出来的呢?其中需要几个生成图片的类:{1、BufferedImage图像数据缓冲区2、Graphics绘制图片3、color获取颜色4、Random获取随机数5、ImageIO输出图片}=================代码生成部...

servlet中Session的用法

## (1)什么是Session? 服务器端为了保存用户的状态而创建的一个特殊的对象(即session对象)。 当浏览器第一次访问服务器时,服务器会创建session对象(该 对象有一个唯一的id,一般称之为sessionId),接下来服务器会将 sessionId以cookie的方式发送给浏览器。 当浏览器再次访问服务器时,会将sessionId发送过来,服务器 就可以依据sessionId找到对应的sessinon对象。 ## (2)如何获得session对象? ### 1)...

在servlet中读取配置文件的几种方式【代码】

String path = ServletDemo1.class.getClassLoader().getResource("db.properties").getPath();//在servlet下,用ServletContext的getRealPath方法的得到资源库路径path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");//在servlet下,用ServletContext的getResource方法的得到资源库路径URL url = this.getServletContext().getResource("/WEB-INF/classes/db.properties");path = url.getFile();//...

Servlet小结(2)

jsp和servlet的联系: jsp文件被tomcat加载成java文件,此java文件实现了servlet标准(接口)的子接口,由此追溯到servlet标准. 浏览器访问的是编译好的class,而不是jsp文件 2.在maven中直接用java文件实现网页制作,要获取与浏览器的联系且我们使用的是HTTP协议,所以我们创建的类要继承httpServlet接口,重写里面的方法。常用的是doGet和doPost方法。***:访问Servlet需要通过路径(一个servlet可配置多个访问路径) ...

Servlet(1)【代码】【图】

一、如何开发一个Servlet1、步骤  1)、编写一个java类,继承自HttpServlet类  2)、重写doGet()方法和doPost()方法;  3)、Servlet程序交给tomcat服务运行(serlvet的class文件拷贝到WEB-INF/classes目录,在web.xml文件下配置)<servlet><!-- servlet的内部名称,自定义。尽量有意义 --><servlet-name>Hello</servlet-name><display-name>This is the display name of my J2EE component</display-name><description>This...

spring 整合 servlet【代码】【图】

目的:记录spring整合 servlet过程demo。(企业实际开发中可能很少用到),融会贯通。前言:在学习spring 过程(核心 ioc,aop,插一句 学了spring 才对这个有深刻概念, 在net时候都是直接使用,不得不说 java 还是深刻点)过程中,我们基本上都是在test中测试如图环境:IDEA 但是,开发中是 spring容器 是共享的,其他地方直接调用,这里就涉及到spring和其他的整合,此文servlet 为测试点。 1:新建servlet 过程参考,https://ww...

Servlet线程不安全是如何体现的?【代码】【图】

在这个遍地框架的年代,我相信很多人对于底层的Servlet的深入了解肯定很少,但是大家肯定对于Servlet的线程安全肯定有所涉猎,也都能讲个大概。我也和大家一样,在一次与同事之间的闲聊时,谈到了Servlet(PS:现在的工作中应用的框架就只有spring,其他俩个框架没有用,用的是Servlet。)突然说到线程安全的问题,我不假思索的说句,Servlet之所以线程不安全,是因为Servlet共享了一个实例变量,所以在多线程的环境下容易产生线程不安...

servlet,RMI,webservice之间的区别

最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解。 首先比较下servlet和webservice下 请求: servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。 规定了四个范围:pageContext、request、session、...

servlet 3.0笔记之servlet的动态注册【代码】

servlet3.0相对于servlet2.5最大变化是增加了注解annotation,但是说实话,对servlet 3动态加载servlet的机制有些失望,本来期望着可以在运行时完成对servlet的注册和销毁,但现状是,只能在webapp启动在初始化时进行完成注册,可能是为了安全考虑吧.在Servlet3.0中可以动态注册Servlet,Filter,Listener,在ServletContext对应注册API为:/*** 添加Servlet*/public ServletRegistration.Dynamic addServlet(String servletName,String c...

spring定时器中如何获取servletcontext【代码】

spring定时器中如何获取servletcontext学习了:https://zhidao.baidu.com/question/406212574.html@Scheduled(cron = "0 0 */3 * * ?") // 3小时处理一次publicvoid updateData(){System.out.println("*********************************schedule task");WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();ServletContext context = webApplicationContext.getServletContext();Lis...

httpServletRequest.getCharacterEncoding()取出来是个null,怎么办?

因为浏览器没有把正确的编码方式给服务器端. 目前,许多浏览器在Content-Type头中不会指定字符编码方式,那么容器就会使用"ISO-8859-1"方式解析POST数据,而此时,为了向开发人员提示字符编码方式未指定,容器将会在getCharacterEncoding返回null.如果客户机没有设置字符编码信息,但是request数据又以和缺省编码方式不同的方式编码,就会发生数据破坏。setCharacterEncoding(String enc)方法可以防止这种状况发生,但是必须在解析...

spring的context---ServletContext\ WebApplicationContext---Spring各种上下文的关系详解【图】

既然,ServletContext是由Servlet容器初始化的,那spring的ContextLoaderListener又做了什么初始化呢? 1、servlet容器启动,为应用创建一个“全局上下文环境”:ServletContext 2、容器调用web.xml中配置的contextLoaderListener,初始化WebApplicationContext上下文环境(即IOC容器),加载context-param指定的配置文件信息到IOC容器中。WebApplicationContext在ServletContext中以键值对的形式保存 3、容器初始...

代理Servlet过滤器【代码】

Spring Security借助一些列Servlet 过滤器 来提供 各种 安全性功能。我们只需要在应用中的 web.xml 中配置 一个过滤器。<filter><filter-name>springSecurityFilterChain</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class></filter><filter-mapping><filter-name>springSecurityFilterChain</filter-name><url-pattern>/*</url-pattern></filter-mapping>DelegatingFilterProxy是一...