当前位置: 首页 > wzjs >正文

网站细节重庆seo全面优化

网站细节,重庆seo全面优化,高端的佛山网站建设价格,成都快型网络公司排名一、SpringMVC 注解与项目开发流程1.1注解的生命周期- Target、Retention 等元注解:- Target(ElementType.TYPE) :说明这个注解只能用在类、接口上。- Retention(RetentionPolicy.RUNTIME) :说明注解在运行时保留,能通过反射获取…

一、SpringMVC 注解与项目开发流程

 

1.1注解的生命周期

 

- @Target、@Retention 等元注解:

-  @Target(ElementType.TYPE) :说明这个注解只能用在类、接口上。

-  @Retention(RetentionPolicy.RUNTIME) :说明注解在运行时保留,能通过反射获取。

-  @Documented :生成文档时包含这个注解。

-  @Controller 、 @ResponseBody :这两个注解组合起来就是  @RestController ,所以  @RestController = @Controller + @ResponseBody 。

- @RestController 接口示例:

public @interface RestController {

    @AliasFor(annotation = Controller.class)

    String value() default "";

}

 

 

-  @AliasFor :指定  value  属性和  @Controller  的  value  属性互为别名。

 

@ResponseBody 注解

 

- 作用:把方法返回值转成 JSON 或字符串,直接返回给客户端,而不是跳转到页面。

- 示例 1(返回字符串):

@ResponseBody

@RequestMapping("/returnHTML")

public String returnHTML() {

    return "<h1>returnHTML</h1>";

}

 

 

- 方法返回字符串  <h1>returnHTML</h1> ,会直接作为响应体返回给客户端(浏览器会把它当 HTML 渲染)。

- 示例 2(设置响应头和响应体):

@ResponseBody

@RequestMapping("/setContentType")

public void setContentType(HttpServletResponse response) throws IOException {

    response.setContentType("text/html"); // 设置响应类型为 HTML

    response.getOutputStream().write("<h1>setContentType</h1>".getBytes(StandardCharsets.UTF_8));

}

 

 

-  HttpServletResponse :用来设置响应头、响应体等。这里设置  Content-Type  为  text/html ,然后写响应体。

 

@RequestMapping 注解的属性

 

- value:指定映射的 URL 路径,是默认属性。

- method:指定支持的请求方法(GET、POST 等)。

- consumes:指定请求体的 MIME 类型(比如  application/json ),只有符合的请求才会被处理。

- produces:指定响应体的 MIME 类型(比如  application/json ),设置返回的  Content-Type 。

- params:指定请求中必须包含某些参数,才会被处理。

- headers:指定请求头中必须包含某些值,才会被处理。

 

1.2国内企业主流开发模式(前后端分离)

 

- 前后端代码完全分开:前端代码(Vue、React 等)和后端代码(SpringBoot 等)在不同项目里,甚至不同团队开发。

- 部署方式:前端单独部署(比如用 Nginx),后端也单独部署(比如用 Tomcat、Jar 包)。

- 对比课堂案例:课堂里的案例前后端没完全分离,前端页面在后端项目里(比如  static/index.html )。

- 微服务模式:更彻底的分离,每个服务独立开发、部署、运维。

 

1.3项目开发流程

 

1. 需求调研:和 PM(产品经理)、业务方沟通,明确需求文档(目标、功能、逻辑等)。

2. 分工干活:

- 方案设计:概要设计、详细设计、数据库设计、接口设计。

- 方案 review:团队评审方案,发现问题及时改。

- 开发:写代码实现功能。

- 自测:开发自己测试,保证功能没问题。

3. 提测:把功能交给测试人员测试。

4. 联调:前后端、服务间联调,保证整个流程跑通。

5. 上线:把代码部署到生产环境。

 

- 接口文档:企业开发中,接口文档一般一次性全部提供;课堂里是一个接口一个接口提供。

- 敏捷开发:尽量做到短期交付(比如两周一个迭代),别 delay。

 

二、Session、请求头与返回页面

 

2.2Session 的工作流程

 

1. 客户端发请求:第一次请求时,服务器还没给客户端分配 Session。

2. 服务器创建 Session:服务器生成 Session,把 SessionID 通过  Set-Cookie  头返回给客户端。

3. 客户端带 Cookie 发请求:后续请求时,客户端会自动带上包含 SessionID 的 Cookie。

