提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、WEB环境搭建
    • 1.1下载服务器:
    • 1.2安装部署:
    • 1.3Tomcat目录结构
    • 1.4创建web
  • 二、Servlet
    • 2.1 Servlet是什么
    • 2.2 Servlet API
    • 2.3 创建第一个Servle
    • 2.4 Servlet 工作原理
    • 2.5 Servlet 生命周期
    • 2.6 Servlet请求、响应、会话常用
  • 三、JSP
    • 3.1 什么是JSP
    • 3.2 JSP中嵌套java代码
    • 3.3 JSP的内置对象*****
    • 3.4 JSTL
  • 四、Servlet和Filter的区别:
  • 五、MVC
    • 5.1 MVC介绍
    • 5.2MVC与三层架构的区别与联系
  • 六、AJAX
    • 6.1 AJAX的工作原理
  • 总结

前言

通过这一周的学习web中,让我了解到一个web项目中,需要满足以下几个条件:一个Tomcat之类的服务器、熟悉的使用Servlet、Filter、JSP、Listener、知道MVC层次结构、AJAX、文件的上传与下载,让我用文字的形式来对自己的学习做一个小总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、WEB环境搭建

1.1下载服务器:

  • Tomcat官方网站:http://tomcat.apache.org/
  • 目前我使用的是8.5版本,根据不同的需求可以使用对应的版本来适应

1.2安装部署:

  • 直接把Tomcat的压缩包解压到安装目录(目录名不能有中文字符)
  • 启动Tomcat之前还需要配置环境变量
  • JAVA_HOME:jdk的安装目录,Tomcat依赖于JDK,所以必须指定该环境变量。
  • CATALINA_HOME:Tomcat的安装目录,在终端(CMD)启用时,需要配置,不必须
  • 进入tomcat的bin目录,可以直接运行startup.bat启动Tomcat服务,运行shutdown.bat关闭Tomcat服务

1.3Tomcat目录结构

  1. bin:该⽬录下存放的是⼆进制可执⾏⽂件,如果是安装版,那么这个⽬录下会有两个exe⽂件:tomcat9.exe、tomcat9w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗⼝启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat⽂件,startup.bat⽤来启动Tomcat,但需要JDK的配置,shutdown.bat⽤来停⽌Tomcat;
  2. conf:这是⼀个⾮常⾮常重要的⽬录,这个⽬录下有四个最为重要的⽂件:
    server.xml:配置整个服务器信息。例如修改端⼝号,添加虚拟主机等;
    tomcat-users.xml:存储tomcat⽤户的⽂件,这⾥保存的是tomcat的⽤户名及密码,以及⽤户的⻆⾊信息。可以按着该⽂件中的注释信息添加tomcat⽤户,然后就可以在Tomcat主⻚中进⼊Tomcat Manager⻚⾯了;
    web.xml:部署描述符⽂件,这个⽂件中注册了很多MIME类型,即⽂档类型。这些MIME类型是客户端与服务器之间说明⽂档类型的,如⽤户请求⼀个html⽹⻚,那么服务器还会告诉客户端浏览器响应的⽂档是text/html类型的,这就是⼀个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html⽂件了。但如果服务器响应的是⼀个exe⽂件,那么浏览器就不可能显示它,⽽是应该弹出下载窗⼝才对。MIME就是⽤来说明⽂档的内容是什么类型的!
    context.xml:对所有应⽤的统⼀配置,通常我们不会去配置它。
  3. lib:Tomcat的类库,⾥⾯是⼀⼤堆jar⽂件。如果需要添加Tomcat依赖的jar⽂件,可以把它放到这个⽬录中,当然也可以把应⽤依赖的jar⽂件放到这个⽬录中,这个⽬录中的jar所有项⽬都可以共享之,但这样你的应⽤放到其他Tomcat下时就不能再共享这个⽬录下的Jar包了,所以建议只把Tomcat需要的Jar包放到这个⽬录下;
  4. logs:这个⽬录中都是⽇志⽂件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在⽇志⽂件中。
  5. temp:存放Tomcat的临时⽂件,这个⽬录下的东⻄可以在停⽌Tomcat后删除!
  6. webapps:存放web项⽬的⽬录,其中每个⽂件夹都是⼀个项⽬;如果这个⽬录下已经存在了⽬录,那么都是tomcat⾃带的项⽬。其中ROOT是⼀个特殊的项⽬,在地址栏中没有给出项⽬⽬录时,对应的就是ROOT项⽬。http://localhost:8080/examples,进⼊示例项⽬。其中examples就是项⽬名,即⽂件夹的名字。
  7. work:运⾏时⽣成的⽂件,最终运⾏的⽂件都在这⾥。通过webapps中的项⽬⽣成的!可以把这个⽬录下的内容删除,再次运⾏时会⽣再次⽣成work⽬录。当客户端⽤户访问⼀个JSP⽂件时,Tomcat会通过JSP⽣成Java⽂件,然后再编译Java⽂件⽣成class⽂件,⽣成的java和class⽂件都会存放到这个⽬录下。
  8. LICENSE:许可证。
  9. NOTICE:说明⽂件。

1.4创建web

创建web的过程

二、Servlet

2.1 Servlet是什么

  • 是⽤Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,⽣成动态Web内容。狭义的Servlet是指Java语⾔实现的⼀个接⼝,⼴义的Servlet是指任何实现了这个Servlet接⼝的类,⼀般情况下,⼈们将Servlet理解为后者。
  • Servlet运⾏于⽀持Java的应⽤服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝⼤多数情况下Servlet只⽤来扩展基于HTTP协议的Web服务器
  • Servlet的工作模式:
    1、客户端发送请求到服务区
    2、服务器启用并调用Servlet,Servlet根据客户端请求生成响应内容并将其传输给服务区
    3、服务器将响应返回给客户端

2.2 Servlet API

Servlet API 包含以下4个Java包:

1.javax.servlet 其中包含定义servlet和servlet容器之间契约的类和接口。(非常常用)
2.javax.servlet.http 其中包含定义HTTP Servlet 和Servlet容器之间的关系。(非常常用)
3.javax.servlet.annotation 其中包含标注servlet,Filter,Listener的标注。它还为被标注元件定义元数据。(暂时没用过,不清楚)
4.javax.servlet.descriptor,其中包含提供程序化登录Web应用程序的配置信息的类型。(一样,不清楚)

2.3 创建第一个Servle

  1. 创建⼀个类实现Servlet接⼝,重写⽅法。或继承HttpServlet亦可
    init(初始化方法) service(处理get/post请求的方法) destroy(销毁方法)
  2. 在web.xml⽂档中配置映射关系
    XML中配置好这个Servlet的映射关系:
 <servlet> <servlet-name>⾃定义名称</servlet-name> <servlet-class>处理请求的类的完整路径</servlet-class></servlet> <servlet-mapping><!-- mapping 表示映射 --> <servlet-name>⾃定义名称</servlet-name><url-pattern>请求名</url-pattern></servlet-mapping>

标签的执⾏顺序: 请求过来以后->web.xml->servlet-mapping标签中的url-pattern标签中的内容和请求名 进⾏匹配->匹配成功后找对应的servlet-mapping标签中的servlet-name-> 去servlet标签中找和上⼀个servlet-name相同的name值->去找servlet标签中的servlet-class中处理类的完整路径

  1. 启动tomcat,在浏览器输⼊http://localhost:8080/⼯程名/访问服务器的路径

2.4 Servlet 工作原理

  1. Servlet接⼝定义了Servlet与servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载⼊内存,并产⽣Servlet实例和调⽤它具体的⽅法。但是要注意的是,在⼀个应⽤程序中,每种Servlet类型只能有⼀个实例。
  2. ⽤户请求致使Servlet容器调⽤Servlet的Service()⽅法,并传⼊⼀个ServletRequest对象和⼀个ServletResponse对象。ServletRequest对象和ServletResponse对象都是由Servlet容器(例如TomCat)封装好的,并不需要程序员去实现,程序员可以直接使⽤这两个对象。
  3. ServletRequest中封装了当前的Http请求,因此,开发⼈员不必解析和操作原始的Http数据。ServletResponse表示当前⽤户的Http响应,程序员只需直接操作ServletResponse对象就能把响应轻松的发回给⽤户。
  4. 对于每⼀个应⽤程序,Servlet容器还会创建⼀个ServletContext对象。这个对象中封装了上下⽂(应⽤程序)的环境详情。每个应⽤程序只有⼀个ServletContext。每个Servlet对象也都有⼀个封装Servlet配置的ServletConfig对象。

2.5 Servlet 生命周期

当客户端首次发送请求后,由服务器Tomcat去解析请求,根据请求找到对应的Servlet,判断对象是否存在,不存在则创建Servlet实例,调用init()初始化方法,再调取service()方法,判断客户端的请求方法,get则执行doGet()、post、则执行doPost(),处理完之后,作出响应结果给客户端,当用户发送第二次请求时,会判断对象是否存在,不再执行init(),直接执行service()方法,调取doGet/doPost方法,当服务器关闭时,调用destory()销毁

首次----判读(对象)----init()-----service()------service()-----destory()

2.6 Servlet请求、响应、会话常用

1.请求
常用方法:
1)String getParameter(String name) 根据表单组件名称获取提交数据,返回值是String
2)String[ ] getParameterValues(String name) 获取表单组件对应多个值时的请求数据
3)void setCharacterEncoding(String charset) 指定每个请求的编码(针对post请求才起作⽤)
4)RequestDispatcher getRequestDispatcher(String path) --跳转⻚⾯
5)存值 request.setAttribute(“key”,value);
6)取值 request.getAttribute(“key”);

2.响应
常用方法:
void addCookie(Cookie var1);//给这个响应添加⼀个cookie
void sendRedirect(String var1) ;//发送⼀条响应码,将浏览器跳转到指定的位置
PrintWriter getWriter() 获得字符流,通过字符流的write(String s)⽅法可以将字符串设置到response 缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端
setContentType() 设置响应内容的类型

3.会话
常用方法:
void setAttribute(String key,Object value) 以key/value的形式保存对象值,将数据存储在服务器端
String getId() 获取sessionid,当第⼀次登录成功后,session会产⽣⼀个唯⼀的id,浏览器之后访问时如果发现id值还是之前id,那么说明 当前访问的属于同⼀个会话

三、JSP

3.1 什么是JSP

简化Servlet设计,它是在传统的⽹⻚HTML⽂件(.htm,.html)中插⼊Java程序段(Scriptlet)和JSP标记(tag),从⽽形成JSP⽂件,后缀名为(*.jsp)。⽤JSP开发的Web应⽤是跨平台的,既能在Linux下运⾏,也能在其他操作系统上运⾏。
*.html 静态⻚⾯(包含固定的⻚⾯内容)
*.jsp 动态⻚⾯(⻚⾯数据可以动态更新,⽀持嵌套java代码和html代码)

3.2 JSP中嵌套java代码

声明标签 <%!变量或者⽅法声明%>
表达式标签 <%= 表达式%> 在⻚⾯上显示的效果
程序代码标签 <%java代码%> ⻚⾯上动态展示内容

3.3 JSP的内置对象*****

JSP中⼀共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception

  1. request对象
    request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要⽤于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求⽅式以及请求参数等)。request对象的作⽤域为⼀次请求
  2. response对象
    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作⽤域,它只在JSP⻚⾯内有效。所属类型:HttpServletResponse
  3. session对象------ 存储用户的信息,跟踪用户操作的状态 会话期间多次请求也是有效的
    session 对象是由服务器⾃动创建的与⽤户请求相关的对象。服务器为每个⽤户都⽣成⼀个session对象,⽤于保存该⽤户的信息,跟踪⽤户的操作状态。session对象内部使⽤Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,⽽不仅仅局限于字符串类型。HttpSession
  4. application对象--------将信息存储在服务器中,整个程序运行期间
    application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应⽤中都有效。与session对象相⽐,application对象⽣命周期更⻓,类似于系统的“全局变量” ServletContext
  5. out 对象------用于在WEB中输出信息的
    out 对象⽤于在Web浏览器内输出信息,并且管理应⽤服务器上的输出缓冲区。在使⽤ out 对象输出数据时,可以对数据缓冲区进⾏操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
  6. pageContext 对象 -----取得范围内的参数 当前页面
    pageContext 对象的作⽤是取得任何范围的参数,通过它可以获取 JSP⻚⾯的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP⻚⾯中可以直接使⽤ pageContext对象。
  7. config 对象--------取得服务器的配置信息,获得初始化参数
    config 对象的主要作⽤是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() ⽅法可以获取⼀个config对象。当⼀个Servlet 初始化时,容器把某些信息通过config对象传递给这个 Servlet。 开发者可以在web.xml ⽂件中为应⽤程序环境中的Servlet程序和JSP⻚⾯提供初始化参数。
  8. page 对象------jsp本身,相当于this
    page 对象代表JSP本身,只有在JSP⻚⾯内才是合法的。 page隐含对象本质上包含当前 Servlet接⼝引⽤的变量,类似于Java编程中的 this 指针。
  9. exception 对象-----显示异常信息(在错误页面才可以出现)

