javaweb内容

本文介绍了Java Web的基本概念,包括静态和动态Web的差异,强调了动态Web的特性。讲解了Web应用程序的概念,并以Tomcat为例,讨论了Web服务器的角色和功能。此外,还涵盖了Tomcat的安装、配置和启动,以及HTTP协议、Servlet和JSP的基础知识,强调了Maven在项目管理中的作用。最后,提到了会话管理技术Cookie和Session,以及JDBC在数据库连接中的重要性。
摘要由CSDN通过智能技术生成

1、基本概念
1.1、前言
web开发:

web,网页的意思,www.baidu.com·

静态web

html,sss
提供给所有人看的数据始终不会发生变化!
动态web

淘宝,几乎是所有的网站;
提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!
技术栈:Servlet/ISP,ASP,PHP
1.2、web应用程序web应用程序:
可以提供浏览器访问的程序;

a.html、b.html.….多个web资源,这些web资源可以被外界访问,对外界提供服务;
你们能访问到的任何一个页面或者资源,都存在于这个世界的某一个角落的计算机上。
URL
这个统一的web资源会被放在同一个文件夹下,web应用程序>Tomcat:服务器
一个web应用由多部分组成(静态web,动态web)
html,sss,is
jsp,servlet
Java程序
jar包
配置文件(Properties)
Web酸用程序编写完毕后,若想提供给外界访问;需费一个服务蔬来统一管理

1.3、静态web
*.htm, *.html这些都是网员的后境、如果服务器上一直存在这些东四,我们就可以直接进行读取、需要网络;
在这里插入图片描述
静态web存在的缺点

Web页面无法动态更新,所有用户看到都是同一个页面
轮播图,点击特效:伪动态
JavaScript[实际开发中,它用的最多]
VBScript
它无法和数据库交互(数据无法持久化,用户无法交互)
1.4、 动态web
页面会动态展示,“web页面的展示效果因人而异”
在这里插入图片描述
缺点:

加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布;
停机维护优点:
Web页面可以动态更新,所有用户看到都不是同一个页面
它可以与数据库交互(数据持久化:注册,商品信息,用户信息………)
在这里插入图片描述
2、web服务器
2.1、技术讲解
ASP:

微软:国内最早流行的就是ASP;
·在HTML中嵌入了VB的脚本,ASP+COM;
·在ASP开发中,基本一个页面都有几干行的业务代码,页面极其换乱
·维护成本高!
C#
IIS
php:

PHP开发速度很快,功能很强大,跨平台,代码很简单(70%,WP)
·无法承载大访问量的情况(局限性)
jSP/Servlet:
B/S;浏览和服务器C/S:客户端和服务器

sun公司主推的B/S架构
基于Java语言的(所有的大公司,或者一些开源的组件,都是用Java写的)
可以承载三高问题带来的影响;
语法像ASP,ASP->JSP,加强市场强度;
2.2、web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;
lIS
微软的;ASP.,Windows中自带的
Tomcat
在这里插入图片描述
面向百度编程:
Tomcat是Apache 软件基金会(Apache Software Foundation)的jakarta项目中的一个核心项目,最新的Servlet 和ISP 规范总是能在Tomcat中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受lava爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试ISP程序的首选。对于一个Java初学web的人来说,它是最佳的选择

Tomcat 实际上运行JSP页面和Serlet。Tornct最新版易9.0

工作3-5年之后,可以尝试手写Tomcat服务器;

下载tomcat:

安装or解压
了解配置文件及目录结构
这个东西的作用
3、Tomcat
3.1安装tomcat tomcat
官网:http://tomcat.apache.org/
在这里插入图片描述
在这里插入图片描述
3.2、Tomcat启动和配置
文件夹作用:
在这里插入图片描述
在这里插入图片描述
访问测试:http://localhost:8080/
可能遇到的问题:

Java环境变量没有配置
闪退问题:需要配置兼容性
乱码问题:配置文件中设置
可以修改 conf/logging.properties 中的 java.util.logging.ConsoleHandler.encoding = GBK 解决乱码问题

3.3、配置
在这里插入图片描述
可以配置启动的端口号

tomcat的默认端口号为:8080
mysql:3306
http:80
https:443

<Connector port="8081" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" />

可以配置主机的名称

默认的主机名为:localhost->127.0.0.1
默认网站应用存放的位置为:webapps


  <Host name="www.qinjiang.com"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

请你谈谈网站是如何进行访问的!

输入一个域名;回车
检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;
有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问

 127.0.0.1 www.qinjiang.com

没有:去DNS服务器找,找到的话就返回,找不到就返回找不到;
在这里插入图片描述
4.可以配置一下环境变量(可选性)

3.4、发布一个web网站
不会就先模仿

将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了
网站应该有的结构

--webapps :Tomcat服务器的web目录
	-ROOT
	-kuangstudy :网站的目录名
		- WEB-INF
			-classes : java程序
			-lib:web应用所依赖的jar包
			-web.xml :网站配置文件
		- index.html 默认的首页
		- static 
            -css
            	-style.css
            -js
            -img
         -.....

HTTP协议:面试
Maven:构建工具

Maven安装包
Servlet入门

