学习笔记,仅供参考,有错必究


文章目录

  • JavaWeb
    • 什么是Servlet
    • 举个例子
    • Servlet执行原理
    • Servlet注解
    • Servlet的体系结构
    • Servlet访问路径的配置
    • 注意事项

JavaWeb

什么是Servlet

Servlet就是运行在服务器端的小程序,本质上servlet就是一个实现了servlet接口的类,servlet接口定义了Java类被tomcat识别的规则。

举个例子

首先,我们创建一个JAVAEE项目项目ServletDemo,并在src文件夹下创建com.servlet.demo包,并在其中创建Demo1.html, 定义类实现Servlet接口,并实现接口中的service方法:

package com.servlet.demo;import java.io.IOException;import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;public class Demo1 implements Servlet {@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("destroy");}@Overridepublic ServletConfig getServletConfig() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;}@Overridepublic void init(ServletConfig arg0) throws ServletException {// TODO Auto-generated method stub}@Overridepublic void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("Hello Gui");}}

在WebContent的WEB-INF文件夹下的web.xml里配置Servlet:

<?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>ServletDemo</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!--增加的代码,start--><servlet><servlet-name>demo-01</servlet-name><servlet-class>com.servlet.demo.Demo1</servlet-class></servlet><servlet-mapping><servlet-name>demo-01</servlet-name><url-pattern>/my_demo</url-pattern></servlet-mapping><!--增加的代码,end--></web-app>

运行项目,向http://localhost:8080/ServletDemo/my_demo发起请求,控制台得到如下输出:

Hello Gui

Servlet执行原理

Servlet注解

定义类实现Servlet接口,实现接口中的方法,并在类上使用@WebServlet注解配置。

Servlet的体系结构

  • Servlet接口

  • GenericServlet抽象类

  • 将Servlet的其它方法做了默认的空实现,只将Service方法做了抽象,继承该抽象类只需要实现Service方法即可

  • HttpServlet抽象类

  • 对Http协议的封装简化操作,判断请求方式进行对应处理

  • 继承该抽象类需要实现doGet和doPost方法

Servlet访问路径的配置

一个Servlet可以定义多个访问路径

@WebSevlet({“/s1”,”/s2”,”/s3”})

路径定义规则:

/xxx
/xxx/xxx
/xxx/*
*.do

例如:

package com.servlet.demo;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;@WebServlet({"/d03/*", "/dd003/*"})
public class Demo03 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub
//      super.doPost(req, resp);System.out.println("我是demo03的post");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub
//      super.doGet(req, resp);System.out.println("我是demo03的get");}
}

注意事项

  • Servlet是单例的

  • 多个用户同时访问可能存在线程安全问题

  • 尽量不要在Servlet中定义成员变量,如果定义了,不要在方法中修改

  • 服务器被关闭时Servlet被销毁

  • 先执行Destroy然后Servlet才被销毁

JavaWeb(part1)--servlet相关推荐

  1. javaweb利用servlet与struts2实现可点击刷新的基础图片验证码

    javaweb利用servlet实现图片验证码 验证码是登录验证的技术,可以一定程度防止恶意脚本刷网站,造成服务器压力. 具体实现思想很简单: 首先利用servlet产生一个随机的验证码, 保存在se ...

  2. java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术

    原标题:IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术 Cookie使用HTTPHeader传递数据.Cookie机制定义了两种报头,Set-Cookie报头和Cookie报 ...

  3. html与java接口,JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习--Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  4. javaweb(07) Servlet详解

    javaweb(07) Servlet详解 什么是Servlet 简介 从广义上来讲,Servlet规范是Sun公司制定的一套技术标准,包含与web应用相关的一系列接口,是web应用实现方式的宏观解决 ...

  5. 基于javaweb+JSP+Servlet简单购物车

    基于javaweb+JSP+Servlet简单购物车 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 public ...

  6. 基于javaweb+JSP+Servlet电影票售票管理系统

    基于javaweb+JSP+Servlet电影票售票管理系统 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 } ...

  7. 基于javaweb+JSP+Servlet在线商城鲜花花卉商城(前台、后台)

    基于javaweb+JSP+Servlet在线商城鲜花花卉商城(前台.后台) 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习, ...

  8. 基于javaweb+JSP+Servlet在线商城购物商城服装商城(前台、后台)

    基于javaweb+JSP+Servlet在线商城购物商城服装商城(前台.后台) 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练 ...

  9. 基于javaweb+JSP+Servlet学生成绩管理系统(管理员、教师、学生)

    基于javaweb+JSP+Servlet学生成绩管理系统(管理员.教师.学生) 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练 ...

最新文章

  1. CMD——ping及用其检测网络故障
  2. 从JavaScript数组中获取随机项[重复]
  3. 我的第一个Scrapy 程序 - 爬取当当网信息
  4. Python 面试题:输入一个数组,输出该数组的第二大的数字
  5. LeetCode 20 有效的括号
  6. 铁乐学python_Day42_锁和队列
  7. ResourceManager里面Trackingui需要手动该ip
  8. oracle 11g12c(pdbcdb)系统巡检
  9. Javascript This 机制
  10. 经典排序算法(十八)--Proxmap Sort
  11. C++ list 基础用法合集;list 增减元素 list删除某一个元素 遍历list
  12. php rsa2 pkcs8,关于pkcs8 与 rsa 互转的一个坑
  13. linux程序设计——个人总结
  14. ImageNet数据集编号对应的类别内容
  15. 世界观 - 经验事实和哲学性/概念性事实
  16. oppo手机投屏到电脑上
  17. 万豪集团发布《重塑餐饮业:行业洞察》报告,分享十大新兴趋势
  18. 网页显示QQ在线点击弹出聊天对话框代码
  19. 重启mysql的命令 linux_linux重启mysql命令
  20. 贪婪算法-Greedy algorithm

热门文章

  1. java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object解决
  2. sip gw功能包括_完整SIP/SDP媒体协商概论-SIP/WebRTC概要
  3. android 动态调用apk,通过反射动态加载未安装apk
  4. linux的mutex状态查询命令,如何断言std :: mutex是否已锁定?
  5. optimized mysql_MySQL|MySQL执行计划
  6. Codeforces Round #541 (Div. 2) C.Birthday
  7. Meerkat关闭直播?很好,你努力挣扎的样子成功吸引了我们的注意力
  8. How to create a Python dictionary with double quotes as default quote format?
  9. 巴斯卡三角形 and 數字位移
  10. ansible 部署ssh 偶尔巨慢的解决方法