最后
这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)
10
- 通过会话对象的 setMaxInactiveInterval() 方法设置会话的最大不活动时间(个别):
session.setMaxInactiveInterval(600); //单位为”秒“
-
会话对象除了在超过最大不活动时间自动失效外,也可以通过调用invalidate() 方法让其立即失效。
-
示例:设置会话立即失效:
session.invalidate ();
-
服务器在执行会话失效代码后,会清除会话对象及其所有会话域属性,同时响应客户端浏览器清除 Cookie 中的 JSESSIONID 。
-
在实际应用中,此方法多用来实现系统的“安全退出”,使客户端和服务器彻底结束此次回话,清除所有会话相关信息,防止会话劫持等黑客攻击。
5.演示
演示使用Session实现购物车
创建phoneChoose.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%
//session.removeAttribute(“shoppingCar”);
//session.invalidate();
%>
<%
out.print(“
手机商城
”);
%>
华为P30
华为mate30
iphone11
iphone12
小米10pro
三星S20
iqoo3
vivo NEX3
创建ShoppingCarServlet
package com;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
- Servlet implementation class ShoppingCarServlet
*/
@WebServlet(“/ShoppingCarServlet”)
public class ShoppingCarServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
- @see HttpServlet#HttpServlet()
*/
public ShoppingCarServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
-
response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding(“utf-8”);
HttpSession session = request.getSession();
Map<String, Integer> car = (Map<String, Integer>) session.getAttribute(“shoppingCar”);
if (car == null) {
car = new HashMap<>();
}
String[] phones = request.getParameterValues(“phone”);
if (phones != null && phones.length > 0) {
for (String phone : phones) {
// 判断购物车中是否有某手机的购买信息
if (car.get(phone) != null) {
int num = car.get(phone);
car.put(phone, num + 1);
} else {
// 第一次购买手机
car.put(phone, 1);
}
}
}
session.setAttribute(“shoppingCar”, car);
response.sendRedirect(“ShoppingListServlet”);
}
/**
-
@see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
-
response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
创建ShoppingListServlet
package com;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
- Servlet implementation class ShoppingListServlet
*/
@WebServlet(“/ShoppingListServlet”)
public class ShoppingListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
- @see HttpServlet#HttpServlet()
*/
public ShoppingListServlet() {
super();
总结
无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。
,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。
[外链图片转存中…(img-Zm2ffagL-1714855458067)]