Servlet
Servlet 是 J2EE 的一个规范 ,他是 Java 语言用于处理客户请求的一种技术。
如何编写小豆子(servlet)
(1). 编写一个类 HelloServlet
(2). 导入 Servlet 接口规范的 jar
(3). 实现 Servlet 接口,编写 Servlet
(4). 部署项目(Servlet)到容器
(5). 配置,你要告诉 Tomcat 你开发了一个 Servlet
a. 你这个 Servlet 的名字
b. 怎么访问
web.xml :配置你自己开发的 Servlet
一个 Servlet ,其实是一个资源(普通文件,图片,软件,视频),它往往对应一个访问的url
Servlet 多线程访问的,尽量不要再 Servlet 中加入成员变量,因为会设计到线程安全的问题。
(6). Servlet 的生命周期的问题
Servlet 是一个类,成员方法,Servlet 的对象是什么时候被创建的,这个对象什么时候被销毁。
默认情况下,在第一个人访问的时候会被创建,后面的人访问不创建。(单例模式)
<load-on-startup>1</load-on-startup> 主动加载。数字代表实例化的顺序
(7). 再看jsp
jsp 就是 Servlet ,只不过他是 Servlet 另外一种的表现形式。
Servlet 更多是代码中嵌入表现层代码。而 jsp 是表现层代码嵌入后台逻辑代码
其实他们并没有本质的区别。这也是为什么说jsp是动态资源,而不是静态资源的原因。
apache-tomcat-8.5.45\work\Catalina\localhost\
这个目录是运行的文件。jsp文件在这里被处理成.java文件. 所以jsp本身是 Servlet
jsp第一次被访问的时候会被web容器翻译成Servlet 提供服务,只翻译一次,所以第一次会慢。
1 import java.io.IOException; 2 import java.io.PrintWriter; 3 import javax.servlet.ServletException; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 8 /** 9 * 第一个Servlet 10 * @author 张泽 11 * 12 */ 13 public class HelloServlet extends HttpServlet { 14 15 //-- 重写 doGet 方法 16 @Override //-- eclipse 写的检验功能 17 protected void doGet(HttpServletRequest request, HttpServletResponse response) 18 throws ServletException, IOException { 19 20 response.setContentType("text/plain"); 21 PrintWriter out = response.getWriter(); 22 out.write("Hello Servlet"); 23 } 24 25 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.4" 3 xmlns="http://java.sun.com/xml/ns/j2ee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 7 8 <!-- 配置 HelloServlet 基本信息 --> 9 <servlet> 10 <servlet-name>HelloServlet</servlet-name> 11 <servlet-class>day03.HelloServlet</servlet-class> 12 </servlet> 13 <!-- 配置 Servlet 的访问路径 --> 14 <servlet-mapping> 15 <servlet-name>HelloServlet</servlet-name> 16 <url-pattern>/hello</url-pattern> 17 </servlet-mapping> 18 19 20 </web-app>
原文地址:https://www.cnblogs.com/zhangze-lifetime/p/11700819.html
- Logistic回归实战篇之预测病马死亡率(一)
- DedeCMS后台500错误一种原因是不支持PHP5.3、5.4及以上版本
- finecms指定从第几篇文章开始调用5条记录,并调用文章所在栏目
- finecms如何调用多个栏目的子栏目
- 从傅立叶变换到Gabor滤波器
- 三个小时学会wordpress模板制作
- The each() function is deprecated报错的解决方法
- 书接上文:薛定谔的猫是如何诞生的?
- docker源码分析(3)---镜像(1)
- k8s源码分析-----kubelet(8)pod管理
- 大会 | DiracNets:无需跳层连接的ResNet
- golang时间戳格式化与解析
- golang-net/http源码分析之http server
- 白话面向智能体编程(Agent Oriented Programmig, AOP)之四
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何在js中创建对象
- 如何理解JavaScript中的this
- 学习Matplotlib看这一份笔记就够了!
- 6个提升效率的pandas小技巧
- 手把手教你用Python+Pyecharts让微博热搜榜动起来
- JS继承
- call,apply,bind 的完全实现和理 解
- js构造函数的理解
- 实战 | PyQt5制作雪球网股票数据爬虫工具
- 别再问我Python怎么操作Word了!
- Vaex :突破pandas,快速分析100GB大数据集
- 【适合收藏】为了多点时间陪女朋友,我向BAT大佬跪求了这15条JS技巧
- Flask框架教程汇总(1)---视图/重定向/传参
- OkHttp请求耗时统计
- Ubuntu 18.04 通过 Docker 快速部署 Smokeping 2.6.11 教程