ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【SpringMVC笔记,Java面试技巧和注意事项

2021-09-03 19:03:01  阅读:108  来源: 互联网

标签:function Java SpringMVC Redis springframework color 注意事项 org data


    <filter-name>encoding</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

</filter>

<filter-mapping>

    <filter-name>encoding</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>



`applicationContext.xml`:记得加 **静态资源过滤** 和 **注解驱动配置**。



<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:context="http://www.springframework.org/schema/context"

   xmlns:mvc="http://www.springframework.org/schema/mvc"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

   http://www.springframework.org/schema/beans/spring-beans.xsd

   http://www.springframework.org/schema/context

   https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">



<!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->

<context:component-scan base-package="com.yusael.controller"/>

<!--静态资源过滤-->

<mvc:default-servlet-handler/>

<!--注解驱动配置-->

<mvc:annotation-driven/>



<!-- 视图解析器 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"

      id="internalResourceViewResolver">

    <!-- 前缀 -->

    <property name="prefix" value="/WEB-INF/jsp/" />

    <!-- 后缀 -->

    <property name="suffix" value=".jsp" />

</bean>



编写一个 `AjaxController`:



@RestController

public class AjaxController {

@RequestMapping("/ajax1")

public void ajax1(String name, HttpServletResponse response) throws IOException {

    if ("admin".equals(name)) {

        response.getWriter().write("true");

    } else {

        response.getWriter().write("false");

    }

}

}




编写 `index.jsp` 测试:



<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

<title>Ajax测试</title>

<script src="${pageContext.request.contextPath}/statics/js/jquery-3.4.1.min.js"></script>

<script> function a1() {

    $.ajax({

      url : "${pageContext.request.contextPath}/ajax1",

      data : {'name' : $("#username").val()},

      success : function(data, status) {

        alert(data);

        alert(status);

      },

      error : function () {}

    });

  } </script>
<%--onblur:失去焦点触发事件--%>

用户名: <input type="text" id="username" onblur="a1()">



![在这里插入图片描述](https://www.icode9.com/i/ll/?i=2020061423190750.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



[](
)Ajax 执行流程

----------------------------------------------------------------------------



![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20200614233752946.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



[](
)Ajax 异步加载数据案例

================================================================================



首先写一个实体类 `User`:



@Data

@AllArgsConstructor

@NoArgsConstructor

public class User {

private String name;

private int age;

private String sex;

}




在 Controller 中获取一个集合对象,展示到前端页面:



@RequestMapping("/ajax2")

public List ajax2() {

List<User> list = new ArrayList<>();

list.add(new User("zhenyu", 21, "男"));

list.add(new User("yusael", 99, "男"));

list.add(new User("hahaha", 18, "女"));

return list; // 由于@RestController注解, 将list转成json格式返回

}




前端页面:`ajaxtest.jsp`



<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

<meta charset="UTF-8">

<title>Ajax测试</title>
<tr>

    <td>姓名</td>

    <td>年龄</td>

    <td>性别</td>

</tr>

<tbody id="content"></tbody>



![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20200615000523518.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



[](
)Ajax 验证用户名密码

===============================================================================



思考一下:我们平时登录时,输入框后面的实时提示是怎么做到的?



`Controller`:



@RequestMapping("/ajax3")

public String ahax3(String name, String pwd) {

String msg = "";

if (name != null) {

    if ("admin".equals(name)) {

        msg = "OK";

    } else {

        msg = "用户名有误!";

    }

}

if (pwd != null) {

    if ("123456".equals(pwd)) {

        msg = "OK";

    } else {

        msg = "密码输入有误!";

    }

}

return msg;

}




前端页面 `login.jsp`:



<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

<title>Login</title>

<script src="${pageContext.request.contextPath}/statics/js/jquery-3.4.1.min.js"></script>

<script> function a1() {

        $.post({

            url : "${pageContext.request.contextPath}/ajax3",

            data : {'name' : $("#name").val()},

            success : function (data) {

                if (data.toString() === 'OK') {

                    $("#userInfo").css("color", "green");

                } else {

                    $("#userInfo").css("color", "red");

                }

                $("#userInfo").html(data);

            }

        });

    }

    function a2() {

        $.post("${pageContext.request.contextPath}/ajax3", {'pwd' : $("#pwd").val()}, function (data) {

            if (data.toString() === "OK") {

                $("#pwdInfo").css("color", "green");

            } else {

                $("#pwdInfo").css("color", "red");

            }

            $("#pwdInfo").html(data);

        });

    } </script>

用户名:

<span id="userInfo"></span>

密码: <input type="text" id="pwd" onblur="a2()">

<span id="pwdInfo"></span>




注:记得处理 JSON 乱码!  

`applicationContext.xml` 中加入以下代码:



mvc:annotation-driven

<mvc:message-converters register-defaults="true">

    <bean class="org.springframework.http.converter.StringHttpMessageConverter">

        <constructor-arg value="UTF-8"/>

    </bean>

    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">

        <property name="objectMapper">

            <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">

                <property name="failOnEmptyBeans" value="false"/>

            </bean>

        </property>

    </bean>

</mvc:message-converters>

</mvc:annotation-driven>




![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20200615003237873.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)  

![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20200615003254669.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



[](
)获取 百度 接口案例

=============================================================================



![在这里插入图片描述](https://www.icode9.com/i/ll/?i=2020061500345580.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>JSONP百度搜索</title>

<style> #q{

        width: 500px;

        height: 30px;

        border:1px solid #ddd;

        line-height: 30px;

        display: block;

        margin: 0 auto;

        padding: 0 10px;

        font-size: 14px;

    }

    #ul{

        width: 520px;

        list-style: none;

        margin: 0 auto;

        padding: 0;

        border:1px solid #ddd;

        margin-top: -1px;

        display: none;

    }

    #ul li{

        line-height: 30px;

        padding: 0 10px;

    }

    #ul li:hover{

        background-color: #f60;

        color: #fff;

    } </style>

<script> // 2.步骤二

    // 定义demo函数 (分析接口、数据)

    function demo(data){

        var Ul = document.getElementById('ul');

        var html = '';

        // 如果搜索数据存在 把内容添加进去

        if (data.s.length) {

            // 隐藏掉的ul显示出来

            Ul.style.display = 'block';

            // 搜索到的数据循环追加到li里

            for(var i = 0;i<data.s.length;i++){

                html += '<li>'+data.s[i]+'</li>';

            }

            // 循环的li写入ul

            Ul.innerHTML = html;

        }

    }



    // 1.步骤一

    window.onload = function(){

        // 获取输入框和ul

        var Q = document.getElementById('q');

        var Ul = document.getElementById('ul');



        // 事件鼠标抬起时候

        Q.onkeyup = function(){

            // 如果输入框不等于空

            if (this.value != '') {

                // ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆JSONPz重点☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

                // 创建标签

                var script = document.createElement('script');

                //给定要跨域的地址 赋值给src

                //这里是要请求的跨域的地址 我写的是百度搜索的跨域地址

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

抬起时候

        Q.onkeyup = function(){

            // 如果输入框不等于空

            if (this.value != '') {

                // ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆JSONPz重点☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

                // 创建标签

                var script = document.createElement('script');

                //给定要跨域的地址 赋值给src

                //这里是要请求的跨域的地址 我写的是百度搜索的跨域地址

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

[外链图片转存中…(img-MCCaLdjX-1630666418307)]

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

标签:function,Java,SpringMVC,Redis,springframework,color,注意事项,org,data
来源: https://blog.csdn.net/m0_61439560/article/details/120088224

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有