当前位置:   article > 正文

javaWeb核心内容总结_javaweb 课程主要 内容

javaweb 课程主要 内容

1. javaWeb概念

所有通过 Java 语言编写可以通过浏览器访问的程序的总称,JavaWeb 是基于请求和响应来开发的,请求是指客户端给服务器发送数据,响应是指服务器给客户端回传数据。

2. Web应用服务器tomcat

2.1 如何在tomcat中部署项目

在一个tomcat服务中部署多个web工程,在一台主机启动多个tomcat服务

2.2 Tomcat运行原理,使用IDEA整合tomcat

Tomcat运行原理,使用IDEA整合tomcat,创建并编译部署动态web工程

2.3 tomcat访问地址相关概念

主机的ip地址,域名与环回地址

3. 前端知识

3.1 前端三件套

javaWeb前端三件套 html css javascript
对于后端学习者,不要求精通,要求能够通过web层的前后联调,
把静态html页面转化成动态页面,即要求掌握html、js 的基础知识。

3.2 js开源库jQuery

浅谈js开源库jQuery
jQuery是一款几乎被淘汰的js开源库,目前更多使用vue框架,新手不建议深入学习。
jQuery的主要用途为:操作dom对象(增删改查)、处理js事件、封装ajax请求等

3.3 动态页面jsp与 EL表达式、JSTL标签库

浅谈一款古老技术 动态页面jsp
Jsp作为一个后端渲染技术,已经不符合现在前后端严格分离的主流设计思路。“Jsp是严重过时的技术,行将进入坟墓。”

那么jsp被什么替代了?
要么前后端分离,后端只需要返回JSON给前端,页面完全不需要后端管。
要么就是用常见的模板引擎『freemarker』『Thymeleaf』『Velocity』,用法其实跟『JSP』差不太多,只是它们的性能会更好。

但是jsp目前还没在业界彻底消失,尤其是一些老项目的维护。无需深入学习,了解即可。

jsp的表达式脚本可用EL表达式替换;代码脚本可用JSTL标签库替换。

4. 计网基础

4.0 网络编程基础

计算机网络五层协议体系结构

4.1 HTTP协议

HTTP协议超级详解

HTTP协议格式
请求格式:请求行(请求方式、URL、协议版本)、请求头(头部字段名:值)、请求体(key=value&key=value)
发起请求时,请求头header携带了一些有用的键值对,存在request域中,例如发起请求的网页地址referer、主机和端口号host等

响应格式:响应行(协议版本、状态码、状态码描述)、响应头(头部字段名:值)、响应体(响应正文,即回传给客户端的数据)设置resp.setContentType("text/html;charset=UTF-8");

URL:
协议://server name: server port/工程路径/文件路径?参数name=value

常用的四种请求方式:GET(只读) 、POST(可读,可新增)、PUT(修改)、DELETE(删除)

GET与POST的区别:1、GET和POST本质上都是TCP连接,但是提供的服务不同,get只读,post既可读又可新增服务器资源。2、GET把请求参数放在URL中,POST通过请求体传递参数。3.因为浏览器规定URL有最大长度,因此GET请求在URL中传送的参数是有长度限制的,POST没有长度限制。4.GET的参数直接显示在浏览器地址栏,不如POST安全。

响应码:
200 表示请求成功
302 表示请求重定向redirect
404 表示请求服务器已经收到了,但是你要的数据不存在(通常为请求地址出错)
500 表示服务器已经收到请求,但是服务器内部错误(通常是代码出错)

Cookie和Session的区别和联系:

5. javaweb核心组件

5.1 servlet

Servlet就是java应用中使用web时的各种规范,统一接口。

其他内部实现由厂商自己实现,tomcat jetty jboss等等应运而生。
Servlet的主要功能是接受请求,返回响应

通过web.xml中的servlet标签,通过配置Servlet程序的全类名,设置Servlet在服务器中的映射url,即浏览器可以访问Servlet程序的url。
注:在服务器中/斜杠被解析到当前工程路径。即http://serverName:port/工程路径(ContextPath)/

