Java Web基础 - Servlet

Java Web基础学习---Servlet

1.什么是servlet

jsp的前生就是servlet,servlet就是在服务器端上运行的小程序,一个servlet就是一个java类,并且可以通过"请求-响应",编程模型来访问这个驻留在服务器内存里的servlet程序

2. 手工编写第一个Servlet

Servlet层级关系:
Servlet(接口)-->GenericServlet(抽象类,与协议无关的Servlet)-->HttpServlet(抽象类,实现了Http协议的Servlet)-->Custom Servlet(自定义的Servlet)

  1. 继承HttpServlet

    image.png

  2. 重写doGet()或者doPost()方法

    image.png

  3. 在Web.xml中注册Servlet

    image.png

    通常我们使用Myeclipse直接创建Servlet

    image.png

3.servlet执行流程

get方式请求HelloServlet,首先用户在页面点击超链接,服务器会根据这个超链接地址扫描web.xml,找出对应的连接url,再找到对应的name,再根据name找到类的地址,超链接代表get请求,调用do get方法

image.png

4.Servlet与九大内置对象的对应关系:

1、JSP的——out对象 Servlet——response.getWriter
(严格意义上讲这两个类型是不匹配的response.getWriter()获得的是PrintWriter类型的对象,out是JspWriter类型的对象,都可以对浏览器进行输出,但类型是不一样的。
2、JSP——request对象 Servlet——通过service方法中的request参数获取,也可以通过doGet、doPost方法中的参数来获取。
3、JSP——response对象 Servlet——通过service方法中的response参数获取,也可以通过doGet、doPost方法中的参数来获取。
4、JSP——session对象 Servlet——通过传进来的request的getSession()方法来获取。
5、JSP——application对象 Servlet——通过Servlet中的geServletContext()函数来获取。
6、JSP——exception对象 Servlet——通过抛出异常Throwable方式来获取。
7、JSP——page对象 Servlet——对应this对象。
8、JSP——pageContext对象 Servlet——对应PageContext对象。
9、JSP——Config对象 Servlet——通过Servlet中的getServletConfig函数来获取。

5.Servlet路径跳转

一、JSP跳转到Servlet
1、相对路径,如href="servlet/TestServlet"
***注意:如果写成"/servlet/TestServlet"会报错,因为第一个‘/‘表示的是【服务器根目录:http://localhost:8080/
2、绝对路径,通过内置成员变量path实现,如href="<%=path%>/servlet/TestServlet"。
***注意:这里的path得到的是项目根目录,如【http://localhost:8080/Servlet002_GetFormDemo

二、Servlet跳转JSP
1、请求重定向:response.sendRedirect(request.getContextPath()+"/xxx.jsp");这里通过request.getContextPath()方法获得项目根目录,或者通过"../xxx.jsp"取得上层路径得到
2、服务器内部转发:request.getRequestDispatcher("../xxx.jsp").forward(req,resp);
小结:都可以通过../xxx.jsp得到

6.获取初始化参数

在web.xml中配置servlet时,可以配置一些初始化参数,而在servlet中可以通过servletConfig接口提供的方法类取得这些参数,如下图红框中在web.xml文件中初始化参数

通过类里面的init()方法,this.getInitParameter("password")来从xml配置文件中获取类属性password所指定的初始值,如下图中定义username和password两个属性,在init()中获取xml文件中指定的初始值

image.png

7.model2模型

在之前的JSP学习中介绍了Model1模型,即JSP+javabean模型,这里介绍第二种模型Model2模型.
java Web的model2开发模型就是MVC(模型层,视图层,控制层)思想的体现
充当模型层的是JavaBean,充当控制层的是Servlet,充当视图层的是JSP。然后要访问的数据就在数据库层
工作原理:
首先由JSP页面向控制层提交请求,然后由控制层Servlet实例化一个模型层的对象,或者说是调用一些模型层的功能,然后由模型层访问数据库层(读取数据库),模型层得到结果后再反馈给控制层,控制层根据得到的结果选择给用户呈现不同的页面(跳转到不同的JSP页面)。

image.png

作者:飞灰非辉
链接:https://www.jianshu.com/p/a784a5ecf5a2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/yangf428/p/12527152.html

时间: 2024-08-16 16:24:50

Java Web基础 - Servlet的相关文章

Java Web基础 --- Servlet 综述(实践篇)

摘要: 伴随 J2EE 6一起发布的Servlet 3.0规范是Servlet规范历史上最重要的变革之一,它的许多新的特性都极大的简化了 Java Web 应用的开发.本文从一个简单的 Servlet 例子开始,说明了如何开发.配置一个 Servlet.此外,还重点叙述了Servlet的一些新特性,包括Servlet 异步处理.Servlet 非阻塞IO 以及 Servlet 文件上传等内容,以便我们对Servlet有一个更全面的了解. 本篇主要介绍 Servlet 实践方面的知识,更多关注于S

Java Web基础 --- Servlet 综述(理论篇)

摘要: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Servlet 的产生动机,并揭示了 Servlet 的本质以及其在标准MVC模式中所扮演的角色.紧接着,给出了 Servlet族的继承结构,并对族内的接口和抽象类作了进一步的介绍,并给出开发一个Servlet程序的常用做法.在此基础上,我们图文并茂地介绍了 Servlet 的生命周期与执行流程,清晰展现

Java web基础总结四之—— Servlet基础

Java web基础总结四之-- Servlet基础 一.什么是Servlet? 通过名字就能看出来,Servlet 就是在服务器上运行的小程序.Servlet是sun公司(现在已经属于oracle了)实现的一门用于开发动态java web资源的技术.Sun公司在其API中提供了一个servlet接口,如果你想开发一个动态的java web资源,需要完成以下2个步骤:编写一个Java类,实现servlet接口.把开发好的Java类部署到web服务器中. Servlet接口已经有了两个默认的实现类

Java Web基础(HTML、Servlet/JSP)

要成为牛逼的JavaWeb程序员, Java Web的基础非常重要,现在有各种成熟的设计框架例如JQuery.Spring.Struts.Mybatis,将Java Web基础的复杂且通用的逻辑进行封装,减少了程序员的代码量,提高了编码效率,但是这些框架非常不利于我们了解Java Web底层如何运作,甚至不知道HTML(HyperText MarkupLanguage).HTTP(HyperText Transfer Protocol).URL(Uniform Resource Locator)

从Java Web 基础看SSH架构

Java Web开发现在已然成为大型Wed项目的标准,之前一直盲目的使用框架,往往知其然不知其所以然.在经过一段时间的学习与开发,大概掌握了其脉络的基础上,对其做一定总结. 一.Java Web 基础 一个典型的Java Web项目往往包含这些元素:Jsp页面.Servlet.Listener.Filter,以及配置文件web.xml.其中: Jsp和Servlet基本是一回事,主要用来响应客户端的请求.当然Jsp中可以直接嵌入HTML标签,主要还是负责展现. Listener则是负责监听Web

Java Web基础 --- Jsp 综述(上)

摘要: J2EE是一套规范,而Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分.在最初的应用实践中,当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面,这导致Servlet开发效率极为低下.JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑内容与外观相分离,大大简化了表示层的实现,提高了开发效率.本文以JSP的本质是Servlet为主线,结合JSP转译后所得的Servlet,详细探讨了JSP的原理.执行过程.脚本元素.编译指令

Java Web基础 --- Jsp 综述(下)

摘要: JSP脚本中包含九个内置对象,它们都是Servlet-API接口的实例,并且JSP规范对它们进行了默认初始化.本文首先通过一个JSP实例来认识JSP内置对象的实质,紧接着以基于请求/响应架构应用的运行机制为背景,引出JSP/Servlet的通信方式与内置对象的作用域,并对每个内置对象的常见用法进行深入介绍和总结. 一. JSP 九大内置对象概述及相关概念说明 JSP脚本中包含九个内置对象,这九个内置对象都是 Servlet API 接口的实例,并且JSP规范对它们进行了默认初始化(由 J

Java web基础总结六之—— Cookie与Session

Java web基础总结六之-- Cookie与Session 当我们在使用浏览器与服务器进行会话的过程中,就必然会产生一些数据.这个时候就需要对数据进行保存.比如常见的购物网站购物车信息的保存.保存客户端与服务器会话数据的两种技术是Cookie与Session. 一.Cookie 1.什么是Cookie? Cookie是保存在客户端的,以name,value的形式保存.当用户使用浏览器访问服务器产生数据时,服务器程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去

java web基础 --- URL重定向Filter

java web基础 --- URL重定向Filter httpRequest.getRequestDispatcher("/helloWorld").forward(httpRequest, response); 服务器端转发,不改变浏览器端URL地址,常用 httpResponse.sendRedirect(uri); 浏览器端重定向,改变URL在浏览器地址栏 URLOverWriteFilter.java 1 package com.web1.util; 2 3 import j