| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java第二阶段第3周 -> 正文阅读 |
|
[Java知识库]Java第二阶段第3周 |
1.使用Tomcat服务器的好处tomcat是轻量级的web应用服务器, 他的好处主要有: (1)处理servlet的映射路径,解析Servlet (2)处理Servlet的生命周期 (3)Tomcat服务器是开源的,底层是一种针对ip监听的TCP,有"数据共享"功能 注意:Tomcat是web容器,内置了三大组件:<servlet: (重点)? filter:过滤器 (重点)? Listener:监听器> 2.Servlet????????Servlet (Servler Applet),是使用 Java 语言编写的运行在服务器端的程序,用于处理服务器端应 用程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内 容.通常来说,Servlet 是指所有实现了 Servlet 接口的类,Servlet 主要用于处理客户端传来的 HTTP 请求,并返回一个响应,它能够处理的请求有 doGet () 和 doPost () 等,Servlet 由 Servlet 容器提 供,Servlet 容器是指提供了 Servlet 功能的服务器(如Tomcat). Servlet本质: ?必须运行在web容器上(tomcat) ? ? ? ? <1>狭义上的Servlet就是接口---里面规定Servlet的生命周期 ????????<2>广义上的servlet就是类,这个类(具体类)最终要实现接口Servlet 2.1使用步骤1.导包? <servlet-api.jar(tomcat里面内置的) ---tomcat解压目录的lib中> 2.编写servlet程序 自定义一个类,继承自HttpServlet,重写 doGet()/doPost() 3.配置Servlet? <Web项目下的WEB-INF ,网站的配置文件 web.xml>
2.2servlet执行原理1.解析当前项目下WEB-INF的配置文本web.xml 2.通过映射信息的名称获取他的配置信息名称 3.通过反射获取servlet字节码文件对象 4.创建当前类实例 5.调用方法 注意:servlet为单例. 2.3servlet生命周期web容器--->tomcat服务器完了对象的创建,访问servlet的时候创建,就创建一次,所以是单例的. 1.init()方法:? 初始化方法只执行一次 2.service方法:? 业务方法的入口,由于不断的发送get/Post请求,需要调用service方法多次 3.destroy()方法:? servlet的销毁方法,servlet正常关闭时执行此方法 2.4servlet配置对象ServletConfig接口Servlet的对象: ServletConfig代表每一个Servlet的配置对象,可以获取当前Servlet基本配置信息和 当前这个servlet里面配置的初始化参数等. 1.获取ServletConfig对象 public ServletConfig getServletConfig();? ?<this.getServletConfig()> 2.使用ServletConfig对象获取Servlet基本配置信息 (1)获取servlet配置名称:??config.getServletName(); (2)获取初始化参数<init-param> <1>public String getInitParameter(String name):??一次只能获取一个初始化参数;通过初始化的参数 名称获取它的参数值 <2>public Enumeration<String> getInitParameterNames();??将所有的servlet的初始化参数名称都 可以获取 2.5Servlet全局对象ServletContext接口注意:每个工程下只有一个全局对象 1.获取上下文路径 每一个web项目---web application都有自己的上下文(以/字符开头但不以/结尾);?web项目下书写路 径的时候,将上下文路径带上,永远不会出现找不到页面404错误. 方法1: <1>获取ServletContext对象 this.getServletContext(); <2>获取?Web 应用程序的上下文路径 public String getContextPath() 方法2: 发送请求到服务器的时候,所有的请求参数都封装在了HttpServletRequest 利用HttpServletRequest对象的方法:? public String getContextPath() request.getContextPath(); 2.可以获取全局参数<context-param> <1>获取ServletContext对象 this.getServletContext(); <2>获取全局参数 public String getInitParameter(String name):通过全局参数的名称获取参数值 ?public java.util.Enumeration<E> getInitParameterNames():获取所有的全局参数名称 3.请求转发?(后台跳转前台页面 html/jsp....) 请求转发是一种在服务器内部的资源跳转方式 (1)使用步骤 <1>获取全局对象 ServletContext <2>通过全局对象获取请求转发器对象 public RequestDispatcher getRequestDispatcher(String path) <3>通过RequestDispatcher对象进行转发 public void forward(ServletRequest request, ServletResponse response): 简化格式:
(2)请求转发的特点 <1>地址栏没有变化,始终访问后台地址 <2>整个请求转发的过程中,两次请求request是相等的 <3>WEB-INF下的资源文件直接访问不了,但是请求转发可以访问 <4>请求转发只能访问当前项目下资源文件,不能跨工程访问外部资源 4.作为 "域对象"共享数据,在不同的servlet之间进行数据共享 域对象:一个有作用范围的对象,可以在范围内共享数据 (1)四个域对象的范围 PageContext类? ? ?pagecontext对象? ??仅仅在某一个jsp页面中有效 HttpServletRequest接口? ? ? ??request对象? ??在一次请求中有效 HttpSession接口? ? ??session对象? ? ??在一次会话中有效 ServletContext接口? ? ?全局对象context对象/application? ? 整个web application中有效(整个工程下) (2)通用方法 <1>给当前servletContext域对象中设置参数,将任何对象绑定在指定的属性上 public void setAttribute(String name, Object object) <2>通过绑定的属性获取内容 public Object getAttribute(String name) <3>将指定属性中绑定内容从域对象中删除 public void removeAttribute(String name) (2)使用步骤 <1>访问当前Servlet,获取全局对象 <2>存储数据 public void setAttribute(String name, Object object) <3>从当前全局对象中(域对象),通过绑定的属性获取内容 public Object getAttribute(String name) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:34:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |