Cookie:使用Cookie实现记住用户的账号和密码

2023-11-17

目录:

  1. 练习一:java web(jsp)中使用cookie记住用户的账号和密码
  2. 练习二:java web(jsp+servert)中使用cookie记住用户的账号和密码
    进阶例题:java web中使用cookie记住用户的账号和密码
  3. 练习三:jsp使用cookie实现自动登录(在首次登录之后,将登录信息保存到cookie,再次访问的时候,不将登录信息显示在登录栏中,即登录信息空,但是也可以点击提交,默认从Cookie中获取信息登录,而练习一、练习二是将登录信息显示在登录栏中,然后提交)
  4. 练习四:js实现cookie记住用户的账号和密码(前后端分离实现Cookie,而不是使用jsp)
  5. 练习五:jquery实现cookie记住用户的账号和密码(前后端分离实现Cookie,而不是使用jsp)
  6. 练习六:html+jsp+servlet 使用cookie实现单点登录SSO,模拟腾讯网记住用户信息。
    同域下的单点登录是巧用了Cookie顶域的特性。
    单点登录(SSO)看这一篇就够了
  7. 域名、顶级域名、一级域名、二级域名。
    域名级数是指一个域名由多少级组成,域名的各个级别被“.”分开,最右边的那个词称为顶级域名
    一级域名:又称顶级域名,如.com、.net、.top、.org
    二级域名:就是在一级域名前再加一级,如qq.com,二级域名以上级别的域名,统称为子域名,不在“注册域名”的范畴中。个人可以申请注册二级域名。
    三级域名:如im.qq.com(qq)、qzone.qq.com(qq空间)、lol.qq.com(lol)、mail.qq.com(qq邮箱)....

练习一

首先是登录的页面,当用户首次输入账号和密码登录后,后台设置cookie的值,然后下次登录的时候就不用再次输入账号和密码了。

1.hello.jsp代码:登录页面,如果cookie中有值,则获取Cookie中的值填充到账号、密码所在的输入框。

<%@ page language="java" contentType="text/html;  charset=utf-8"  pageEncoding="utf-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
	<%
		String firstname="";
		String password="";
		Cookie[] c1=request.getCookies();
		if(c1!=null){
			for(Cookie c:c1){
				String cookiename=c.getName();
				if("first".equals(cookiename)){
					String val=c.getValue();
					firstname=val;
				}
				if("pass".equals(cookiename)){
					String val=c.getValue();
					password=val;
				}
			}
		}
	%>
	<form action="index.jsp">
		firstname:<input type="text" name="firstname" value="<%=firstname%>" placeholder="请输入账号"></input></br>
		password:<input type="password" name="password" value="<%=password%>" placeholder="请输入密码"></input></br>
		<input type="submit" value="提交"></input>
	</form>
</body>
</html>

2.index.jsp代码:点击登录后的跳转页面,将账号、密码保存到Cookie中。

<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World!<br/>
<% 
	String firstname=request.getParameter("firstname");
	String password=request.getParameter("password");
	if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
		Cookie c1=new Cookie("first",firstname);
		Cookie c2=new Cookie("pass",password);
		c1.setMaxAge(60*60*24);
		c2.setMaxAge(60*60*24);
		c1.setPath("/");
		c2.setPath("/");
		response.addCookie(c1);
		response.addCookie(c2);

	    out.println(firstname+"-"+password);
	}else{
		response.sendRedirect("hello.jsp");
	}
%>
</body>
</html>

3.第一次访问hello.jsp页面,里面是没有值的

4.输入值并点击提交

5.登录之后,现在cookie已经写入浏览器中。可以使用调试工具F12可以看到Cookie中保存的值。

6.重新启动浏览器,再次访问hello.jsp页面,可以看到已经不用再次输入账号和密码了。

练习二

原理和练习一相同,只是将Cookie实现部分放在在servlert中

1.hello.jsp相同

2.index.jsp如下

3.HelloCookie.java代码

