JavaWeb --学习笔记

javaWeb

基础概念

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

Tomcat 详解

安装 Tomcat

官网:https://tomcat.apache.org/

在这里插入图片描述

Tomcat 的配置

Tomcat ⇒ conf 文件夹 ⇒ server.xml 中
在这里插入图片描述

Idea中配置Tomcat

在这里插入图片描述

在这里插入图片描述

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

如果初始 Tomcat 的中文出现乱码的情况解决方案
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

在这里插入图片描述

Http

什么是 Http ?
.
.

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。HTTP是互联网的基础协议,用于客户端与服务器之间的通信,它规定了客户端和服务器之间的通信格式,包括请求与响应的格式。HTTP是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输。

get:一般携带的请求比较少,大小有限制,会在浏览器的URL显示数据内容,不安全,但高效。
post:携带的参数没有限制,大小没有限制,不会显示内容在URL中,安全,但是高效。

Maven

Maven 环境的搭建

在java中,我们就会使用大量的jar包,需要我们手动的去进行导入。而maven便可以自动帮我们进行下载,并配置。(架构管理工具)

maven的核心思想:约定大于配置。

在这里插入图片描述

下载完成后,解压即可。

配置环境变量

百度即可。

配置阿里云镜像

百度一下,在 conf 下 setting 文件中,配置一下。

	    <!-- 阿里云仓库 -->
        <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>

        <!-- 中央仓库1 -->
        <mirror>
            <id>repo1</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo1.maven.org/maven2/</url>
        </mirror>

        <!-- 中央仓库2 -->
        <mirror>
            <id>repo2</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo2.maven.org/maven2/</url>
        </mirror>

      <mirror>
          <id>nexus</id>
          <mirrorOf>central</mirrorOf>
          <name>internal nexus repository</name>
          <url>http://repo.maven.org/maven2/</url>
      </mirror>

阿里云镜像如下:

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>
		https://maven.aliyun.com/repository/public
    </url>
    <mirrorOf>central</mirrorOf>        
</mirror>
idea中配置 maven

在这里插入图片描述

在这里插入图片描述

以下功能英译汉,顾名思义。

在这里插入图片描述

servlet

servlet是sun公司开发出来的动态web的一门技术

sun公司在这些API提供的一个接口叫做 servlet ,如果想开发 servlet,则需要完成两个步骤

  • 编写好一个类,实现 servlet 接口
  • 将开发好的 java 类部署到web服务器中

依赖 :

		<dependency>
      		<groupId>javax.servlet</groupId>
      		<artifactId>javax.servlet-api</artifactId>
      		<version>4.0.1</version>
      		<scope>provided</scope>
    	</dependency>
		  
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>

编写servlet 的 映射

在这里插入图片描述

在这里插入图片描述

指定了固有的映射,优先级最高,如果找不到,就会走默认的途径。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

ServletContext

web容器在启动的时候,它会为每一个web程序都创建一个对应的ServletContext对象,它代表了当前的应用

多多了解 Context 这个单词
在这里插入图片描述

response

response 下载文件(了解即可,可以百度一下源码多看看)

如果获取到客户端请求过来的参数,找:request
如果获取到客户端相应的一些信息,找:response

在这里插入图片描述

response 重定向(重点)

resp.sendRedirect("/xxx")

重定向和转发的区别:
.
相同点:

页面都会实现跳转

不同点:

请求转发的时候,url 不会发生改变。
重定向的时候,url 会发生改变

request

代表客户端的一个请求,用户通过 Http协议 访问服务器,Http 请求的所有的信息,会被封装到 HttpServletRequest 的方法,获得客户端的所有信息。

示例代码:
req.getParameter()

req.getRequestDispatcher ( ' xxx.jsp ' ).forward( req,resp )

Cookie 与 Session

会话:用户打开了一个浏览器,点击了很多的链接,访问web资源,关闭浏览器,这个过程称之为会话。

cookie:会话技术(相应,请求)
session:服务技术,利用这个技术,可以保存用户的会话信息。

常见:我们第一次登录了,第二次可以利用cookie这个技术,直接登录。

Cookie[] cookie = req.getCookies()
Cookie.getName()⇒ 获取 cookie 中的 key
Cookie.getValue()⇒ 获取 cookie 中的 value
new Cookie() ⇒ 新建一个cookie
cookie.setMaxAge() ⇒ 设置 cookie 的有效期
resp.addCookie () ⇒ 相应给客户端一个 cookie

一个 cookie 只能保存一个信息
cookie 只能限制 4kb
300 个cookie 是 web的上线

删除 cookie:

不设置有效期,关闭浏览器,自动删除。
设置有效期为 0

Session(重点)

什么是Session

  • 服务器会给每一个用户(浏览器)创建一个Session对象;
  • 一个Session独占一个浏览器,如果浏览器不关闭,这个Session就一直存在;
  • 用户登录之后,所有的网站都可以访问它;

在这里插入图片描述

Session 和 Cookie 的区别
  • Cookie 是吧重要的东西写给浏览器,保存在浏览器(可以保存多个)
  • Session 把用户的数据写到用户独占的 Session 中,服务端保存(重要的信息,减少服务器资源的浪费)
  • Session 对象由服务器创建

JSP

jsp: “java 服务端页面,也和Servlet一样,用于动态web技术。”

在这里插入图片描述

JSP 表达式

<%= java.util.Data() %> ⇒ 直接可以在jsp页面中写java中的代码

在这里插入图片描述

<% 代码片段 %> ⇒ 可以在jsp页面中直接写入代码。
在这里插入图片描述
在这里插入图片描述

<%-- 我是一个注释 --%> ⇒ jsp 的注释会被隐藏,是专门给开发者看。安全性高。

<%@ page errorPage = " xxx " %>
.
在这里插入图片描述

也可以在 web.xml 中进行配置。
.
在这里插入图片描述

<%jsp:include page=“/xxx/xxx.jsp”%>` ⇒ 页面的拼接
在这里插入图片描述

转发并且携带参数
在这里插入图片描述

内置对象以及作用域

设置作用域:

pageContext.setAttribute("name1","xx")⇒ 保存的数据只在一个页面有效
request.setAttribute("name2","xx")⇒ 保存的数据只在一次请求中有效
session.setAttribute("name3","xx")⇒ 保存的数据只在一次会话中有效
application.setAttribute("name4","xx")⇒ 保存的数据只在服务器中有效,从打开到关闭服务器

取出作用域中的值:

pageContext.getAttribute("name1","xx")
request.getAttribute("name2","xx")
session.getAttribute("name3","xx")
application.getAttribute("name4","xx")
pageContext.findAttribute("xxx") ⇒ 从底层到高层去寻找

EL表达式 :

${name1}
${name2}
${name3}
${name4}

页面跳转的两种方式:

pageContext.forword( " xx.jsp " ) ⇒ 页面转发,但是地址栏不变

request.getRequestDispatcher ( “xxx.jsp” ).forword ( request,response )

JSP标签、JSTL标签、EL表达式

jstl核心标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

c:if

<c:if test=${ param.userName == "xxx" } var="xxx">  ⇒ var 是 返回的结果值:True/False
	<c:out value="xxx"/>
<c:if>

c:out

<c:out value = "xxx"/>

c:choose

<c:set var="scope" value=96 /> 

<c:choose>

	<c:when test="$score=60">
		你的成绩刚及格
	</c:when>

	<c:when test="$score<60">
		你的成绩bu及格
	</c:when>
	
<c:choose>

c:forEach:

<c:forEach var = "xxx" items=${list}>
	xxx
</c:forEach>

JavaBean

JavaBean 有特定的写法:

  • 必须有一个无参构造
  • 属性必须私有化
  • 必须有对应的 get/set 方法
    .
    一般用来和数据库的字段做 ORM;
    ORM:对象关系映射

在这里插入图片描述

MVC三层架构

什么是MVC:Model、View、Controller 模型、视图、控制器

model:

  • 业务处理(Service)
  • 数据持久层(Dao)
    View
  • 展示数据
  • 提供链接发起的 Servlet 请求(a,img…)
    Controller(Servlet)
  • 接受请求(Session信息、req:请求参数)
    视图的转跳

Filter ⇒ 过滤器

在这里插入图片描述

示例:
在这里插入图片描述

Listener ⇒ 监听器(了解)

了解去百度一下即可,此处略,不是很重要。主要用在 GUI 页面使用。

JDBC(了解)

在这里插入图片描述

JDBC 事务

要么都成功,要么都失败!

测试注解 @Test ⇒ 推荐

需要测试的代码前面加上 @Test ,只在方法上有效

关于 idea 中 maven 不能接收编译 xml 文件 配置信息(此处了解,案例请参考 mybatis 笔记中 基础 的第一个案例来看)

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

完结撒花

完结撒花。大致是让大家了解一下原理。

  • 14
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值