重温jsp①
Jsp就是一个servlet
servlet的缺点
不适合设置html响应体,需要response。Getwriter.print();
优点:动态资源,可以编程。
Jsp:在原有的html中加入了Java代码。
Jsp和servlet的分工
Jsp:作为请求发出的页面,例如显示表单,超链接
作为请求结束的页面,例如显示数据的页面。
Servlet:作为请求中处理数据的环节。
Jsp脚本 生成的Java源码可以在work\Catalina\localhost\对应的项目名\jsp中看到源码
在第一次访问该jsp页面的时候生成。编译成class文件,并生成对象,调用service方法
<%....%>内可以放方法里面放的东西 必须要加分号,以为生成的是Java代码。
比如 <%Integer s=(Integer)request.getAttribute("result"); %>
在对应的Java代码中是Integer s=(Integer)request.getAttribute("result");
<%=….%>内放页面中显示的东西
例如<%=s %>
在对应的Java代码中是这样的:out.print(s );
<%!....%>内放类中可以放的东西
<%!int a=6; %>
在对应的Java代码中,
public final class form_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
int a=6;
jsp中的页面元素对应的Java源码out.write(" This is my JSP page. <br>\r\n");
jsp注释
<%-- --%>当服务器把jsp编成Java文件时已经忽略了注释的部分!
Cookie
<body> 保存cookie <br> <% Cookie cookie1=new Cookie("aaaa","AAAA"); response.addCookie(cookie1);
Cookie cookie2=new Cookie("bbbb","BBBB"); response.addCookie(cookie2); %> </body>
<body> 获取cookie <br> <% Cookie[]cookies=request.getCookies(); for(Cookie c:cookies){ out.print(c.getName()+"=="+c.getValue()+"<br>"); } %> </body> |
Cookie的maxAge:cookie的最大生命,即cookie可保存的最大时长,以秒为单位,
MaxAge>0:浏览器会把cookie保存到客户机的硬盘上。
MaxAge<0:cookie只在内存中存在,当用户关闭浏览器时,同时cookie也就灭亡了
MaxAge=0:浏览器会马上删除这个cookie
Cookie 的路径 ---访问路径在cookie的路径下面或同级 才能看见cookie的存在
当前文件所在的目录,不包含就不带, 父级目录下有cookie访问子目录可也看到cookie
看请求的cookie,存储用响应
Cookie的共享域 domain
Domain用来指定cookie中的域名!当多个二级域名共享cookie时才使用。
Domain:cookie.setDomain(".baidu.com");
Cookie.setPath("/");