package test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloCookie extends HttpServlet{
	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
		String firstname=request.getParameter("firstname");
		String password=request.getParameter("password");
		if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
			Cookie c1=new Cookie("first",firstname);
			Cookie c2=new Cookie("pass",password);
			c1.setMaxAge(60*60*24);
			c2.setMaxAge(60*60*24);
			c1.setPath("/");
			c2.setPath("/");
			response.addCookie(c1);
			response.addCookie(c2);

                        System.out.println(firstname+"-"+password);
                        //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
		        request.getRequestDispatcher("index.jsp").forward(request, response);
		}else{
			response.sendRedirect("hello.jsp");
		}
		
		
		
	}
}

4.web.xml中添加如下代码

    <servlet>
    	<servlet-name>servlet1</servlet-name>
    	<servlet-class>test.HelloCookie</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>servlet1</servlet-name>
    	<url-pattern>/aaa</url-pattern>
    </servlet-mapping>

5.运行效果:

6.输入账号密码登录后:

7.退出后重新登录:

练习三

和练习一结构目录相同,但是代码有所改变

hello.jsp

<%@ page language="java" contentType="text/html;  charset=utf-8"  pageEncoding="utf-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

	<form action="index.jsp">
		firstname:<input type="text" name="firstname"  placeholder="请输入账号"></input></br>
		password:<input type="password" name="password"  placeholder="请输入密码"></input></br>
		<input type="submit" value="提交"></input>
	</form>
	
</body>
</html>

index.jsp

<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World!<br/>
<%
	//第一步:获取登录信息
	String firstname=request.getParameter("firstname");
	String password=request.getParameter("password");
	//第二步:如果登录信息不为空,则将登录信息保存在cookie中
	if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
		Cookie c1=new Cookie("first",firstname);
		Cookie c2=new Cookie("pass",password);
		c1.setMaxAge(60*60*24);
		c2.setMaxAge(60*60*24);
		c1.setPath("/");
		c2.setPath("/");
		response.addCookie(c1);
		response.addCookie(c2);
	
	}else{//第三步:如果登录信息为空,则从cookie中获取上一次的登录信息
		Cookie[] c1=request.getCookies();
		for(Cookie c:c1){
			String cookiename=c.getName();
			if("first".equals(cookiename)){
				String val=c.getValue();
				firstname=val;
			}
			if("pass".equals(cookiename)){
				String val=c.getValue();
				password=val;
			}
		}
	}
	
	//第四步:如果登录信息不为空,则跳转到hello.jsp,如果登录信息为空,则返回登录页面
	if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
		out.println(firstname+"-"+password);
	}else{
		response.sendRedirect("hello.jsp");
	}
%>
</body>
</html>

运行效果:在首次登录之后,再次访问hello.jsp页面,即使登录信息为空,也可使用上一次的登录信息登录成功。

练习四

当首次输入并选择记住密码后,重启浏览器再次访问后,在输入栏会自动显示上次登录的信息

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
		/**用户登录,其中需要判断是否选择记住密码**/
		function checkCookie(){     
		    //简单验证一下  
		    var userName = document.getElementById("firstname").value;  
		    if(userName == ''){  
		        alert("请输入用户名。");  
		        return;  
		    }  
		    var userPass = document.getElementById("password").value;  
		    if(userPass == ''){  
		        alert("请输入密码。");  
		        return;  
		    }  
		    var objChk = document.getElementById("chkRememberPass");  
		    if(objChk.checked){  
		        //添加cookie  
		        setCookie("first",userName,7);  
		        setCookie("pass",userPass,7);  
		        alert("记住了你的密码登录。");  
		    }else{  
		        alert("不记密码登录。");   
		    }  
		}
		
		/**添加设置cookie**/  
		function setCookie(cname,cvalue,exdays){   
			var d = new Date();
			d.setTime(d.getTime() + (exdays*24*60*60*1000));
			var expires = "expires=" + d.toGMTString();
			document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";  
		}  

	    /**实现功能,保存用户的登录信息到cookie中。当登录页面被打开时,就查询cookie**/ 
	    window.onload = function(){  
	    	var userNameValue = getCookieValue("first"); 
	    	var userPassValue = getCookieValue("pass"); 
	    	//可在console中看到输出的userNameValue+"-"+userPassValue
	        console.log(userNameValue+"-"+userPassValue);
	    	document.getElementById("firstname").value = userNameValue;  
		    document.getElementById("password").value = userPassValue;  
	    }
	    
	    /**获取每个输入的值**/
	    function getCookieValue(cname) {
	        var name = cname + "=";
	        var decodedCookie = decodeURIComponent(document.cookie);
	        var ca = decodedCookie.split(';');
	        for(var i = 0; i <ca.length; i++) {
	            var c = ca[i];
	            while (c.charAt(0) == ' ') {
	                c = c.substring(1);
	             }
	             if (c.indexOf(name) == 0) {
	                return c.substring(name.length, c.length);
	             }
	         }
	        return "";
	    } 
 </Script>