3.4 JSTL

使用方法
core
1.<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
i18n
2.<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>
sql
3.<%@ taglib prefix=“sql” uri=“http://java.sun.com/jsp/jstl/sql” %>
xml
4.<%@ taglib prefix=“x” uri=“http://java.sun.com/jsp/jstl/xml” %>
functions
5.<%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/function” %>

四、Servlet和Filter的区别:

  1. Filter是一个处理链
    Servlet和服务器以及客户端之间的请求和响应都要通过对应的Filter进行处理才会到达Servlet进行对应的处理
  2. Servlet的工作在于客户端和服务器之间的中间层,可以直接生成请求和响应。
    Filter无法直接生成请求和响应,只能对即将到达Servlet的请求和响应进行一个修改之后再返回Servlet当中。
  3. Servlet的流程比较短,接受到Url的请求之后马上 响应下一个页面
    Filter的流程比较长,处理完一个Filter之后可能还要处理另一个Filter再提交到Servlet进行相应的操作

五、MVC

5.1 MVC介绍

M代表模型 V代表视图 C代表控制器
M:(Model) 模型 : 应⽤程序的核⼼功能,管理这个模块中⽤的数据和值(bean,dao);
V(View )视图: 视图提供模型的展示,管理模型如何显示给⽤户,它是应⽤程序的外观;(jsp/html)
C(Controller)控制器: 对⽤户的输⼊做出反应,管理⽤户和视图的交互,是连接模型和视图的枢纽。(servlet/service)
MVC⽤于将web(UI)层进⾏职责解耦

5.2MVC与三层架构的区别与联系

  1. MVC的三层加起来等于三层架构中的UI层,MVC把三层架构中的UI层进行了分化,降低了耦合,而其中的C层直接与三层架构中的BLL对话
  2. MVC可以是三层中的⼀个表现层框架,属于表现层。三层和mvc可以共存。
  3. 三层是基于业务逻辑来分的,⽽MVC是基于⻚⾯来分的
  4. 三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,⽽是相互协作关系。即使将MVC当作架构模式,也不是分层模式。MVC和三层架构基本没有可⽐性,是应⽤于不同领域的技术。

六、AJAX

AJAX 是与服务器交换数据并更新部分⽹⻚的艺术,在不重新加载整个⻚⾯的情况下,使用JSP会使整体耦合过高,而使用AJAX可以使得模块之间较为独立,更好的提高用户的互动性

6.1 AJAX的工作原理

Ajax的⼯作原理相当于在⽤户和服务器之间加了—个中间层(AJAX引擎),使⽤户操作与服务器响应异步化。并不是所有的⽤户请求都提交给服务器。像—些数据验证和数据处理等都交给Ajax引擎⾃⼰来做,,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。

有一位讲解AJAX很详细:
https://blog.csdn.net/Oriental_/article/details/104863762?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163592377716780261910971%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163592377716780261910971&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-104863762.pc_search_result_hbase_insert&utm_term=AJAX&spm=1018.2226.3001.4187


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

