httpsession超时设置及大小

httpsession超时设置及大小,第1张

httpsession超时设置及大小可以重新设置。

在Servlet代码中,使用HttpSession对象的方法setMaxInactiveInterVal(int)设置一个会话维持非活动状态的最大秒数来更改大小

HttpSession是Java平台对session机制的实现规范。

1、session的过期时间设置有误

2、设置或获取session有误

而我的问题出现在计算机名 和localhost上。其实两者都映射到127.0.0.1上在host上配置了,但是chrome和tomcat把它看成了不同的域了 session被卡了一节。

简单的代码 登录---->servlet处理-->处理成功-->设置session-->跳转到main.jsp

[html] view plaincopyprint?

<form class="form-signin form-horizontal" method="post" action="<%=basePath %>servlet/LoginServlet">

<div class="row">

<div class="span5">

<div class="control-group">

<label class="control-label" for="user_brchno">机构号:</label>

<div class="controls">

<input type="text" id="user_brchno" class="input-block-level typeahead" name="user_brchno" autocomplete="off" placeholder="请输入机构"></div>

</div>

<div class="control-group">

<label class="control-label" for="user_userno">柜员号:</label>

<div class="controls">

<input type="text" id="user_userno" class="input-block-level typeahead" autocomplete="off" name="user_userno" placeholder="请输入柜员号"></div>

</div>

<div class="control-group">

<label class="control-label" for="user_name">姓名:</label>

<div class="controls">

<input type="text" id="user_name" class="input-block-level typeahead" autocomplete="off" name="user_name" placeholder="请输入姓名"></div>

</div>

<div class="control-group">

<div class="controls">

<input type="submit" class="btn btn-small btn-primary " value="登录"></div>

</div>

</div>

</div>

</form>

登录处理servlet

[java] view plaincopyprint?

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("UTF-8")

UserWrap userWrap = new UserWrap()

User user = new User()

HttpSession session = request.getSession(true)

boolean flag = false

try {

flag = UserWrap.login(session, request, user)

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

if (flag) {

session.setAttribute("user", user)

// RequestDispatcher rd = request.getRequestDispatcher("/main.jsp")

//rd.forward(request, response)

/*

**response.sendRedirect("http://localhost:8888/Type/main.jsp")

*/

response.sendRedirect("http://alan:8888/Type/main.jsp")

} else {

response.sendRedirect("http://localhost:8888/Type/index.jsp")

}

}

奇葩出现在我标记星号的那行 变大(居然变大也不行!!!!!)的那行代码(代码里不能上颜色啊!!!!),因为上下文环境为我计算机名http://alan:8888/Type/来对待的 所以对于http://localhost来说设置好的seesion对他没起作用,所以main.jsp永远得不得session.折腾了好久总算搞明白了 哈哈

main.jsp页面

[html] view plaincopyprint?

<%

String path = request.getContextPath()

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/"

User user = new User()

if (session.getAttribute("user") == null) {

response.sendRedirect(basePath)

} else {

user = (User) session.getAttribute("user")

}

%>

什么意思,

如果servlet中用session 那么,

HttpSession session=request.getSession()  request请求得到回话session

session.setAttribute(String arg, Object obj)在session会话中放一个键-值对 ,键为String类型的arg ,  值为 Object类型(任意类型) obj

session.getAttribute(String arg),  从session中取 值,通过键arg--》得到值

在详细就查看servlet的API 帮助文档


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11082858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存