</head>
<body">
	<form  method="post">
		用户名:<input type="text" id="firstname" name="firstname" " placeholder="请输入账号"></input></br>
		密码:<input type="password" id="password" name="password"  placeholder="请输入密码"></input></br>
		<span style="font-size:12px; color:blue; vertical-align:middle;">是否记住密码</span>  
        <input type="checkbox" id="chkRememberPass" name="chkRememberPass" /></br>
		<input type="submit" value="提交" onclick="checkCookie()"></input>
		<input type="reset" name="reset" value="重置"/>
	</form>

</body>
</html>

js cookie详解:JavaScript Cookies

练习五

项目目录结构

HelloCookie.java

package test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloCookie extends HttpServlet{
	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
		String firstname=request.getParameter("firstname");
		String password=request.getParameter("password");
		if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
			Cookie c1=new Cookie("first",firstname);
			Cookie c2=new Cookie("pass",password);
			c1.setMaxAge(60*60*24);
			c2.setMaxAge(60*60*24);
			c1.setPath("/");
			c2.setPath("/");
			response.addCookie(c1);
			response.addCookie(c2);

                        System.out.println(firstname+"-"+password);
                        //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
		        request.getRequestDispatcher("index.jsp").forward(request, response);
		}else{
			response.sendRedirect("hello.jsp");
		}
		
		
		
	}
}

web.xml

    <servlet>
    	<servlet-name>servlet1</servlet-name>
    	<servlet-class>test.HelloCookie</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>servlet1</servlet-name>
    	<url-pattern>/aaa</url-pattern>
    </servlet-mapping>

login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 引入jquery和cookie -->
	<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
	<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
	<script>
		$(document).ready(function(){
			var firstname=$.cookie("first");
			var password=$.cookie("pass");
			$("#firstname").val(firstname);
			$("#password").val(password);
		});
	</script>
	
	<form action="aaa">
		firstname:<input type="text" id="firstname" name="firstname" " placeholder="请输入账号"></input></br>
		password:<input type="password" id="password" name="password"  placeholder="请输入密码"></input></br>
		<input type="submit" value="提交"></input>
	</form>
</body>
</html>

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>成功啦</p>
</body>
</html>

运行效果:

当输入登录信息并提交后,再次访问login.html时,输入信息栏会自动出现登录信息。

练习六

比如腾讯产品家族:腾讯网(qq.com)是二级域名,qq音乐(y.qq.com)、qq空间(qzone.qq.com)、qq邮箱(mail.qq.com)、电脑管家(guanjia.qq.com)、英雄联盟(lol.qq.com)等都是三级域名

项目结构目录

1.HelloCookie.java

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloCookie extends HttpServlet{
	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		if(username!=null&&password!=null&&username!=""&&password!=""){
			Cookie c1=new Cookie("user",username);
			Cookie c2=new Cookie("pass",password);
			c1.setMaxAge(60*60*24);
			c2.setMaxAge(60*60*24);
			c1.setPath("/");
			c2.setPath("/");
			response.addCookie(c1);
			response.addCookie(c2);
			
			System.out.println(username+"-"+password);
			System.out.println(request.getServletPath());
			System.out.println(request.getContextPath());
			System.out.println(request.getRequestURI());
			String path=request.getServletPath();
			if(path=="/qq") {
				System.out.println("准备进入腾讯网主页");
				request.setAttribute("name", "这是腾讯网主页");
				//只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
				request.getRequestDispatcher("success.jsp").forward(request, response);
			}
			if(path=="/lol") {
				System.out.println("准备进入lol主页");
				request.setAttribute("name", "这是lol主页");
				//只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
				request.getRequestDispatcher("success.jsp").forward(request, response);
			}
			if(path=="/email") {
				System.out.println("准备进入qq邮箱主页");
				request.setAttribute("name", "这是email主页");
				//只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
				request.getRequestDispatcher("success.jsp").forward(request, response);
				
			}
	
		}else {
			response.sendRedirect("index.html");
		}
		
	}
}