HelloWorld!
Servlet配置 ·原理
4、Http
4.1、什么是HTTPHTTP
(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。

文本:html,字符串,…
超文本:图片,音乐,视频,定位,地图.……
端口:80
Https:安全的

4.2、两个时代
http1.0
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
http2.0
HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
4.3、Http请求
客户端–发请求(Request)–服务器
百度:

Request URL:https://www.baidu.com/   请求地址
Request Method:GET    get方法/post方法
Status Code:200 OK    状态码:200
Remote(远程) Address:14.215.177.39:443

Accept:text/html  
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9    语言
Cache-Control:max-age=0
Connection:keep-alive

1、请求行
请求行中的请求方式:GET
请求方式:Get,Post,HEAD,DELETE,PUT,TRACT.…
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
2、消息头

Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.

4.4、Http响应
服务器–响应…….客户端
百度:

Cache-Control:private    缓存控制
Connection:Keep-Alive    连接
Content-Encoding:gzip    编码
Content-Type:text/html   类型  

响应体

Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;

2、响应状态码
200:请求响应成功200
3xx:请求重定向·重定向:你重新到我给你新位置去;
4xx:找不到资源404·资源不存在;
5xx:服务器代码错误 500 502:网关错误

常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

5、Maven
我为什么要学习这个技术?

在Javaweb开发中,需要使用大量的jar包,我们手动去导入;
如何能够让一个东西自动帮我导入和配置这个jar包。
由此,Maven诞生了!

5.1 Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven的核心思想:约定大于配置

有约束,不要去违反。
Maven会规定好你该如何去编写我们Java代码,必须要按照这个规范来;

5.2下载安装Maven
官网:https://maven.apache.org/
在这里插入图片描述
下载完成后,解压即可;
友情建议:电脑上的所有环境都放在一个文件夹下,方便管理;
5.3配置环境变量
在我们的系统环境变量中配置如下配置:

M2_HOME maven目录下的bin目录
MAVEN_HOME maven的目录
在系统的path中配置%MAVEN_HOME%\bin
在这里插入图片描述

测试Maven是否安装成功,保证必须配置完毕!
5.4阿里云镜像
镜像:mirrors
作用:加速我们的下载
国内建议使用阿里云的镜像

<mirror>
    <id>nexus-aliyun</id>  
    <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>  
    <name>Nexus aliyun</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

5.5本地仓库
在本地的仓库,远程仓库; 建立一个本地仓库:localRepository

<localRepository>D:\Environment\apache-maven-3.6.2\maven-repo</localRepository>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里设置是项目的设置,所以会出现这种情况,在file中选择other
settrings,setting,for,new,projects可以解决
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最新版本和idea不兼容,3.62~3.63都不兼容在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方法:
1、
降级为3.6.1
2、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、下面5~6是解决方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
作用域一般可以删掉
正常情况应该导入完上面的包就OK了

6、Servlet
6.1、Servlet简介
Servlet就是sun公司开发动态web的一门技术
Sun在这些APi中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:
编写一个类,实现Serlet接口
把开发好java类部署到web服务器中。
把实现了Servlet接口的Java程序叫做,Servlet

6.2、HelloServlet
Serlvet接口Sun公司有两个默认的实现类:HttpServlet,GenericServled

6.2、HelloServlet
构建一个普通的Maven项目,等理面的sc目录,以后我们的学习就在这个项目里面建立Moudel;这个空的工程就题Maven主工程;
关于Maven父子工程的理解;
父项目中会有

    <modules>
          <module>servlet-01</module>
      </modules>

子项目会有

<parent>
       <artifactId>javaweb-02-servlet</artifactId>
       <groupId>com.kuang</groupId>
       <version>1.0-SNAPSHOT</version>
   </parent>

父项目中的java子项目可以直接使用

son extends father

Maven环境优化
修改web.xml为最新的
将maven的结构搭建完整
.
编写一个Servlet程序
编写一个普通类
实现Servlet接口,这里我们直接继承HttpServlet

    public class HelloServlet extends HttpServlet {
   
      
      //由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样;
      @Override
      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
          //ServletOutputStream outputStream = resp.getOutputStream();
          PrintWriter writer = resp.getWriter(); //响应流
          writer.print("Hello,Serlvet");
      }
  
      @Override
      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
          doGet(req, resp);
      }
  }
  

编写Servlet的映射
为什么需要映射:我们写的是JAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需
要再web服务中注册我们写的Servlet,还需给他一个浏览器能够访问的路径;

      <!--注册Servlet-->
      <servlet>
          <servlet-name>hello</servlet-name>
          <servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
      </servlet>
      <!--Servlet的请求路径-->
      <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello</url-pattern>
      </servlet-mapping>

配置Tomcat
注意:配置项目发布的路径就可以了
在这里插入图片描述
在这里插入图片描述
启动测试
在这里插入图片描述
6.3、Servlet原理
Servlet是由Web服务器调用,web服务器在收到浏览器请求之后,会:
在这里插入图片描述
6.4、Mapping问题
一个Servlet可以指定一个映射路径

   <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello</url-pattern>
      </servlet-mapping>

一个servlet可以指定多个映射路径

      <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello2</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello3</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello4</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello5</url-pattern>
      </servlet-mapping>

一个servlet可以指定通用映射路径

   <servlet-mapping>
          <servlet-name>hello</servlet-name>
          <url-pattern>/hello/*</url-pattern>
      </servlet-mapping>

默认请求路径

     <!--默认请求路径-->
       <servlet-mapping>
           <servlet-name>hello</servlet-name>
           <url-pattern>/*</url-pattern>
       </servlet-mapping>

指定一些后缀或者前缀等等…

<!--可以自定义后缀实现请求映射
      注意点,*前面不能加项目映射的路径
      hello/sajdlkajda.qinjiang
      -->
  <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>*.qinjiang</url-pattern>
  </servlet-mapping>

优先级问题
指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求;

  <!--404-->
  <servlet&g
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值