JSP构成:
一、指令标签
1.<%@page language="java" import="java.util.*" contentType="text/html;charset=utf-8" pageEncoding="UTF-8"%>
要注意的是:pageEncoding是设定服务器按照哪种编码格式读取JSP文件,contentType设定JSP以哪种编码格式输出网页内容。
2.<%@include file="date.jsp"%>:被包含的JSP页面中不能使用<html>和<body>标签。
3.<%@taglib prefix="c" uri="/WEB-ING/tags/view.tld"%>
二、HTML标记语言
三、注释
1.<!-- HTML注释--> 源码中可以看到
2.<%-- JSP注释 --%> 源码中也看不到
3.<!-- <%=new Date()%>-->
四、嵌入Java代码
1.<% 编写Java代码 %>
2.<%! 声明全局变量 %>
3.<%= 表达式 %>最终结果都是字符串类型。
五、JSP动作标签
动作标签优先级低于指令标签,在JSP页面中被执行时将首先进入翻译阶段,程序会先查找页面中的指令标签,将它们转换成Servlet,从而设置整个JSP页面。
1.<jsp:include page="url" flush="false|true"/> 注意与指令标签的区别是相对路径和包含资源(先处理后合并/直接合并)。
2.<jsp:forward page="user.jsp">
<jsp:param name="userName" value="haorui">
</jsp:forward>
六、内置对象
1.request对象:
除了可以获取请求参数中传递的值外,还可以获取从表单中提交的信息。
(1)getParameter():文本元素、单选按钮、单选下拉框都可以获取具体的值;getParameterValues():获取复选框及多选框,返回字符串数组,循环遍历这个数组。
(2)cookie是小段的文本信息,可以标识用户身份、记录用户名及密码,跟踪重复用户。cookie是在服务器端生成并发送给浏览器,然后浏览器将cookie的key/value保存到某个指定目录,可以设置cookie的有效时间setMaxAge()。
整个流程是:通过request.getCookies()获取cookie对象集合,遍历集合利用cookie.getNames()获取到指定名称cookie,再通过getValue()方法取到cookie对象的值;将cookie对象发送到客户端是使用的response.addCookie();
2.response对象
一个重点是sendRedirect():重定向,地址栏中URL会变,另外之前的request属性全部失效,并且进入一个新的request对象。其两者作用域都是jsp页面。另外在jsp页面中使用该方法前面不能有HTML代码,而且要在重定向操作后放一个return,避免发生错误。
通常情况下服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区。response对象的setBufferSize()可以设置缓冲区的大小。在jsp页面中调用flushbuffer()方法或out对象的flush()方法可以将缓冲区的内容写到客户端。也可以用response对象的isCommitted()方法来检测服务器端是否已经把数据写入客户端。
3.session对象
是由服务器自动创建的与用户请求相关的对象。服务器会为每个用户都生产一个session对象用于保存该用户的信息(使用Map类来保存数据)。
创建及获取session信息:setAttribute(String key,Object obj)、getAttribute(String key);//session默认在服务器上的时间为30分钟。
移除和销毁:removeAttribute(String key)/invalidate()
4.application对象
可将信息保存在服务器中,直到服务器关闭才失效。类似于系统的全局变量。可以使用它获取连接数据库的信息,一些参数都配置在tomcat的web.xml文件中。