
web 服务器
JSP/Servlet
- sun公司主推的B/S架构 浏览器和服务器
- 基于java,相比php可以承载高并发 高可用 高性能
- 语法像ASP,加强了市场的强度;
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;
Tomcat
技术先进,免费,性能稳定;
对于初学者来说,它是最佳的选择。最新版本为9.0
- 安装或解压
- 了解配置文件和目录结构
- 了解它的作用
Tomcat
下载解压,在bin目录有启动关闭脚本
在conf文件夹下的server.xml文件中修改配置,包括app目录,ip地址以及端口
发布 放到webapps文佳目录下即可 ``` — webapps -ROOT -webapps 网站的目录名- WEB-INF-class java程序-lib web应用依赖的jar包-web.xml 网站配置文件- index.html- static-css-js-img
## HTTP**超文本传输协议**1. 支持客户服务器模式 2.简单快速 3 灵活 4 无连接 5 无状态 **应用层的协议****url**<br />格式: 协议/ip:端口/url路径<br />**Request**<br />Get请求行:请求方式 GET /POST ;请求路径; 请求协议版本;<br />Post请求行:请求方式 GET /POST ;请求路径; 请求协议版本;<br />请求头:- get 一次请求能够携带的参数比较少,大小有限制,会在url中显示,不安全但是高效。- post 请求携带参数没有限制,大小没有限制,不会再url中显示,安全,不高效。
请求 URL: https://www.baidu.com/ 请求方法: GET 状态代码: 200 OK 远程地址: 110.242.68.3:443 引用站点策略: origin-when-cross-origin
Header
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-CN;q=0.7 Cache-Control: no-cache Connection: keep-alive Cookie: BAIDUID_BFESS=A44381E801EF257FE2ECCEC9993EEDDB:FG=1; BIDUPSID=A44381E801EF257FE2ECCEC9993EEDDB; PSTM=1627516883; BD_HOME=1; H_PS_PSSID=34305_34099_33967_31660_34331_33848_34092_26350_34243; BD_UPN=123253; BA_HECTOR=05al810la00lag007i1gg5gmu0r Host: www.baidu.com Pragma: no-cache Referer: https://cn.bing.com/ sec-ch-ua: “ Not;A Brand”;v=”99”, “Microsoft Edge”;v=”91”, “Chromium”;v=”91” sec-ch-ua-mobile: ?0 Sec-Fetch-Dest: document Sec-Fetch-Mode: navigate Sec-Fetch-Site: cross-site Sec-Fetch-User: ?1 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67
**Response**
Bdpagetype: 1 Bdqid: 0xf5c462460015b427 Cache-Control: private Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charset=utf-8 Date: Thu, 29 Jul 2021 15:02:04 GMT Expires: Thu, 29 Jul 2021 15:02:01 GMT Server: BWS/1.1 Set-Cookie: BDSVRTM=0; path=/ Set-Cookie: BD_HOME=1; path=/ Set-Cookie: H_PS_PSSID=34305_34099_33967_31660_34331_33848_34092_26350_34243; path=/; domain=.baidu.com Strict-Transport-Security: max-age=172800 Traceid: 1627570924037461428217709387687516288039 Transfer-Encoding: chunked X-Frame-Options: sameorigin X-Ua-Compatible: IE=Edge,chrome=1
**响应状态码**<br />200 请求响应成功<br />4** 找不到资源<br />5** 服务器代码错误 502 网关错误<br />3** 请求重定向## maven自动导入和配置jar包 -- 项目架构管理工具<br />核心思想 --- 约定大于配置<br />官网 [Maven – Download Apache Maven](https://maven.apache.org/download.cgi) 下载解压即可。<br />配置环境变量<br />配置阿里云镜像
建立一个本地仓库 localrepository## servlet开发动态web的一门技术<br />sun在这些api中提供一个接口叫做servlet,如果你想开发一个servlet程序,只需要完成**两个小步骤**- 编写一个类,实现servlet接口- 把开发好的Java类部署到web服务器把实现了servlet接口的程序叫做Servlet### Hello servlet1.构建一个普通的maven程序,删掉src,这就是主要工程2.然后新建Module,构建子工程<br />父工程的jar包,子modul可以直接使用### 编写第一个servlet程序servlet 有两个默认的实现类 HttpServlet. GenericServlet<br />
package com.angyi.servlet;
import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.PrintWriter;
public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter respwrite = response.getWriter(); respwrite.println(“Hello world”); }
@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}
这里注意tomcat10之后servlet依赖包名不是javax.servlet,而是jakarta.servlet。<br />编写servlet映射:通过浏览器访问java代码,在web-inf中的web.xml中写入<br />匹配404 无法找到可以用 通配符,优先级比hello等设置好的url路径低
```
配置Tomcat 网页容器 启动测试
ServerContext 共享数据
HttpServletResponse
web服务器接收到客户端的http请求,会针对这个请求分别创建request对象,代表响应一个response对象。
获取请求信息,找request;返回
Cookie
Session
- 服务器会给每一个用户(浏览器)创建一个session
- 一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在。
- 用户登录之后,整个网站都可以访问,—保存用户信息,购物车
cookie 和 session的区别
cookie保存在用户本地,session保存在服务器。
cookie可以保存多个,session只能一个,保存重要信息。
使用场景:保存一个登陆用户的信息,购物车信息,在整个网站中经常使用的数据。
JSP
跟HTML一样,可以嵌入Java代码;
