java:Servlet(Create,LifeCycle,ServletWeb.xml文件的配置,交互式,Tomcat文件分析,单例安全模式)
- 客户端发送请求至服务器端;
- 服务器将请求信息发送至 Servlet;
- Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
- 服务器将响应返回给客户端。


- package cn.zzsxt.lee.servlet;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- * @description servlet也是一个普通的Java类 继承了HttpServlet就变的不普通 servlet是什么?-->Java类
- * 用于在http协议中,进行数据的传递 干什么用的? 处理客户端发送的请求
- * @author Seven Lee
- * @date 2017年7月17日下午4:20:30
- *
- * servlet生命周期:(单例)(!!重要)
- * 1.加载并实例化(创建servlet对象)
- * 2.初始化(init)(只会被调用一次,第一次访问servlet的时候调用)
- * 3.处理客户端的请求并响应(service)
- * 4.自动销毁(destroy)(也只会被调用一次,在正常关闭以后会被调用)
- *
- */
- public class FirstServlet extends HttpServlet {
- // 连接数据库,进行把用户的信息存储入数据,并返回用户是否存储成功
- @Override
- public void init() throws ServletException {
- // init方法只会被调用一次,第一此访问servlet的时候会被调用
- System.out.println("我是init方法,我被调用了");
- }
- @Override
- protected void service(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // service方法每发送一次请求就被调用一次
- // request-->请求:处理客户端发送到服务器的请求
- // response-->响应:处理完请求以后,向客户端进行响应(404, 500...),如果成功200 OK
- System.out.println("我是service方法,我被调用了");
- // 设置编码格式
- request.getRequestDispatcher("index.jsp").forward(request, response);
- }
- @Override
- public void destroy() {
- // destroy方法也只会被调用一次
- // 服务器关闭的时候,客户端关闭连接的时候,处理完所有客户端请求的时候(正常关闭),非正常关闭的情况下是不被调用的
- System.out.println("我是destroy方法,我被调用了");
- }
- }
配置web.xml文档:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- id="WebApp_ID" version="3.0">
- <display-name>first_servlet</display-name>
- <servlet>
- <servlet-name>servlet</servlet-name><!-- servlet-name是随意规定的,没有任何限制,命名规则同样遵循Java的驼峰命名规则 -->
- <servlet-class>cn.zzsxt.lee.servlet.FirstServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>servlet</servlet-name><!-- servlet-mapping中servlet-name要和<servlet>中的一模一样 -->
- <!-- <url-pattern>/reg</url-pattern> --><!-- 就是访问servlet的路径,只有通过这个路径才能访问servlet -->
- <url-pattern>*.aaa</url-pattern><!-- 以aaa结尾的方式进行匹配servlet -->
- <!-- <url-pattern>/ccc/*</url-pattern> --><!-- 以ccc开头来匹配servlet -->
- <url-pattern>/*</url-pattern><!-- 所有的路径都要被servlet进行拦截 -->
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
localhost:8080/项目名:查看index.jsp
localhost:8080/项目名/reg(各种访问方式) :通过访问网页对将数据传送到后端控制台
3.Servlet Life Cycle:


- package cn.zzsxt.lee.servlet.single;
- import java.util.UUID;
- /**
- * @description 懒汉模式 特点:当外部调用getInstance方法时,才会被创建对象
- * @author Seven Lee
- * @date 2017年7月19日上午9:41:34
- *
- */
- public class LazySingleton extends Single {
- private static LazySingleton lazySingleton = null;
- // 首先要把构造方法私有化
- private LazySingleton() {
- System.out.println("我是懒汉模式,我被创建了" + UUID.randomUUID());
- }
- // 给外部提供获得对象的方法
- public static LazySingleton getInstance() {
- // double check
- if (lazySingleton == null) {// 十个线程看到的对象都为空
- synchronized (LazySingleton.class) {// 在这被锁拦住了
- if (lazySingleton == null) {// 第一个线程进来了,看到lazySingleton仍然为空
- lazySingleton = new LazySingleton();// 就开始创建对象
- init("系统加载的配置");
- }
- }
- }
- return lazySingleton;
- }
- @Override
- protected void service(String method) throws Exception {
- // 开始处理请求
- System.out.println(Thread.currentThread().getId());
- }
- @Override
- protected void destroy() {
- System.out.println("请开始你的遗憾");
- // 调用gc,给Java虚拟机回应一下,说我快不行了,你赶紧收拾收拾跑路吧
- }
- }
java:Servlet(Create,LifeCycle,ServletWeb.xml文件的配置,交互式,Tomcat文件分析,单例安全模式)的更多相关文章
- 关于web.xml的welcome-file-list 配置与tomcat的关系:
关于web.xml的welcome-file-list 配置与tomcat的关系: 2018年04月18日 10:17:13 守望dfdfdf 阅读数:377 标签: welcome-file-lis ...
- web.xml文件中配置<mime-mapping>下载文件类型
TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不必认为是浏览器的问题,大多数浏览器应该不会死皮赖脸地把二进制文件当作文本打开,一 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
- 《Effective Java》 读书笔记(三) 使用私有构造方法或枚举实现单例类
1.单例类到现在为止算是比较熟悉的一种设计模式了,最开始写单例模式是在C#里面,想要自己实现一个单例类,代码如下: public class Instance { private static rea ...
- Java Servlet的配置文件web.xml配置内容和具体含义
文件名:“SimpleServlet.java” package cn.mldn.lxh.servlet ;//定义包 import java.io.* ; // HttpServlet属于javax ...
- eclipse : java项目中的web.xml( Deployment Descriptor 部署描述文件 )配置说明
context-param.listener.filter.servlet 首先可以肯定的是,加载顺序与它们在 web.xml 配置文件中的先后顺序无关.即不会因为 filter 写在 listen ...
- web.xml文件中配置mime下载文件类型(转)
转自:http://5aijava.iteye.com/blog/166600 TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不 ...
- 前端上传图片回显并用base64编码,后端做解码储存,存储图片路径在.properties文件中配置(以上传身份证照片为例)
前端页面:<form id="kycForm" enctype="multipart/form-data"> <input type=&quo ...
- Java基础 static限定符的使用 以及【 static实现的 singleton(单例)设计模式】
static实现的 singleton(单例)设计模式 /** static实现的 singleton设计模式 , 使得一个类只能够创建一个static对象 */ 模板设计结构: package Co ...
随机推荐
- java7连接数据库 网页 添加学生信息测试
石家庄铁道大学2019年秋季 2018 级课堂测试试卷(六)(10分) 课程名称: JAVA语言程序设计 任课教师: 王建民 考试时间: 150 分钟 一. 考试要求: 1登录账号 ...
- [转帖]微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient
转帖--微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient Posted on -- : eaglet 阅读() 评论() 编辑 收藏 原贴 http://www ...
- jumpserver部署0.3版本 =====( ̄▽ ̄*)b
jumpserver概述 跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点:没有实现对运维人员操作行为的控制和 ...
- C++类模板——博客链接
https://www.jianshu.com/p/70ca94872418 C++类模板,你看我就够了 值得学习~
- Python CGI编程Ⅷ
通过CGI程序传递checkbox数据 checkbox用于提交一个或者多个选项数据,HTML代码如下: 以下为 checkbox.py 文件的代码: 修改 checkbox.py 权限: 通过CGI ...
- 几种最常见的js array操作方法及示例
1. 序言 操作array可谓前端最基础的工作,无论是从接口中取的数据,还是筛选数据,或者是添加按钮权限等等操作,array都是绕不开的东西.array的操作很多,初学者十分容易搞混,不是很熟练的情况 ...
- DOM 修改与DOM元素
㈠HTML DOM - 修改 修改 HTML = 改变元素.属性.样式和事件. ①创建 HTML 内容 改变元素内容的最简单的方法是使用 innerHTML 属性. 下面的例子改变一个 <p ...
- Flyway Validate failed: Migration checksum mismatch for migration version 1.0.0.01 错误
在运行系统的时候出现错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ...
- 【PKUSC2019】线弦图【计数】【树形DP】【分治FFT】
Description 定义线图为把无向图的边变成点,新图中点与点之间右边当且仅当它们对应的边在原图中有公共点,这样得到的图. 定义弦图为不存在一个长度大于3的纯环,纯环的定义是在环上任取两个不相邻的 ...
- R & and &&
https://blog.csdn.net/jining11/article/details/84933110 和C中的&不用,不要用&&,一般情况都是用&表示并且