url地址到Servlet程序的访问:(url: http://ip:port/ContextPath/source)
请求url地址->本机解析url->通过ip地址定位服务器(localhost就是本机)、通过8080端口号定位tomcat容器、通过工程路径定位到tomcat上部署的工程->根据source路径查找工程的web.xml中注册的url-pattern,找到对应的Servlet全类名->执行Servlet程序,返回结果。

继承Servlet,需要自定义doGet doPost方法,且需要从HttpServletRequest中获取请求方式,自己分发请求;
继承HttpServlet,只需重写父类的doGet doPost方法,无需自己分发请求。

ServletConfig类,Servlet程序的配置信息类,由tomcat在Servlet程序第一次访问时创建。

作用:可以获取Servlet程序的别名,servlet-name; 获取初始化参数init-param;获取ServletContext对象。

ServletContext类,表示Servlet上下文。

一个web工程,只有一个ServletContext对象,在web工程启动时创建,在Web工程停止时销毁。
ServletContext对象是一个全局域对象,可以用来存取数据。(作用域太大,浪费内存)
ServletContext context = getServletConfig().getServletContext();
作用:获取web.xml中配置的context-param参数,它属于整个web工程context.getInitParameter(“key”);获取工程路径context.getContextPath() 格式为:/工程路径;获取工程部署后在服务器硬盘上的绝对路径 ;像 Map 一样存取数据。

HttpServletRequest类:

每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。 然后传递到 doGet 和 doPost方法中给我们使用。
我们可以通过 HttpServletRequest 对象,获取到所有的请求信息。
HttpServletRequest类的常用方法
getRequestURL() 获取请求的统一资源定位符(绝对路径)
getRemoteHost() 获取客户端的 ip 地址
getHeader() 获取请求头
getParameter(“name”) 获取请求的参数,提交表单中input标签的name属性。
getParameterValues() 获取请求的参数(一个请求参数有多个值的时候使用)
getMethod() 获取请求的方式 GET 或 POST
setAttribute(key, value)设置request域数据
getAttribute(key) 获取域数据 。注意区分请求参数和request域数据。
getRequestDispatcher().forword(req,resp) 请求转发是服务器收到请求后,从一次资源跳转到另一个资源。
请求转发的特点:是同一次请求,共享request域参数。
请求转发必须要以斜杠打头,/ 斜杠表示地址为:http://ip:port/工程名/

解决请求中文乱码问题req.setCharacterEncoding("UTF-8");

路径问题:实际开发中,通常使用绝对路径。
web中/斜杠的意义:

在 web 中 / 斜杠 是一种绝对路径。
/ 斜杠 如果被浏览器解析,得到的地址是:http://ip:port/
/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径
注:请求重定向的/是被浏览器解析的。response.sendRediect(“/”); 把斜杠发送给浏览器解析。得到 http://ip:port/

HttpServletResponse类:

每次请求进来,Tomcat 服务器都会创建一个 Response 对象传递给 Servlet 程序去使用。HttpServletResponse 表示所有响应的信息, 我们如果需要设置返回给客户端的信息,都可以通过 HttpServletResponse 对象来进行设置。

两个方法:两个流同时只能使用一个。
字节流 getOutputStream(); 常用于下载(传递二进制数据)
字符流 getWriter(); 常用于回传字符串(常用)resp.getWriter().write(“回传内容”)

请求重定向:是指客户端给服务器发请求,然后服务器返回给客户端一个新地址,客户端再去访问新地址。resp.sendRedirect("url");
特点:浏览器地址栏发生变化,属于两次请求,不共享request域的数据。

解决响应中文乱码resp.setContentType("text/html; charset=UTF-8");

5.2 filter

Filter 过滤器它的作用是:拦截请求,过滤响应。

Filter可认为是Servlet的一种“变种”,实现javax.servlet.filter接口。
它主要用于对用户请求(HttpServletRequest)进行预处理, 也可以对服务器响应(HttpServletResponse)进行后处理,是个典型的处理链。

Filter 过滤器的使用步骤
1、编写一个类去实现 Filter 接口
2、实现过滤方法 doFilter()
3、到 web.xml 中去配置 Filter 的拦截路径(url-pattern / servlet-name等)

完整的流程是
请求先进入doFilter,Filter对用户请求进行预处理,(filterChain以上部分)
调用filterChain.doFilter(servletRequest,servletResponse);
接着将请求交给Servlet进行处理并生成响应,
最后Filter再对服务器响应进行后处理。(filterChain以下部分)

Filter接口中有一个doFilter方法,当开发人员编写好Filter类实现doFilter方法,并配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前(服务器内部对资源的访问机制决定的),都会先调用一下filter的doFilter方法。

Filter的生命周期和Servlet一样,Filter的创建和销毁也是由WEB服务器负责。
不过与Servlet区别的是,它是:
1>在应用启动的时候就进行装载Filter类
2>容器创建好Filter对象实例后,调用init()方法。接着被Web容器保存进应用级的集合容器中
3>当用户访问的资源正好被Filter的url-pattern拦截时,容器会取出Filter类调用doFilter方法,下次或多次访问被拦截的资源时,Web容器会直接取出指定Filter对象实例调用doFilter方法。

Filter不仅可以通过url-pattern来指定拦截哪些url匹配的资源,而且还可以通过servlet-name来指定拦截哪个指定的servlet。

FilterConfig 类见名知义,它是 Filter 过滤器的配置文件类。

Tomcat 每次创建 Filter 的时候,也会同时创建一个 FilterConfig 类,这里包含了 Filter 配置文件的配置信息。
FilterConfig 类的作用是获取 filter 过滤器的配置内容:
1、获取 Filter 的名称 filter-name 的内容 filterConfig.getFilterName()
2、获取在 Filter 中配置的 init-param 初始化参数 filterConfig.getInitParameter(“name”)
3、获取 ServletContext 对象filterConfig.getServletContext()

FilterChain 过滤器链

FilterChain 就是过滤器链(多个过滤器如何一起工作)
FilterChain.doFilter()方法的作用:1、如果有Filter,执行下一个Filter过滤器;2、如果没有Filter,执行目标资源。
多个Filter执行过滤任务时,执行的顺序是由web.xml中的配置顺序决定的。
特点:
所有filter和目标资源默认在同一个线程中执行;多个Filter共同执行时,共享request对象。

Filter的拦截路径:

精确匹配 /target.jsp 以上配置的路径,表示请求地址必须为:http://ip:port/工程路径/target.jsp
目录匹配 /admin/ 以上配置的路径,表示请求地址必须为:http://ip:port/工程路径/admin/
后缀名匹配 *.html 以上配置的路径,表示请求地址必须以.html 结尾才会拦截到

Filter 过滤器它只关心请求的地址是否匹配,不关心请求的资源是否存在!

5.3 listener

监听器的作用是,监听某种事物的变化。

然后通过回调函数,反馈给程序。
用于监听web常见对象HttpServletRequest, HttpSession, ServletContext等。

例如:ServletContextListener 它可以监听 ServletContext 对象的创建和销毁。
监听到创建和销毁之后都会分别调用 ServletContextListener 监听器的方法反馈。

如何使用 ServletContextListener 监听器监听 ServletContext 对象。

使用步骤如下:
1、编写一个类去实现 ServletContextListener
2、实现其两个回调方法
public void contextInitialized(ServletContextEvent sce);
public void contextDestroyed(ServletContextEvent sce);
3、到 web.xml 中去配置监听器

作用:监听ServletContext对象的创建和销毁(也即监听整个web工程)

5.4JavaWeb核心组件的加载顺序

tomcat容器启动时,会先加载Listener类,再加载Filter\FilterConfig类,然后加载ServletContext对象。特定的Servlet及ServletConfig对象是在其被访问时才加载的。

启动web工程
当Servlet 容器启动Web 应用时先调用ServletContextListener的init方法。在调用完该方法之后,容器再对Filter 初始化,并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化。
终止web工程
当Servlet 容器终止Web 应用时,容器先销毁所有的Servlet 和Filter 过滤器,再调用ServletContextListener的destroyed方法。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号