JavaEE学习笔记之Servlet

来源:互联网 发布:java web开发实战 编辑:程序博客网 时间:2024/06/08 09:31

同一用户的不同页面的共享数据

1.1 cookie技术

1.2 sendRedirect()转向

1.3 隐藏表单

1.4 session技术


session技术:

当用户打开浏览器,访问某个网站是服务器就在服务器内存中外该浏览器分配一个空间,该空间被这个浏览器独占

 //得到session HttpSession hs = request.getSession(true); //向session中添加属性 hs.setAttrubute(String name, Object obj); //从session得到某个属性 String name = hs.getAttribute(String name); //从session删除某个属性 hs.removeAttribute(String name);
  1. session中属性存在的默认时间是30分钟(间隔时间,即所谓的发呆时间),你也可以在web.xml中修改(tomcat中的web.xml文件),或者是在程序中修改
  2. 当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的session id并以此来区分不同的浏览器
  3. session的各个属性都会吃服务器的内存的

sendRedirect()转向

引用块内容

隐藏表单

<input type = "hidden" name="sex" value="1" />

servlet中显示图片

//在项目目录下放图片
PrintWriter out = response.getWriter();
out.println("<img src='???' >);"

Servlet操作数据库

特别要注意sql注入漏洞

select * from member where name='admin' and password='admin' or 1='1';
这样查出来的就是数据库中所有的信息

在写登录验证时,使用jdbc连接数据库,查询语句如果是使用的sql语言拼接的方式,在输入框中输入 aaa’ or 1=’1’ 时,就会跳过登录界面

分页技术

首先需要定义四个变量
int pageSize //每页显示多少条记录
int pageNow //希望显示第几页
int pageCount //一共有多少页
int rowCount //一共有多少条记录


说明:
pageSize // 是程序员设定
pageNow //用户选择
rowCount //是从表中查询得到的
pageCount //计算出来的`

if(rowCount % pageSize == 0)    pageCount = rowCount%pageSize;else    pageCount = rowCount%pageSize + 1;

实际利用数据库查询的操作实现分页

//分页数据库查询核心代码select top ? * form table where id not in (select top ? id from table)//第一个问号的值是每页显示的条数,第二个问号的值是 (希望显示页数-1)的值//利用页面的跳转,每跳转一次就执行一次查询语句,显示当前查询的内容

cookie技术

cookie是在服务端生成,然后写回到客户端
cookie类似于Java中的Map集合(键值对),其名字就是Map的键,其值就是Map的值
cookie的名字和值的类型都是String类型


创建cookie

//在服务器端创建一个cookieCookie cookie = new Cookie("name", name);//该cookie的生存时间, 计时为 秒//如果不设置生存时间,该cookie是不会被保存的cookie.setMaxAge(30);//将该cookie写回到客户端,通过response对象来完成response.addCookie(cookie);

在客户端读取cookie

//从客户端得到所有的cookie信息Cookie[] allCookie = req.getCookie();int i=0;if(allCookie!=null){    //遍历该Cookie数组    for(i=0; i<allCookie.length;i++){        //依次取出        Cookie temp = allCookie[i];        //判断是否是需要的Cookie(通过cookie名称来识别)        if(temp.getName().equals("name")){            //取出该cookie的值            String val = temp.getValue();        }    }}

cookie和session的比较

  • cookie保存在客户端,session保存在服务器端
  • cookie的安全性比session要弱
  • cookie通过网络在客户端与服务器端传输,而session保存在服务器端,不需要传输

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

可以使用冒号来定义对齐方式:

项目 价格 数量 Computer 1600 元 5 Phone 12 元 12 Pipe 1 元 234