2.LogoutServlet.java

package test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LogoutServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	// 遍历浏览器发送到服务器端的所有Cookie,找到自己设置的Cookie
        Cookie[] cookies=request.getCookies();
        if(cookies==null) {
        	response.sendRedirect("index.html");
        }else {
        	for(Cookie c:cookies) {
        		// 设置Cookie立即失效
        		c.setMaxAge(0);
        		/**
        		 * 删除Cookie时,只设置maxAge=0将不能够从浏览器中删除cookie,
        		 * 因为一个Cookie应当属于一个path,所以删除时,Cookie的这个属性也必须设置。
        		 */
        		c.setPath("/");
        		response.addCookie(c);
        	}
        }
        response.sendRedirect("logOut.jsp");
        
        
    }
}

3.web.xml添加如下

    <!-- qq -->
    <servlet>
    	<servlet-name>servlet1</servlet-name>
    	<servlet-class>test.HelloCookie</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>servlet1</servlet-name>
    	<url-pattern>/qq</url-pattern>
    </servlet-mapping>
    
    <!-- lol -->
    <servlet>
    	<servlet-name>servlet2</servlet-name>
    	<servlet-class>test.HelloCookie</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>servlet2</servlet-name>
    	<url-pattern>/lol</url-pattern>
    </servlet-mapping>
    
    <!-- email -->
    <servlet>
    	<servlet-name>servlet3</servlet-name>
    	<servlet-class>test.HelloCookie</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>servlet3</servlet-name>
    	<url-pattern>/email</url-pattern>
    </servlet-mapping>
    
    <!-- loginOut -->
    <servlet>
    	<servlet-name>servlet4</servlet-name>
    	<servlet-class>test.LogoutServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>servlet4</servlet-name>
    	<url-pattern>/loginOut</url-pattern>
    </servlet-mapping>

4.index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>这是腾讯网</p>
	<a href="loginQQ.html">登录</a></br>
	<a href="loginLOL.html">英雄联盟</a></br>
	<a href="loginEmail.html">qq邮箱</a></br>
	<p>......</p>
	<a href="loginOut">退出</a></br>
</body>
</html>

5.loginQQ.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录QQ</title>
</head>
<body>
	<!-- 引入jquery和cookie -->
	<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
	<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
	<script>
		$(document).ready(function(){
			var username=$.cookie("user");
			var password=$.cookie("pass");
			$("#username").val(username);
			$("#password").val(password);
		});
	</script>
	
	<h3>QQ登录</h3>
	<form action="qq" method="post">
	    <label>用户名:</label><input type="text" id="username" name="username"><br/>
	    <label>密 码:</label><input type="password" id="password" name="password"><br/>
	    <input type="submit" value="登录">
	</form>
</body>
</html>

6.loginLOL.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录英雄联盟</title>
</head>
<body>
	<!-- 引入jquery和cookie -->
	<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
	<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
	<script>
		$(document).ready(function(){
			var username=$.cookie("user");
			var password=$.cookie("pass");
			$("#username").val(username);
			$("#password").val(password);
		});
	</script>
	
	<h3>英雄联盟登录</h3>
	<form action="lol" method="post">
	    <label>用户名:</label><input type="text" id="username" name="username"><br/>
	    <label>密 码:</label><input type="password" id="password" name="password"><br/>
	    <input type="submit" value="登录">
	</form>
</body>
</html>

7.loginEmail.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录QQ邮箱</title>
</head>
<body>
	<!-- 引入jquery和cookie -->
	<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
	<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
	<script>
		$(document).ready(function(){
			var username=$.cookie("user");
			var password=$.cookie("pass");
			$("#username").val(username);
			$("#password").val(password);
		});
	</script>
	
	<h3>QQ邮箱登录</h3>
	<form action="email" method="post">
	    <label>用户名:</label><input type="text" id="username" name="username"><br/>
	    <label>密 码:</label><input type="password" id="password" name="password"><br/>
	    <input type="submit" value="登录">
	</form>
</body>
</html>

8.success.jsp

