image-20210802140510758

web 服务器

JSP/Servlet

  • sun公司主推的B/S架构 浏览器和服务器
  • 基于java,相比php可以承载高并发 高可用 高性能
  • 语法像ASP,加强了市场的强度;

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;
Tomcat
技术先进,免费,性能稳定;
对于初学者来说,它是最佳的选择。最新版本为9.0

  • 安装或解压
  • 了解配置文件和目录结构
  • 了解它的作用

    Tomcat

    下载解压,在bin目录有启动关闭脚本
    在conf文件夹下的server.xml文件中修改配置,包括app目录,ip地址以及端口
    发布 放到webapps文佳目录下即可 ``` — webapps -ROOT -webapps 网站的目录名
    1. - WEB-INF
    2. -class java程序
    3. -lib web应用依赖的jar
    4. -web.xml 网站配置文件
    5. - index.html
    6. - static
    7. -css
    8. -js
    9. -img
  1. ## HTTP
  2. **超文本传输协议**
  3. 1. 支持客户服务器模式 2.简单快速 3 灵活 4 无连接 5 无状态 **应用层的协议**
  4. **url**<br />格式: 协议/ip:端口/url路径<br />**Request**<br />Get请求行:请求方式 GET /POST ;请求路径; 请求协议版本;<br />Post请求行:请求方式 GET /POST ;请求路径; 请求协议版本;<br />请求头:
  5. - get 一次请求能够携带的参数比较少,大小有限制,会在url中显示,不安全但是高效。
  6. - post 请求携带参数没有限制,大小没有限制,不会再url中显示,安全,不高效。

请求 URL: https://www.baidu.com/ 请求方法: GET 状态代码: 200 OK 远程地址: 110.242.68.3:443 引用站点策略: origin-when-cross-origin

  1. 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

  1. **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

  1. **响应状态码**<br />200 请求响应成功<br />4** 找不到资源<br />5** 服务器代码错误 502 网关错误<br />3** 请求重定向
  2. ## maven
  3. 自动导入和配置jar -- 项目架构管理工具<br />核心思想 --- 约定大于配置<br />官网 [Maven Download Apache Maven](https://maven.apache.org/download.cgi) 下载解压即可。<br />配置环境变量<br />配置阿里云镜像
aliyunmaven * 阿里云公共仓库 https://maven.aliyun.com/repository/public
  1. 建立一个本地仓库 localrepository
  2. ## servlet
  3. 开发动态web的一门技术<br />sun在这些api中提供一个接口叫做servlet,如果你想开发一个servlet程序,只需要完成**两个小步骤**
  4. - 编写一个类,实现servlet接口
  5. - 把开发好的Java类部署到web服务器
  6. 把实现了servlet接口的程序叫做Servlet
  7. ### Hello servlet
  8. 1.
  9. 构建一个普通的maven程序,删掉src,这就是主要工程
  10. 2.
  11. 然后新建Module,构建子工程
  12. <br />父工程的jar包,子modul可以直接使用
  13. ### 编写第一个servlet程序
  14. servlet 有两个默认的实现类 HttpServlet. GenericServlet<br />![image-20210730221204599](https://cdn.jsdelivr.net/gh/Flionay/pic_bed@master/Upic/202107/image-20210730221204599.png)

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”); }

  1. @Override
  2. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  3. }

}

  1. 这里注意tomcat10之后servlet依赖包名不是javax.servlet,而是jakarta.servlet。<br />编写servlet映射:通过浏览器访问java代码,在web-inf中的web.xml中写入<br />匹配404 无法找到可以用 通配符,优先级比hello等设置好的url路径低
hello com.angyi.servlet.HelloServlet

hello /hello

```

配置Tomcat 网页容器 启动测试

ServerContext 共享数据

HttpServletResponse

web服务器接收到客户端的http请求,会针对这个请求分别创建request对象,代表响应一个response对象。
获取请求信息,找request;返回

Cookie

Session

  • 服务器会给每一个用户(浏览器)创建一个session
  • 一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在。
  • 用户登录之后,整个网站都可以访问,—保存用户信息,购物车

cookie 和 session的区别
cookie保存在用户本地,session保存在服务器。
cookie可以保存多个,session只能一个,保存重要信息。
使用场景:保存一个登陆用户的信息,购物车信息,在整个网站中经常使用的数据。

JSP

跟HTML一样,可以嵌入Java代码;