前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javaEE之JavaWeb知识点(二)

javaEE之JavaWeb知识点(二)

作者头像
软件小生活
发布2021-10-08 16:40:56
4250
发布2021-10-08 16:40:56
举报
文章被收录于专栏:软件小生活软件小生活

1.Servlet

1.1.为何学习Servlet

1.2.Servlet概述

1.2.1.Servlet概念

Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API动态的向客户端输出内容

1.2.2.Servlet快速入门

实现步骤:

1)创建类实现Servlet接口

【思考】:为何这么操作就可以不报错了,并且Ecplise中有servlet接口的提示了呢?

2)覆盖尚未实现的方法

publicclass Demo1Servlet implements Servlet{ publicvoid destroy() { // TODO Auto-generated method stub } public ServletConfig getServletConfig() { // TODO Auto-generated method stub returnnull; } public String getServletInfo() { // TODO Auto-generated method stub returnnull; } publicvoid init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub } publicvoid service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { // TODO Auto-generated method stub }}

在servlet中接口中一共实现了5个方法,我们着重是要思考的service方法!!!!

3)在web.xml进行servlet的配置

<< span="">servlet> << span="">servlet-name>abcservlet-name> << span="">servlet-class>com.yueqian.Demo1Servletservlet-class> servlet> << span="">servlet-mapping> << span="">servlet-name>abcservlet-name> << span="">url-pattern>/demo1Servleturl-pattern> servlet-mapping>

最终效果:

1.2.3.Servlet的请求流程

1.3.Servlet的API详解

publicvoid init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub }publicvoid service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("service.............."); } publicvoid destroy() { // TODO Auto-generated method stub } public ServletConfig getServletConfig() { // TODO Auto-generated method stub returnnull; } public String getServletInfo() { // TODO Auto-generated method stub returnnull; }

不管是init还是service还是其他方法,仔细观察,这些方法都不是被static修饰的,所以必须先实例化创建一个Demo1Servlet 对象,再由这个对象进行调用!

那么再思考,我们从来都没有去实例化过这个对象,那这个对象是怎么创建的呢?

也就是说由服务器tomcat帮我们创建的对象,由服务器创建这个对象,调用init,调用service方法!

1.3.1.init方法

1)init方法何时执行?

Servlet创建的时候调用

2)service方法何时执行?

每次请求都会执行

3)destroy方法何时执行?

Servlet销毁的时候执行的

1.3.2.servlet的生命周期

1)servlet何时创建

默认第一次访问的时候创建

2)servlet何时销毁

服务器关闭servlet就销毁了

3)每次访问必然执行的方法

service

1.3.3.生命周期2个方法参数

1)init

publicvoid init(ServletConfig config) throws ServletException { System.out.println("init........"); }

ServletConfig :代表的是该servlet对象的配置信息

2)destroy 关闭服务器

3)service

publicvoid service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("service.............."); }

ServletRequest :代表请求 认为ServletRequest 内部封装的是 http请求的信息

ServletResponse :代表响应 认为要封装的是响应的信息

1.4.Servlet的配置

1.4.1.基本配置

—servlet类的配置--> << span="">servlet> << span="">servlet-name>abcservlet-name> << span="">servlet-class>com.yueqian.Demo1Servletservlet-class> << span="">init-param> << span="">param-name>jdbcparam-name> << span="">param-value>jdbc:mysql://localhost:3306param-value> init-param> servlet> —servlet的虚拟路径配置--> << span="">servlet-mapping> << span="">servlet-name>abcservlet-name> << span="">url-pattern>/demo1Servleturl-pattern> servlet-mapping>

其中url-pattern的配置方式:

1)完全匹配 访问的资源与配置的资源完全相同才能访问到