<%@ page language="java" contentType="text/html;  charset=utf-8"  pageEncoding="utf-8" %>
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
	<SCRIPT type="text/javascript">
		alert("登录成功!!!");
	</SCRIPT>
	<%
		out.println(request.getAttribute("name"));
	%>
	
</body>
</html>

9.logOut.jsp

<%@ page language="java" contentType="text/html;  charset=utf-8"  pageEncoding="utf-8" %>
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
	<SCRIPT type="text/javascript">
		alert("退出成功!!!");
	</SCRIPT>
	<%
		Cookie[] cookies=request.getCookies();
		if(cookies!=null){
			for(Cookie c:cookies){
				String name=c.getName();
				String value=c.getValue();
				out.println(name+"---"+value+";");
			}
		}
	%>
	<p>这是退出之后的页面</p>
	
</body>
</html>

运行效果:访问http://localhost:8080/testCookie/index.html

因为qq、lol、qq邮箱同属于腾讯产品,所以此项目实现3者只要登录一个,其他两者就可以自动获取账号和密码,实现自动登录功能,并且在点击退出按钮后,可以退出账号,下次登录时,需要重新输入账号和密码。模拟www.qq.com实现记住用户信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cookie:使用Cookie实现记住用户的账号和密码 的相关文章

  • 将用户库添加到 Ant Builder 类路径

    我在为 Eclipse 项目设置 Ant Builder 时遇到问题 我确实在 Eclipse 中将几个第 3 方库配置为用户库 这些库已添加到我的项目的构建路径中 一切正常 我的问题是 如果我想从 Eclipse 使用 Ant Build
  • 春天。使用java配置解决循环依赖而不使用@Autowired

    我有循环依赖和java配置 虽然使用 xml 配置解决它非常简单 但如果没有 Autowired 我无法使用 java 配置解决它 豆子 public class A private B b public B getB return b p
  • H2 - 多个应用程序访问同一个 H2 数据库

    我正在使用嵌入式数据库H2在 2 个网络应用程序中说WebApp1 and WebApp2 我运行 WebApp1 并执行一些查询来访问 H2 数据库 同时我运行 WebApp2 但它抛出异常H2 当前已被另一个进程使用 我的需求是 我应该
  • 在 Windows 7 中,不从命令行强制终止 JVM

    我在 JVM 中运行了 Cobertura 仪器化 jar 当我在运行应用程序的 Windows 控制台中按 Ctrl C 时 JVM 结束并Cobertura 结果已成功刷新到 cobertura ser 文件 但我需要使用命令 工具 不
  • Java:BufferedReader readLine() 中的 IOEXception 有何用途?

    我可以使用 try catch 循环 修复 以下异常 但我无法理解原因 为什么 in readLine 部分会不断引发IOExceptions 抛出此类异常的真正目的是什么 目标可能不仅仅是更多副作用 代码和 IOException jav
  • 如何在 Spring Boot 1.4 中自定义 Jackson

    我一直无法找到如何使用的示例Jackson2ObjectMapperBuilderCustomizer java在spring boot 1 4中自定义Jackson的功能 boot 1 4 中自定义 Jackson 的 doco http
  • 使用 Java NIO 直接访问 Windows 磁盘

    我正在使用一个使用 Java NIO 的库来直接将文件映射到内存 但我在直接读取磁盘时遇到问题 I can直接使用读取磁盘FileInputStream与 UNC 合作 例如 File disk new File PhysicalDrive
  • Selenium Webdriver 中显式等待 findElements

    登录后 页面重定向到一个页面 我想等待页面加载 我在其中按 tagName 查找元素 By inputArea By tagName input List
  • 用 Java 捕获扬声器输出

    使用Java可以捕获扬声器输出吗 此输出不是由我的程序生成的 而是由其他正在运行的应用程序生成的 这可以用 Java 完成还是我需要求助于 C C 我有一个基于 Java 的应用程序 使用过的爪哇声音 https stackoverflow
  • 如何更改tomcat jmx密码的文件权限

    我正在尝试保护 Windows 平台上托管的本地 tomcat 实例上的 JMX 访问 我已经创建了访问权限和密码文件 并使用以下 VM 参数插入这些文件 Dcom sun management jmxremote password fil
  • 在 jFrame 中启用右键单击

    嘿 我正在寻找如何使用 NetBeans 在 jFrame 中启用 仅且仅 右键单击并显示弹出菜单 使用我的代码 private void formMouseClicked java awt event MouseEvent evt pop
  • 如何告诉 Java SAX 解析器忽略无效字符引用?

    当尝试使用字符引用解析不正确的 XML 时 例如 x1 Java 的 SAX 解析器因致命错误而惨死 例如 org xml sax SAXParseException Character reference x1 is an invalid
  • 将 Class 对象转换为字节

    如果我有一个Class http java sun com j2se 1 5 0 docs api java lang Class html在运行时实例 我可以获得它的 byte 表示形式吗 我感兴趣的字节将在类文件格式 http java
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • 使用 colt java lib 时出现“矩阵太大”异常

    我正在使用 cern colt matrix lib 进行稀疏矩阵计算 但似乎我一直遇到此错误 线程 main 中的异常 java lang IllegalArgumentException 矩阵太大 我认为这是因为构造函数在 nrows
  • 在 Java Jersey 2 JAX-RS 中初始化单例

    我是泽西岛 2 22 2 的新手 请耐心等待 我正在创建一个与 LDAP 服务器交互的 REST 服务 用于存储 删除和检索用户数据 该服务通过执行加密 解密充当安全中介 在使用 REST 服务之前必须进行相当多的初始化 并且我只想执行此初
  • 我可以从同一个 jar 文件执行两个不同的类吗?

    我有一个项目 在一个包中我制作了服务器 在第二个包中我制作了客户端 它运行良好 我想创建一个 Jar 文件 是否可以使用同一个 jar 文件分别运行客户端和服务器 我使用了只有一个 main 的 jar 文件 当我运行 jar 文件时 它会
  • bean 中的 Spring JavaConfig 属性未设置?

    我正在考虑将 Spring JavaConfig 与一些属性文件一起使用 但 bean 中的属性未设置 bean 中的属性未设置 这是我的网络配置 Configuration EnableWebMvc PropertySource valu
  • 如何更改MultipartFile的originalFilename

    我在服务器端有一个 MultipartFile 文件 我想更改该文件的原始文件名 但该类仅支持 getOriginalFilename 谁能帮我这个 PS 上传的是图片文件 多谢 您可以使用 MockMultipartFile 类更改名称
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa

随机推荐

  • 【Python基础】Python简介

    开篇 从本篇文章开始 笔者将带着大家一起学习Python的入门基础知识 自从人工智能 大数据行业的兴起 Python变得炙手可热 成为了近几年最流行的语言之一 2018年 Python 语言上升了 3 62 其次是Visual Basic
  • AI算法工程师

    目录 机器学习 概率图模型 之 隐马尔可夫模型 HMM 一 马尔科夫链 二 HMM 的基本概念 1 HMM 背景与定义 2 HMM 的两个基本假设 3 确定 HMM 的两个空间和三组参数 三 HMM 三个基本问题 导图 四 HMM 相关算法
  • BLE MESH在配网广播中的Service UUID:1827与1828

    Mesh Provisioning UUID 1827 是一种服务的UUID 一般在广播包中中代表设备为未配网设备 也用于给配网器进行识别 在该服务下还有两个UUID 0x2ADB 用于写 0x2ADC 用于上报 在使用GATT配网阶段的数
  • java stack训练(1)

    有效的括号 给定一个只包括 的字符串 s 判断字符串是否有效 有效字符串需满足 左括号必须用相同类型的右括号闭合 左括号必须以正确的顺序闭合 class Solution public boolean isValid String s if
  • proteus 8.8 sp1 (含汉化、破解)安装方法

    若是按照此方法存在问题 欢迎大家留言评论 一 下载地址 链接 https pan baidu com s 1VtYO2dwKRV bMSG6xy6OEQ 提取码 pp9q 二 软件介绍 proteus软件在单片机仿真上面比较优越 8 6版本
  • linux与centos的关系

    首先大家应该都知道 操作系统主要分3个部分 分别是 内核 库 应用程序 内核主要管理与硬件的直接交互的原语代码就类似dao层的一个方法 是原子性的 而库是对内核的进一步封装 当一个功能需要多个原语时 就比如有的程序 需要键盘的输入 还需要显
  • UTSC-TK2016工具集使用笔记

    1 Pcap2Session ps1 对原始流量文件进行切分 以会话 所有层 会话 应用层 流 所有层 流 应用层的形式对原始流量文件进行切分 删除文件长度为0的数据 删除重复文件 生成2 Session文件夹 2 ProcessSessi
  • 数据结构实训-学生信息管理程序C语言版

    问题描述 学生信息包括 学号 姓名 年龄 性别 出生年月 地址 电话和 E mail等 试设计一个学生信息管理程序 实现学生信息的电子化管理 要求 使用文件方式存储数据 采用链表组织学生数据 基本要求 2 基本要求 系统以菜单方式工作 学生
  • java计算两个日期之间相差天数和相隔天数详解

    大家看到文章标题 两个日期之间相差天数和相隔天数 是否有疑惑呢 从中文字面理解 相差 和 相隔 是有区别的 然而就是这些区别害死很多人 却没有发现 在大量新增统计时是差之毫厘谬以千里 我能都发现是因为一个偶然的机会 一个项目运行几年却没有人
  • Ubuntu20.04安装后,root账户无法登录,ssh无法远程连接处理方法

    最近一直在用Ubuntu系统 发现了一些规律性的东西 每当安装完系统就得去做一些事情 要不然无法正常丝滑的使用 我把这几个罗列出来 装机的步骤我就省了 比较简单跟着向导来就行 不要最小化安装就行 1 更换apt 源为阿里云镜像源 下载包的时
  • 在前端页面下拉框动态显示数据库查询出来的结果,供客户勾选,限制客户自建字段(java版)

    最终效果 案例 前端代码 首先引入标签库jar和html代码 div class form group div
  • 08黑马笔记之栈的应用_就近匹配(括号)

    08黑马笔记之栈的应用 就近匹配 括号 思想 前提 使用栈的链式存储来实现 1 遇到左括号就放进栈中 再遇到右括号就将左括号从栈中删除 若栈中没有元素或者不是左括号 则说明右括号匹配失败 以上是判断右括号不匹配的 下面是判断左括号不匹配 2
  • pandas中DataFrame的修改元素值、缺失值处理、合并操作的方法

    实验目的 熟练掌握pandas中DataFrame的修改元素值 缺失值处理 合并操作的方法 实验原理 concat合并 pd concat objs axis 0 join outer join axes None ignore index
  • Qt Quick - Dial

    Qt Quick Dial使用总结 一 概述 二 使用 一 概述 Dial 表盘类似于音响或工业设备上的传统表盘旋钮 它允许用户在一个范围内指定一个值 像CircularGauge一样 Dial可以显示刻度来指示当前值 当一个合适的步长与t
  • centos7安装apt

    centos7安装apt 搜索并下载对应版本 rpmforge release 下载地址 https www rpmfind net linux rpm2html search php query rpmforge release 执行安装
  • 大型网站在架构上应当考虑哪些问题

    大型网站在架构上应当考虑哪些问题 分层 分层是处理任何复杂系统最常见的手段之一 将系统横向切分成若干个层面 每个层面只承担单一的职责 然后通过下层为上层提供的基础设施和服务以及上层对下层的调用来形成一个完整的复杂的系统 大型网站的软件系统也
  • 【Docker】Consul构建集群服务

    1 构建Docker Cousul集群服务 1 在 后输入mkdir consul命令 然后按Enter键 创建目录Consul 示例代码如下 mkdir consul ll 效果如图1所示 2 进入consul目录 在 后面输入cd co
  • 【WIN】【C++】遍历文件夹下所有文件

    遍历某一路径下的所有文件 主要用到的两个api是 findfirst和 findnext 接口已经封装好了 直接复制getAllFiles拿去用即可 封装接口 void getAllFiles string path vector
  • 测试人员代码走查基础要点

    代码走查 是测试人员了解代码逻辑 进行测试设计的重要环节 并且有很多bug并非需要到运行程序进行测试才能发现 通过合理的代码走查方法能提前发现相当多的BUG 除常见的业务逻辑与程序逻辑不符外 本文收集了在过往工作中的经常能发现BUG的走查要
  • Cookie:使用Cookie实现记住用户的账号和密码

    目录 练习一 java web jsp 中使用cookie记住用户的账号和密码 练习二 java web jsp servert 中使用cookie记住用户的账号和密码 进阶例题 java web中使用cookie记住用户的账号和密码 练习