####
javaweb
狂神课程记的笔记
1、web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应
IIS
微软的;ASP...Windows中自带的
Tomcat
轻量级应用服务器
运行JSP和Serviet
2、下载Tomcat:
1、安装
2、了解配置文件及目录结构
3、这个东西的作用
3、Tomcat
3.1、安装
3.2、Tomcat启动和配置
文件夹作用
端口配置
<Connector port="8087" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置主机名称
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
谈谈网站是如何进行访问的
1、输入一个域名,回车
2、检查本机的 C:windows\System32\drivers\etc \host配置文件下有没有域名映射
1、有:直接返回对应的IP地址,这个地址中,有我们需要访问的web程序,可以直接访问
2、没有:去DNS服务器找,找到就返回,找不到返回找不到
3.3发布网站
-
将自己写的网站发布到服务器中指定的Web应用文件夹下(webapps),就可以访问
网站要有的结构
--webapps:Tomcat服务器的web目录 -ROOt -wqya : 网站目录名 -Web-INF -classes : java程序 -lib: web应用所依赖的jar包 -web.xml:网站的配置文件 -inde.html 默认首页 -static -css -js -img
4、http
4.1什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上
-
文本:html,字符串
-
超文本:图片、音乐、视频
-
端口:80
HTTPS:安全的
-
端口:443
4.2两个时代
-
http1.0
-
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
-
-
http2.0
-
HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源
-
4.3HTTP请求
-
客户端 --发请求--服务器
1、请求行
-
请求行中的请求方式;GET
-
请求方式:Get,Post,HEAD,DELETE,PUT,TRACT
-
get:请求能够携带的参数比较少,大小有限制,会在URL地址栏显示数据内容,不安全,但高效
-
post:请求能够携带的参数没有限制,大小没有限制,不会在URL地址栏显示数据内容,安全,但不高效
-
4.4、HTTP响应
-
服务器--响应--客户端
https:更安全
1、响应体
2、响应状态码
200:请求响应成功
3xx:请求重定向
-
重定向:你重新给我定位位置
4xx:找不到资源,资源不存在 404
5xx:服务器代码错误
5、Maven
为什么学Maven
1、在JavaWeb中,需要手动导入大量的jar包。
2、Maven能够自动导入和配置jar包
5.1、Maven项目架构管理工具
目前用来方便导入jar包
核心思想:约定大于配置
-
有约束,不去违反
Maven会规定你改如何去编写java代码,必须按照规定来
5.2、下载Maven
5.3配置环境变量
系统变量
-
M2_HOME maven目录下的bin目录
-
MAVEN_HOME maven的目录
-
path配置 %MAVEN_HOME%\bin
测试,cmd mvn-v
5.4配置阿里云镜像
在setting.xml
<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>C:\app\apache\apache-maven-3.8.4\maven-repo</localRepository>
5.6在IDEA使用Maven
5.7、pom.xml文件
pom.xml是Maven的核心配置文件
由于maven约定大于配置,我们之后写的配置文件,无法被到处或者生效
解决方案
maven高级之处是会帮你导入jar包所依赖的其他jar包
maven资源导出问题
<!-- 在build配置resources,来防止我们资源导出失败问题--> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> </excludes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
6、servlet
6.1 servlet简介
-
servlet是sun公司开发的动态web的一门技术
-
sun公司在这些API中提供一个接口叫做:servlet,如果你想开发一个servlet程序,需要两个步骤
-
编写一个类,实现servlet接口
-
把开发好的java类部署到web服务器中
-
把实现Servlet接口的Java程序叫,Servlet
6.2 HelloServlet
Servlet接口Sun公司有两个默认的实现类:HttpServlet,
1、构建一个maven项目
2、编写一个Servlet程序
1、编写一个普通类
2、实现Servlet接口,这里我们继承HttpServlet
import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class HelloServlet extends HttpServlet { //由于get post只是实现不同的方式,可以相互调用,业务逻辑都一样 @Override protected void doGet(HttpServletRequest req, Htt