2)目录匹配 格式:/虚拟的目录../* *代表任意

3)扩展名匹配 格式:*.扩展名

注意:第二种与第三种不要混用 /aaa/bbb/*.abcd !!

1.4.2. 服务器启动实例化Servlet配置

Servlet的何时创建:默认第一次访问时创建

为什么是默认?

当在servlet的配置时 加上一个配置servlet对象在服务器启动 时就创建

<< span="">servlet> << span="">servlet-name>abcservlet-name> << span="">servlet-class>com.yueqian.Demo1Servletservlet-class> << span="">init-param> << span="">param-name>jdbcparam-name> << span="">param-value>jdbc:mysql://localhost:3306param-value> init-param> << span="">load-on-startup>3load-on-startup> servlet> << span="">servlet-mapping> << span="">servlet-name>abcservlet-name> << span="">url-pattern>*.abcdurl-pattern> servlet-mapping>

1.4.3.缺省的servlet(默认的servlet)

可以将url-pattern配置一个/,代表该servlet是缺省的servlet

什么是缺省的servlet?

当你访问资源地址所有的servlet都不匹配时 , 缺省的servlet负责处理

1.4.4.欢迎页

http://localhost:8080/demo1/

<< span="">welcome-file-list> << span="">welcome-file>index.htmlwelcome-file> << span="">welcome-file>index.htmwelcome-file> << span="">welcome-file>index.jspwelcome-file> << span="">welcome-file>default.htmlwelcome-file> << span="">welcome-file>default.htmwelcome-file> << span="">welcome-file>default.jspwelcome-file> welcome-file-list>

因为,在当前的web应用程序中,有配置请求页面的顺序!!!

默认从上到下依次去寻找!!

如果将应用程序的web.xml中的配置删除掉,发现还是会按照顺序访问!

1.5.HttpServlet

1.5.1.操作步骤:

1)新建选择servlet模板

2.填写servlet名称

3.修改url-parten

4.选择servlet中要实现的方法

1.5.2.servlet模板分析

1.原来我们是定义一个类去实现servlet接口,这里为何是继承呢?

2.之前我们都是覆盖的是service方法,这里为何是doGet和doPost方法呢?

按照我们以前以前学习的面向对象的原则,儿子如果没有,应该找爹的方法,所以就找httpServlet

doPost中为何调用doGet呢?

1.6.ServletContext对象

1.6.1.ServletContext对象概念

ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象内部封装是该web应用的信息!

问题:

一个web应用有几个servlet对象?----多个

ServletContext对象一个web应用只有一个

1.6.2.如何获取ServletContext对象

1)ServletContext servletContext = config.getServletContext();

2)ServletContext servletContext = this.getServletContext();

思考:为何使用this就可以调用这个方法呢?

在它爹(HttpServlet)中没有这个方法

再去找爷爷

1.6.3.ServletContext作用

1.6.3.1.获得web应用全局的初始化参数

web.xml中配置初始化参数

通过context对象获得参数

1.6.3.2.获得web应用中任何资源的绝对路径(重要 重要 重要)

根据web应用的相对地址获取资源的绝对路径!

方法:String path = context.getRealPath(相对于该web应用的相对地址);

WebContent中内容会被copy发布到web应用内部中去!

获取不到的,因为发布不过去

1.6.3.3.获取当前JavaWeb项目的名称

ServletContext servletContext = this.getServletContext();servletContext.getContextPath()

1.6.3.4.ServletContext是一个域对象(重要 重要 重要)

什么是域对象?什么是域?

区域

广州市 域 范围

存储数据的区域就是域对象

ServletContext域对象的作用范围:整个web应(所有的web资源都可以随意向 servletcontext域中存取数据,数据可以共享)

域对象的通用的方法:

setAtrribute(String name,Object obj);

getAttribute(String name);

removeAttribute(String name);

1.7.练习实战(自己练习)

1.71.用户登录案例

1.7.2.用户注册案例

Jdbc

数据库

Servlet

String str = request.getParameter("username");

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Servlet
    • 1.1.为何学习Servlet
      • 1.2.Servlet概述
        • 1.2.1.Servlet概念
        • 1.2.2.Servlet快速入门
        • 1.2.3.Servlet的请求流程
      • 1.3.Servlet的API详解
        • 1.3.1.init方法
        • 1.3.2.servlet的生命周期
        • 1.3.3.生命周期2个方法参数
      • 1.4.Servlet的配置
        • 1.4.1.基本配置
        • 1.4.2. 服务器启动实例化Servlet配置
        • 1.4.3.缺省的servlet(默认的servlet)
        • 1.5.1.操作步骤:
        • 1.5.2.servlet模板分析
      • 1.6.ServletContext对象
        • 1.6.1.ServletContext对象概念
        • 1.6.2.如何获取ServletContext对象
        • 1.6.3.ServletContext作用
    • 1.7.练习实战(自己练习)
      • 1.71.用户登录案例
        • 1.7.2.用户注册案例
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档