rs.getDate()--只包含日期
rs.getTimeStamp() --包含日期和时间
rs.getDate()--只包含日期
rs.getTimeStamp() --包含日期和时间
服务器端如何识别不同的用户呢?
服务器会为每个用户保存一个空间(会话ID+保留内容)
会话ID会在发送请求的时候包含在头信息中自动发送(服务器会对比会话ID,然后识别对应的保留内容)
HTTP协议不负责保存客户的状态
是依靠用户的会话ID和服务器中保存的会话ID实现的状态保存
所有的 Cookie 随着请求发送
设置头信息
执行交互的过程中,除了发送的参数内容,还有许多附加信息
取得头信息
使用request对象取得
请求发送的组成
·表单内容
·头信息(个人IP地址,个人主机名称,浏览器版本)
请求重定向
在response对象中存在一个跳转方法(请求重定向)
sendRedirect(String path) throws IOException
执行后,页面会进行跳转,且地址栏会发生改变,为客户端跳转,无法传递request属性范围
面试题:JSP中两种跳转区别
· 客户端跳转:
-- 跳转后地址栏变为目标路径,无法传递request属性
-- 页面执行完毕后
-- 实现语法:超链接,window.location, response.redirect()
· 服务器跳转(jsp:forward指令):
-- 跳转后地址栏不会改变,可以传递request属性
-- 无条件跳转,跳转后的代码不会执行
-- 实现语法:<jsp:forward path=""/>
每个用户连接对于服务器端而言叫“线程”。
· 线程发送请求,使用HTTP协议处理
· 线程回应请求,使用HTTP协议处理
服务器依靠 HttpServletRequest 接口取得客户端发来的请求
服务器依靠 HttpServletResponse 回应请求
独立的JSP文件需要写上
<%@ page pageEncoding="utf-8"%>
<% request.setCharactorEncoding="UTF-8"%>
页码控制:
1. 需要定义一个种子数 seed
- 如果页码数量> seed*2 ,则部分显示,否则全部显示
- 如果总页数很多,需要
模糊查询
1. 考虑可能出现的查询列
基础分页控制条实现
1. 控制条的链接地址都是url,传递的参数不同而已
---形式:
<a href="<%=url%>?cp=<%=currentPage-1%>&ls=10">上一页</a>
2. 上一页:currentPage-1
3. 下一页:currentPage+1
4. 如果已经在第一页,首页和上一页的功能应该禁止使用(进行判断:currentPage==1时禁用)
5. 尾页控制:需要获得总页数(总记录数/linesize 向上取整)
-- 如果到了尾页,禁用下一页和尾页(判断:currentPage==尾页)
任何程序需要考虑三种情况
1. 没有输入数据
2. 返回的数据有一条时会不会出问题
3. 返回的数据有多条时会不会出问题
整个分页控制是建立在 linesize 和 currentpage的基础上的
只要传递 ls 和 cp 两个参数到相应的JSP页面,进行数据库查询即可实现
JSP两种包含:
静态包含:<%@include%>
动态包含:<jsp:include>
一个Tomcat服务器上可以发布多个项目。
但是每个项目都有自己的目录,这个目录就叫做虚拟目录。
Tomat
Tomat:免费
www.apache.org
Apaches是一个公益的技术基金组织。
80%
案例
案例有难度
由一个页面跳转到另外一个页面的功能称为跳转操作,而对于跳转操作也有两种语法形式:
1、直接跳转,不传递参数
<jsp:forward page="跳转页面"/>
2、跳转后进行参数传递
<jsp:forward page="跳转页面">
<jsp:param name="参数名称" value="参数内容"/>
<jsp:param name="参数名称" value="参数内容"/>
<jsp:param name="参数名称" value="参数内容"/>
...
</jsp:forward>
实际上跳转语法和包含语法的形式是相同的,并且都属于标签指令形式,对于此类形式的操作最终一定要进行标签的完结。
现在假设定义一个被跳转的页面-param.jsp
<%@ page pageEncoding="UTF-8"%>
<%
int num = 100 ;
%>
<h1>param.jsp、num=<%=num%></h1>
<h1>参数一:<%=request.getParameter("pa")%></h1>
<h1>参数二:<%=request.getParameter("pb")%></h1>
定义跳转页面
<%@ page pageEncoding="UTF-8"%>
<h1>你真的好聪明啊</h1>
<hr>
<jsp:forward page="param.jsp">
<jsp:param name="pa" value="hello"/>
<jsp:param name="pb" value="world"/>
</jsp:forward>
此时执行之后可以发现,虽然页面已经跳转过去了,但是此时路径没有发生任何的改变,这样的跳转在整个JSP之中称为服务器端跳转。
总结:
1、jsp:forward依然属于标签指令必要对其进行完结处理。
2、此类跳转属于服务器端跳转,特点:页面显示改变,地址不改变。
web服务插件的功能是区分用户的请求是动态请求,还是静态请求。
在ASP基础之上退出了ASP.NET
CGI是多进程,后来发展ASP,再到PHP.
目前比较流行的Servlet/JSP,是使用Java实现的CGI技术,多线程。
后来发展起来有Ruby,Node.JS:从国外来讲,这两个技术比较流行,在国内淘宝使用Node.JS.
现在新上的项目一般使用的是JAVA。
<c:if test="" var="">
</c:if>
EL采用的是反射的形式。List集合只能使用iterator输出