百度安装应用,柳州seo培训,wordpress header,云营销网站建设电话咨询web的基础介绍
web是什么
Web#xff08;全称为World Wide Web#xff09;是指由许多互联网资源和文档组成的信息空间#xff0c;这些资源通过超文本链接相互关联。通常#xff0c;人们所说的“上网”、“浏览网页”都是在使用Web。
Web的核心概念 超文本标记语言#…web的基础介绍
web是什么
Web全称为World Wide Web是指由许多互联网资源和文档组成的信息空间这些资源通过超文本链接相互关联。通常人们所说的“上网”、“浏览网页”都是在使用Web。
Web的核心概念 超文本标记语言HTML用于创建网页内容和结构的标记语言由各种标签组成可以定义文本、图像、链接等元素。 统一资源定位器URL用于定位和访问Web上的资源如网页、图片、视频等的地址通常以http://或https://开头。 超文本传输协议HTTP用于在Web服务器和客户端之间传输和交换数据的应用层协议。 网页浏览器用于访问和显示Web页面的软件如Chrome、Firefox、Safari等。 网页服务器存储和提供Web页面的计算机系统可以响应客户端的请求并发送相应的数据。
Web的发展始于20世纪90年代初由蒂姆·伯纳斯-李发明。通过Web人们可以轻松访问各种信息资源、进行在线交流、使用各种在线服务等。随着互联网技术的不断发展Web也在不断演变和创新例如出现了动态网页、Web应用程序、移动Web等形式为人们的生活和工作带来了巨大的便利。
web的内容 HTML超文本标记语言HTML是用于构建网页结构的标记语言。学习HTML可以了解如何创建网页、定义文本、图像、链接等元素。 CSS层叠样式表CSS用于控制网页的样式和布局。学习CSS可以实现对网页中的元素进行美化、排版和定位。 JavaScriptJavaScript是一种用于实现动态交互效果的编程语言。学习JavaScript可以实现网页中的表单验证、动画效果、响应式设计等功能。 前端框架和库学习流行的前端框架和库如React、Angular、Vue.js等可以帮助快速开发复杂的前端应用程序。 后端开发学习一门后端编程语言如Python、Node.js、PHP等以及相应的框架和数据库技术可以实现用户认证、数据存储和处理等功能。 数据库学习关系型数据库如MySQL、PostgreSQL或非关系型数据库如MongoDB、Redis了解数据库的设计和使用以及与后端的集成。 网络和服务器学习网络基础知识和常用的服务器技术了解HTTP协议、RESTful API设计等以便部署和管理Web应用程序。 安全和性能优化学习Web安全的基本知识如跨站脚本攻击XSS、SQL注入等以及性能优化技术如缓存、压缩等提升用户体验。
web的常用注解代码
1.Servlet注解
用于标记Servlet类的注解包括WebServlet、WebFilter、WebListener等。
WebServlet注解示例用于定义Servlet import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;WebServlet(name MyServlet, urlPatterns {/hello})
public class MyServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {response.getWriter().write(Hello, World!);}
}
在上面的示例中WebServlet注解用于将MyServlet类标记为一个Servlet并指定了它的名称和URL映射。
WebFilter注解示例用于定义过滤器
import javax.servlet.annotation.WebFilter;
import javax.servlet.*;
import java.io.IOException;WebFilter(filterName MyFilter, urlPatterns {/*})
public class MyFilter implements Filter {public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {// 检查或修改请求和响应chain.doFilter(request, response);}// 其他方法
}
在上面的示例中WebFilter注解用于将MyFilter类标记为一个过滤器并指定了它的名称和要过滤的URL模式。
WebListener注解示例用于定义监听器
import javax.servlet.annotation.WebListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;WebListener
public class MyListener implements ServletContextListener {public void contextInitialized(ServletContextEvent sce) {// 在Web应用程序初始化时执行的操作}public void contextDestroyed(ServletContextEvent sce) {// 在Web应用程序销毁时执行的操作}
}
在上面的示例中WebListener注解用于将MyListener类标记为一个监听器用于监听ServletContext的初始化和销毁事件。
这些注解可以让你在Java Web开发中更方便地定义Servlet、过滤器和监听器并且不需要在web.xml文件中显式配置它们。
2.Spring MVC注解
Spring MVC框架中常用的注解包括Controller、RequestMapping、RequestParam等。
Controller注解示例用于定义控制器
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;Controller
public class MyController {GetMapping(/hello)public String hello() {return hello;}// 其他处理请求的方法
} 在上面的示例中Controller注解用于将MyController类标记为一个控制器处理来自客户端的请求。通过GetMapping注解将方法hello()映射到/hello路径上并返回视图名为hello的视图。
RequestMapping注解示例用于定义请求映射
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;Controller
RequestMapping(/products)
public class ProductController {RequestMapping(value /{id}, method RequestMethod.GET)public String getProduct(PathVariable(id) Long id) {// 根据id获取产品信息return product;}// 其他处理请求的方法
}
在上面的示例中RequestMapping注解用于将ProductController类的请求映射为/products并且所有方法都相对于该路径。通过RequestMapping注解将方法getProduct()映射到路径/products/{id}上并使用GET请求方式。使用PathVariable注解将路径中的id参数绑定到方法的参数上。
RequestParam注解示例用于定义请求参数
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;Controller
public class UserController {GetMapping(/login)public String login(RequestParam(username) String username, RequestParam(password) String password) {// 验证用户名和密码return home;}// 其他处理请求的方法
}
在上面的示例中RequestParam注解用于将请求中的参数与方法的参数进行绑定。通过RequestParam注解将方法login()的参数username和password与请求中的username和password参数进行绑定。
这些注解可以让你在使用Spring MVC框架时更方便地定义控制器、请求映射和请求参数并且提供了灵活的方式来处理不同的请求。 3.JPA注解
Java持久化APIJava Persistence API中的注解包括Entity、Table、Column等。
Entity注解示例用于定义实体类
import javax.persistence.*;Entity
Table(name customer)
public class Customer {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;Column(name name)private String name;Column(name email)private String email;// 省略了构造函数、getter和setter方法
}
在上面的示例中Entity注解用于将Customer类标记为一个实体类并且可以指定它对应的数据库表名。Id注解表示该属性是实体类的主键GeneratedValue注解表示主键的自动生成策略。 Table注解示例用于定义表
import javax.persistence.*;Entity
Table(name product)
public class Product {Idprivate Long id;Column(name name)private String name;Column(name price)private Double price;// 省略了构造函数、getter和setter方法
}
在上面的示例中Table注解用于将Product类标记为对应product数据库表可以指定表名、表空间等属性。
Column注解示例用于定义列
import javax.persistence.*;Entity
Table(name order_item)
public class OrderItem {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;ManyToOneJoinColumn(name order_id)private Order order;ManyToOneJoinColumn(name product_id)private Product product;Column(name quantity)private Integer quantity;// 省略了构造函数、getter和setter方法
}
在上面的示例中Column注解用于将quantity属性标记为对应数据库表中的列可以指定列名、列类型等属性。
这些注解可以让你在使用JPA时更方便地定义实体类、表和列并且不需要手动编写SQL语句。
4.Hibernate注解
Hibernate框架中的注解用于实现ORM对象关系映射包括Entity、Table、Column等。
在使用JPAJava Persistence API进行数据库持久化时通常会使用Entity、Table和Column注解来定义实体类、表和列。
Entity用于定义实体类
import javax.persistence.Entity;
import javax.persistence.Id;Entity
public class Product {Idprivate Long id;private String name;private Double price;// 省略了构造函数、getter和setter方法
}在上面的示例中Entity注解将Product类标记为一个实体类表示该类与数据库中的表相对应。
Table用于定义表
import javax.persistence.Entity;
import javax.persistence.Table;Entity
Table(name product)
public class Product {// 实体类的属性和方法
}在上面的示例中Table注解指定了Product类对应的数据库表名为product。
Column用于定义列
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;Entity
Table(name product)
public class Product {Idprivate Long id;Column(name product_name)private String name;Column(name product_price)private Double price;// 省略了构造函数、getter和setter方法
}在上面的示例中Column注解用于将name属性映射到数据库表的product_name列将price属性映射到数据库表的product_price列。
通过使用这些注解你可以更方便地定义实体类、表和列并且JPA会根据这些注解自动生成对应的数据库表结构。
5.Spring注解
Spring框架中的注解用于实现依赖注入、AOP等功能包括Component、Autowired、Aspect等。
Component注解示例用于定义组件
import org.springframework.stereotype.Component;Component
public class MyComponent {// 组件的实现逻辑
}Component注解用于将MyComponent类标记为一个组件表示该类需要由Spring进行管理。
Autowired注解示例用于自动注入依赖
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;Component
public class MyService {private MyRepository myRepository;Autowiredpublic MyService(MyRepository myRepository) {this.myRepository myRepository;}// 服务的实现逻辑
}Autowired注解用于自动注入依赖通过构造函数、字段或者方法来实现。在上面的示例中MyRepository会被自动注入到MyService中。
Aspect注解示例用于定义切面
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;Aspect
Component
public class LoggingAspect {Before(execution(* com.example.MyService.*(..)))public void beforeAdvice() {// 在目标方法执行之前执行的逻辑}// 其他增强逻辑
}Aspect注解用于将LoggingAspect类标记为一个切面表示该类包含了一组增强逻辑可以在目标方法执行前、执行后等时机进行处理。在上面的示例中Before注解指定了在com.example.MyService包下的所有方法执行之前执行beforeAdvice()方法。
这些注解是在Java开发中非常常用的注解能够通过注解的方式提供一些特定功能如组件管理、依赖注入和切面编程等。 6.JAX-RS注解
Java API for RESTful Web ServicesJAX-RS中的注解用于实现RESTful风格的Web服务包括Path、GET、POST等。
Path注解示例用于定义访问路径
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;Path(/hello)
public class HelloResource {GETProduces(MediaType.TEXT_PLAIN)public String sayHello() {return Hello, World!;}
}Path注解用于将HelloResource类标记为一个资源表示该类对应了一个访问路径。在上面的示例中访问路径为/hello。
GET注解示例用于处理HTTP GET请求
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;Path(/hello)
public class HelloResource {GETProduces(MediaType.TEXT_PLAIN)public String sayHello() {return Hello, World!;}GETPath(/{name})Produces(MediaType.TEXT_PLAIN)public String sayHelloTo(PathParam(name) String name) {return Hello, name !;}
}GET注解用于将sayHello()方法标记为处理HTTP GET请求的方法。在上面的示例中当访问/hello路径时会调用sayHello()方法返回Hello, World!当访问/hello/{name}路径时会调用sayHelloTo()方法返回Hello, {name}!其中{name}是一个参数。
POST注解示例用于处理HTTP POST请求
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;Path(/hello)
public class HelloResource {POSTConsumes(MediaType.APPLICATION_JSON)Produces(MediaType.TEXT_PLAIN)public String sayHelloTo(MapString, String request) {String name request.get(name);return Hello, name !;}
}POST注解用于将sayHelloTo()方法标记为处理HTTP POST请求的方法。在上面的示例中当以JSON格式发送一个{name: xxx}的请求时会调用sayHelloTo()方法返回Hello, xxx!。
7.Swagger注解
用于生成API文档的注解包括Api、ApiOperation、ApiParam等。
Api注解示例用于定义API文档信息
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;RestController
Api(tags Hello API, description 提供Hello相关的接口)
public class HelloController {// 接口方法实现
}Api注解用于将HelloController类标记为一个API表示该类包含了一组相关的接口。在上面的示例中tags属性指定了API标签为Hello APIdescription属性指定了API描述为提供Hello相关的接口。
ApiOperation注解示例用于定义接口方法信息
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;RestController
Api(tags Hello API, description 提供Hello相关的接口)
public class HelloController {GetMapping(/hello)ApiOperation(value 获取问候语, notes 根据名称获取问候语)public String getGreeting(RequestParam(name) String name) {return Hello, name !;}
}ApiOperation注解用于将getGreeting()方法标记为一个接口方法表示该方法对应了一个API接口。在上面的示例中value属性指定了接口方法名称为获取问候语notes属性指定了接口方法描述为根据名称获取问候语。
ApiParam注解示例用于定义接口方法参数信息
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;RestController
Api(tags Hello API, description 提供Hello相关的接口)
public class HelloController {GetMapping(/hello)ApiOperation(value 获取问候语, notes 根据名称获取问候语)public String getGreeting(ApiParam(value 姓名, required true) RequestParam(name) String name) {return Hello, name !;}
}ApiParam注解用于将name参数标记为一个接口方法参数表示该参数对应了一个API接口参数。在上面的示例中value属性指定了参数名称为姓名required属性指定了该参数为必填参数。 8.Validation注解
用于数据验证和校验的注解包括NotNull、Size、Pattern等。
NotNull注解示例用于验证非空
import javax.validation.constraints.NotNull;public class User {NotNull(message 用户名不能为空)private String username;// getter和setter方法
}NotNull注解用于标记username字段为非空。在上面的示例中如果username字段为null则会抛出验证异常并返回用户名不能为空作为错误信息。
Size注解示例用于验证大小范围
import javax.validation.constraints.Size;public class User {Size(min 6, max 20, message 密码长度必须在6到20个字符之间)private String password;// getter和setter方法
}Size注解用于标记password字段的大小范围。在上面的示例中如果password字段的长度不在6到20之间则会抛出验证异常并返回密码长度必须在6到20个字符之间作为错误信息。
Pattern注解示例用于验证正则表达式
import javax.validation.constraints.Pattern;public class User {Pattern(regexp [a-zA-Z0-9], message 用户名只能包含字母和数字)private String username;// getter和setter方法
}Pattern注解用于标记username字段的格式必须符合正则表达式。在上面的示例中如果username字段包含非字母和数字的字符则会抛出验证异常并返回用户名只能包含字母和数字作为错误信息。
9.Log4j注解
用于日志记录的注解包括Slf4j、Log等。Slf4j和Log是两个常用的日志注解在Java中使用它们可以简化日志记录的代码编写。
Slf4j注解示例
import lombok.extern.slf4j.Slf4j;Slf4j
public class MyClass {public void doSomething() {log.info(执行了doSomething方法);// 其他业务逻辑}
}Slf4j注解是使用Lombok库提供的注解它会在编译时自动生成一个名为log的日志记录器对象。在上面的示例中我们可以直接使用log对象记录日志如log.info(执行了doSomething方法)。
Log注解示例
import lombok.extern.java.Log;Log
public class MyClass {public void doSomething() {log.info(执行了doSomething方法);// 其他业务逻辑}
}Log注解也是使用Lombok库提供的注解它会在编译时自动生成一个名为log的日志记录器对象。与Slf4j注解不同的是Log注解使用的是Java标准库中的日志APIjava.util.logging。在上面的示例中我们可以直接使用log对象记录日志如log.info(执行了doSomething方法)。 web学习小结 Web开发是一个不断演进的领域新技术和工具不断涌现。要保持学习的状态关注行业动态掌握最新的发展趋势。参与技术社区与其他开发者交流和分享经验这有助于扩大自己的网络和获取更多的学习资源。要坚持不懈地学习积累实际经验才能在Web开发领域取得进步。