4. 服务器查 Session:服务器根据 SessionID 找到对应的 Session,处理请求(比如获取用户信息)。

 

- Session 存储:默认存在服务器内存里,服务器重启后 Session 就没了(可以用 Redis 等持久化 Session)。

 

2.2request.getSession() 方法

 

- request.getSession():

- 默认  create = true ,如果没有 Session,就创建一个新的。

- 示例:

@RequestMapping("/getSession")

public String getSession(HttpServletRequest request) {

    HttpSession session = request.getSession(); // 没有就创建

    String name = (String) session.getAttribute("name");

    Integer age = (Integer) session.getAttribute("age");

    return "Session 中的数据,name: " + name + ",age: " + age;

}

 

- request.getSession(false):

-  create = false ,如果没有 Session,就返回  null ,不创建新的。

- 示例:

@RequestMapping("/getSession2")

public String getSession2(HttpServletRequest request) {

    HttpSession session = request.getSession(false); // 没有就返回 null

    if (session == null) {

        return "没有 Session";

    }

    String name = (String) session.getAttribute("name");

    Integer age = (Integer) session.getAttribute("age");

    return "Session 中的数据,name: " + name + ",age: " + age;

}

 

 

2.3请求头相关(@RequestHeader)

 

- @RequestHeader:从请求头中取参数。

- 示例 1(取单个请求头):

@RequestMapping("/getHeader")

public String getHeader(HttpServletRequest request) {

    String userAgent = request.getHeader("User-Agent");

    return "Header 中的数据,User-Agent: " + userAgent;

}

 

- 示例 2(用 @RequestHeader 注解):

@RequestMapping("/getHeader2")

public String getHeader2(@RequestHeader("User-Agent") String userAgent) {

    return "Header 中的数据,User-Agent: " + userAgent;

}

 

 

-  @RequestHeader("User-Agent")  直接把请求头中  User-Agent  的值绑定到  userAgent  变量。

 

2.4返回页面(@Controller vs @RestController)

 

- @Controller:方法返回值会被解析为页面路径,跳转到对应页面。

- 示例:

@Controller

@RequestMapping("/return")

public class ReturnController {

    @RequestMapping("/returnPage")

    public String returnPage() {

        return "index.html"; // 跳转到 static/index.html 页面

    }

}

 

 

- 方法返回  index.html ,会跳转到  static/index.html  页面(默认请求路径是  index.html/index.htm/index.jsp )。

- @RestController:方法返回值会转成 JSON 或字符串,不会跳转页面。

- 区别: @Controller  配合  @ResponseBody  等于  @RestController 。

 

http://www.dtcms.com/wzjs/253534.html

相关文章:

  • dwcs3如何做网站最新新闻热点
  • 网站开发需求 德州app推广注册从哪里接单
  • 论坛上怎么做网站优化100个成功营销策划案例
  • dedese网站百度风云榜官网
  • 南京网站建设哪家好网站注册搜索引擎的目的是
  • 门户网站源码入驻在线网站分析工具
  • 国外免费搭建网站教师遭网课入侵直播录屏曝光广场舞
  • 做新闻微网站有哪些今日疫情最新情况
  • 烟台 o2o平台带动做网站行业电商关键词一般用哪些工具
  • 做网页兼职网站国际军事新闻今日头条
  • 怎么利用网站做淘宝客白杨seo博客
  • TP5.1做的网站首页被挂马原因b2b网站平台
  • mvc 网站模板bt磁力搜索引擎
  • 湖北建科建设工程有限公司网站竞价专员是做什么的
  • 微网站建设渠道西安百度推广开户运营
  • 免费创办网站徐州seo管理
  • 学做网站多久东莞网站推广的公司
  • 做ppt音乐模板下载网站代做seo关键词排名
  • 什么网站可以在图上做日历网站优化外包找谁
  • 宁津做网站搜索引擎优化介绍
  • 沈阳网站开发外包百度推广开户多少钱
  • 天津网站开发网站互联网营销师是干什么
  • 麦当劳的网站优化建议发布推广信息的网站
  • 广东汽车品牌网站建设站长工具seo综合查询5g
  • 幼儿园教育类网站模板下载百度搜索排名推广
  • 威宁住房和城乡建设局网站游戏优化软件
  • github允许做网站服务器口碑营销方案怎么写
  • 东凤镇做网站公司app怎么开发出来的
  • 网站规划文档腾讯云域名注册官网
  • 网站建设模型软件湘潭关键词优化服务