index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page session="false" %> <%--注意这一句,很重要--%><%----%>IDEA搭建SpringMVC并用maven配置的小例子 <%-- --%><%----%>
package com.springmvc.controller;/*** IDEA搭建SpringMVC并用maven配置的小例子*/import com.springmvc.entity.User;import com.springmvc.service.UserService;import org.apache.log4j.Logger;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.util.HashMap;import java.util.List;import java.util.Map;@Controller@RequestMapping("/user")public class ViewController {private Logger logger = Logger.getLogger(ViewController.class);@Resource(name = "UserService")private UserService userService;@RequestMapping("/index")public String index(HttpServletRequest request, HttpServletResponse response) {logger.info("进入 index 方法");HttpSession httpSession = request.getSession();return "index";}}
总结:
session不是一打开网站就会立刻建立。
它的建立需要基于下面两个条件中的任意一个:1:在servlet中手动调用
HttpSession session = request.getSession();
或者 HttpSession session = request.getSession(true); 2:jsp中没有写<%@ page session="false"%>(默认情况下它是<%@ page session="true"%>的)
如果两个条件同时都不满足,那么你建立的只是一个无seesion的连接。
HttpSession session = request.getSession()与HttpSession session = request.getSession(true)有何区别? 加true与不加true有何区别?加false又是什么效果? 一般都怎么用?
HttpSession session = request.getSession() 与 HttpSession session = request.getSession(true) 在效果上没有区别。只不过 request.getSession() 让你少打几个字而已。 request.getSession() 自动调用了 request.getSession(true)。 -------------------------------------------- request.getSession(boolean create) 如果有与当前的request相关联的HttpSession,那么返回与当前request关联的HttpSession, 如果还没有,那么: 如果 create == true 那么返回一个新建的HttpSession;如果 create == false,那么返回 null。