学习完WEB之后的个人总结相关推荐

  1. web前端开发最佳实践_学习前端Web开发的最佳方法

    web前端开发最佳实践 为什么要进行网站开发? (Why web development?) Web development is a field that is not going anywhere ...

  2. python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?

    ---4.30更新---感谢大家支持,点赞都破两千了.给大家整理出来新的资料,需要的小伙伴来自取: Python练手项目视频如下: Python自学基础知识如下: 以下为原文内容: Python 学习 ...

  3. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目

    文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...

  4. 学python后做什么工作好_学习完Python课程后可以做什么工作?

    Python作为人工智能.大数据的首选编程语言,也是进入编程世界的理想选择,已经成为了大家都在追求学习的语言,那么学习Python之后到底可以做什么呢?为您详细的介绍一下. 什么是Python?Pyt ...

  5. 给学习java web新手们的建议和推荐一些书籍

    经常有人问我新手应该看哪些书籍,怎么样才行学好J2EE.其实各人都各人的学习方法,一个人的不一定适合另一个人,我在这里就我的学习路径,给大家列举一下,希望能提供一些参考.(申明:这里我不谈首先学习什么 ...

  6. 深入学习.NET Web Services概念

    介绍 在学完Web Service的课程后,我深深地被它的内容所吸引了,这使得我想在这方面做个总结,本篇文章是介绍.NET下的Web Service的概念的,在写作期间笔者也参考了很多优秀的文章,相信 ...

  7. 学习java web感想_学了近一个月的java web 感想

    对于每天学习的新知识进行一定的总结,是有必要的. 之前我学的每一门知识,我都没有怎么总结自己的问题,也没有怎么去想想该怎样才能学的更好,把知识掌握的更牢固.从现在开始呢,我会每半个月,或每一个月总结总 ...

  8. Kali Linux学习笔记—Web渗透(1)

    Kali Linux学习笔记-WEB渗透 侦察 Httrack 扫描 Nikto vega skipfish w3af Arachni OWASP_ZAP 必须掌握 Burpsuite 必须掌握 实验 ...

  9. 后台是怎么判断管理员用户还是普通用户_深入学习 Java Web(九) :用户管理系统...

    本文转自与博客园一杯凉茶的博客. 前面学习了一大堆,什么JSP,Servlet.jstl.el等等等,大多是一些死的东西,只要会其语法,知道怎么用就行了,所以做了一个小小的只有增删改查的小demo,为 ...

最新文章

  1. Illustrator+FontLab 进行字体设计教程
  2. python hbase_Python操作Hbase
  3. ConcurrentHashMap,一个更快的HashMap
  4. 【51nod - 前缀异或】 对前缀和的理解
  5. Gstreamer的一些基本概念与A/V同步分析
  6. 学java编程语言_对于零基础的人而言 该如何学Java编程语言
  7. find命令进阶用法(一)
  8. 如何有逻辑的,简单清晰的回应问题
  9. nexus3 测试操作
  10. logit回归模型的参数估计过程_计量模型——面板向量自回归模型(PVAR模型)操作全过程...
  11. Servlet是什么?有什么用?
  12. win7网络不显示共享计算机,win7查找不到网络计算机怎么办_win7看不到网络计算机怎么解决-win7之家...
  13. ip中继对接_【关关闯关】AR和Cisco 2900通过SIP IP中继对接案例
  14. 关于SDN理解,老杨都放在这里了
  15. 华为云双十一、双十二系列直播圆满收官,助力企业获数智化发展商机
  16. Analyzing the Linux boot process-分析Linux启动过程
  17. Kal设置启动时输出日志,不显示logo
  18. php只取时间的下士_PHP获取各种起止时间
  19. h5 Canvas矩形的绘制
  20. 用esp8266远程定时开机

热门文章

  1. 1个阿里工程师收到了2462封特殊来信
  2. ELK搭建(三):监控服务器CPU、网络、磁盘、内存指标
  3. 电信架设虚拟专用网络组网方案 url
  4. 成都扬帆际海跨境:跨境电商的问题集锦
  5. ipad和iphone是不是计算机,iPad和iPhone哪个好 iPhone与iPad的区别
  6. 超链接(文本超链接、图片超链接)
  7. 我的十年,一点一滴皆成风景?
  8. HTML 杨辉三角,杨辉三角的实现
  9. python水印倾斜_5行Python代码实现批量打水印技巧,值得收藏
  10. 简约自适应WordPress博客二次元主题Qzdy4.3