@WebServlet("/reply")
public class ReplyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
//创建session对象
HttpSession session = req.getSession();
List<Reply> list = (List<Reply>) session.getAttribute("list"); //判断session中有没有数据 有的话直接跳转 没的话查数据库
if (list==null){
//连接业务层 QuaryServiceImp quaryServiceImp = new QuaryServiceImp();
List<Reply> replies = quaryServiceImp.quaryAll();
session.setAttribute("list", replies); }
resp.sendRedirect("reply.jsp"); }
}

  

<%@ page import="java.util.List" %>
<%@ page import="com.bjsxt.entiy.Reply" %><%--
Created by IntelliJ IDEA.
User: 60590
Date: 2019/11/28
Time: 19:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<base href=<%= request.getContextPath()%>/>
<script src="jq/jquery-1.9.1.js"></script>
<script>
$(function () {
$("td:even").css("background","pink");
})
</script>
</head>
<body>
<%
HttpSession session1 = request.getSession();
List<Reply> list = (List<Reply>) session1.getAttribute("list");
%>
<table border="1px"width="50%">
<tr>
<th>评论编号</th>
<th>帖子编号</th>
<th>评论作者</th>
<th>评论内容</th>
<th>评论时间</th>
</tr>
<%
for (Reply reply:list) {
%>
<tr>
<td><%=reply.getReplyid()%></td>
<td><%=reply.getTopicid()%></td>
<td><%=reply.getAuthor()%>></td>
<td><%=reply.getContent()%></td>
<td><%=reply.getCreatedate()%></td>
</tr>
<%
}
%>
</table>
</body>
</html>

  

<%--
Created by IntelliJ IDEA.
User: 60590
Date: 2019/11/28
Time: 19:29
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<base href=<%= request.getContextPath()%>/>
</head>
<body>
<<a href="reply">点击查询全部帖子</a>
</body>
</html>

  

Cookie与Session的区别

共同点:同一用户的不同请求的数据共享
区别: Cookie是客户端的数据存储技术,
Session是服务器端的数据存储技术

cookie数据存放在客户端,session数据放在服务器上(sessionid可以通过cookie保存在客户端,也可以使用URL重写方式)

•cookie不是很安全(可以加密),别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session

•session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE

•单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
•Cookie的数据都以字符串的形式保存。Session中可以保存对象信息。

•典型使用
•Cookie:记住我 最近浏览商品 网页皮肤
•session:登录信息 购物车(也可以使用Cookie)

使用session存储数据的更多相关文章

  1. 一般处理程序ashx中用session存储数据

    如果要使用session的话,在handler的代码中添加System.Web.SessionState的引用,并让这个handler继承IRequiresSessionState接口,一定要继承这个 ...

  2. aJax提交——服务端不能用request存储数据,session存数据客户端可以接收到

    aJax提交与普通提交是两种迥异的提交方式,这两种提交方式决定了客户端与服务端交互时存储.传输数据的方式也不同. aJax提交,客户端的请求数据存储在data中,服务端用request.getPara ...

  3. memcached命令行、Memcached数据导出和导入、php连接memcache、php的session存储到memcached

    1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND  如: set key3 ...

  4. 78)PHP,编写session存储机制(将数据写进数据库)的代码整理(未实验)

    <?php function userSessionBegin() { echo '<br>Begin<br>'; //初始化数据库服务器连接,这个函数是最先执行,所以, ...

  5. Jetty集群配置Session存储到MySQL、MongoDB

    在Web开发中,Session表示HTTP服务器与客户端(例如浏览器)的“会话”,每个客户端会有其对应的Session保存在服务器端,通常用来保存和客户端关联的一些信息,例如是否登录.购物车等. Se ...

  6. Session 知识点再整理(二) 自定义 Session 存储机制

    对于访问量大的网站,用默认的 Session 存储方式(以文件存储)不适合,因为文件的 I/O 开销会非常大,另外 Session 机制本身使 Session 不能跨机访问,在 Web 集群中无法达到 ...

  7. C# redis 分布式session存储

    https://github.com/uliian/SessionExtentionStore 一个基于Redis的Session存储扩展方案,解决ASP.NET中Session的局限性和跨应用程序使 ...

  8. Jetty容器集群配置Session存储到MySQL、MongoDB

    在Web开发中,Session表示HTTP服务器与客户端(例如浏览器)的"会话",每个客户端会有其对应的Session保存在服务器端,通常用来保存和客户端关联的一些信息,例如是否登 ...

  9. HTML5学习笔记之客户端存储数据方法:localStorage(),sessionStorage()

    HTML5提供了两种在客户端存储数据的新方法: localStorage():没有时间限制的数据存储 sessionStorage():针对一个session的数据存储 下面的一个例子用localSt ...

随机推荐

  1. linux terminal 快捷键

    删除 快捷键 描述 Ctrl+h 删除光标位置的前一个字符(同 backspace 键功能) Ctrl+* 删除光标位置的前一个字符(同 ctrl+h 组合键功能) Ctrl+d 删除光标位置的一个字 ...

  2. logrus 剖析之滚动日志

    在实际开发过程中,为了节省磁盘,日志需要按照时间或者大小维度进行切割分成多分,归档过期的日志,删除久远的日志.这个就是在日常开发中经常遇见的日志滚动(log rotation) 那么在 logrus ...

  3. Hadoop之MapReduce流程

    hadoopMapReduce 1. MapReduce流程 2. Shuffle流程 1. MapReduce流程 MapReduce流程 切片: 对数据进行逻辑划分,默认大小是一个block块大小 ...

  4. 接口认证:Bearer Token(Token 令牌)

    因为HTTP协议是开放的,可以任人调用.所以,如果接口不希望被随意调用,就需要做访问权限的控制,认证是好的用户,才允许调用API. 目前主流的访问权限控制/认证模式有以下几种: 1)Bearer To ...

  5. JavaScript对象复制

    近期项目因为怕数据污染所以用到了js的对象复制 js里的对象都是继承自object,是引用类型,所以无法通过=号复制 所以整理了一些常用的复制方法,如下 一.通过JSON序列化和反序列化创建新的对象 ...

  6. HTML表格跨行、跨列操作(rowspan、colspan)

    转自:https://blog.csdn.net/u012724595/article/details/79401401 一般使用<td>元素的colspan属性来实现单元格跨列操作,使用 ...

  7. [C#]DataTable转string[]

    来源:https://zhidao.baidu.com/question/1754089856824824548.html string[] ary = Array.ConvertAll<Dat ...

  8. iOS-H5交互综合整理

    1.WKWebView的使用 2.常见问题 2.1 iOS开发 WKWebView下js的alert(),confirm(),prompt()方法无法正常执行

  9. 如何方便引用自己的python包

    有时候想要把一些功能封装成函数然后包装到模块里面最后形成一个包,然后在notebook里面去引用它去处理自己的数据和分析一些有用的部分,比如自己在 之前用到的一个datascience模板就是这样组织 ...

  10. Find 命令记录

    当需要查找一个时间的文件时 使用find [文件目录] -mtime [时间] 例如:查看mysql.bak目录下的1天前的文件 find mysql.bak -mtime 找到此文件之后需要将它移动 ...