jsp笔记
来源:互联网 发布:彩票数据下载 编辑:程序博客网 时间:2024/06/05 17:58
jsp代码提示
右键点击要开发的jsp文件,选择“open with”,然后选择用MyEclipse JSP Editor打开jsp文件,
写jsp代码就会有标签提示了,也可在jsp中任一位置按ALT+/快捷键,也会弹出标签提示框
设置jsp文件默认打开方式:Window->Preferences->Editors->File Associations:
设置jsp网页工程的访问路径:右击项目工程->properties->MyEclipse->Web:修改Web Context-root
1.jsp注释:<%--jsp注释--%>:客户端不可见 // /**/
2.jsp声明
<%!
String str = "Hello";
int add(int a, int b)
{
return (a+b);
}
%>
3.jsp表达式
<%=表达式%>
<%=add(3,5)%>
3.jsp内置对象
1)out/request/response/session/application(<--常用) /Page/pageContext/exception/config
out:JspWriter类的实例,
常用方法:println() 、getBufferSize()、getRemaining()返回缓冲区剩余可用大小
isAutoFlush()返回缓冲区满时,是自动清空还是抛出异常
close()关闭流
clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常
clearBuffer()清除缓冲区的内容,如果在flush之后调用不会抛出异常
flush()将缓冲区内容输出到客户端
2)request
getParameter(String name):返回单个值
request.getParameterValues(String name):返回一个数组(如checkbox的值)
request.setCharacterEncoding("utf-8");设置字符集,解决中文乱码问题,无法解决URL传递中文的乱码问题。
修改tomcat中conf中的server.xml中的内容解决URL传递中文的乱码问题。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
request.setAttribute(String,Object)/getAttribute
request.getContentType()获取请求体的MIME类型
request.getServerName()获取主机名
request.getServerPort()
request.getRmoteAddr()获取主机ip
request.getRealPath:请求的真实路径
3)response.getCharacterEncoding()
response.setContenType(String type)设置响应的MIME类型
response.getWriter()返回客户端输出字符的一个对象(PrintWriter),打印的信息先于内置对象out
可以通过out.flush()强制输出,保证顺序
response.sendRedirect(String location ) 重定向
4) 请求转发与请求重定向
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏URL地址不会改变
5)session 对象是HttpSession类的实例。
从一个客户端打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,
称为一个会话,也是一个session的生命周期。
session.getId()
setAttribute(String name,Object value)
setMaxInactiveInterval():返回两次请求间隔多长时间session被取消(单位秒)
生命周期:
除非本次会话页面都全部关闭后重新访问某个jsp或者servlet将会创建新的会话。
(旧的session 超时后销毁)
session销毁:
Tomcat默认超时时间:30分,可以在web.xml里面配置
session.invalidate();销毁当前会话
6)application对象:
application对象实现了用户间数据共享,可放全局变量。
application开始于服务器的启动,终止于服务器的关闭。
在用户的前后连接或者不同用户之间的连接中,可以对application对象的同一属性进行操作。
setAttribute/getAttribute方法等
7)page对象
page对象就是指当前jsp页面本身。
page.toString()
8)pageContext对象
提供对JSP页面内所有对象及名字空间的访问
JspWriter getOut()
getSession()/getPage()/getRequest()/getResponse()/forward/include(String relativeUrlPath)包含另一文件
9)config对象是在一个Servle初始化时,JSP引擎向它传递信息用.
getServletContext()等
10)exception对象(需要在jsp页面中设置isErrorPage=“true"才能使用
getMessage()/toString()/printStackTrace()/FillInStackTrace()重写的执行轨迹
4.Javabean
Javabean设计原则:公有类、无参的公有构造方法、属性私有、getter和setter方法
1)Jsp动作:
①与存取JavaBean有关的
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
<jsp:useBean id="标识符" class=”java类全名" scope=“作用范围">
<jsp:useBean id="myUser" class="com.javabean.User" scope="session"/>
<!--根据表单自动匹配所有属性-->
<jsp:setProperty property="*" name="myUser"/>
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名"/>(跟表单关联)
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" value="BeanValue"/>(手工设置)
<jsp:setProperty name="JavaBean实例名" property="propertyName" param="request对象中的参数名"/>(手工设置)
②jsp1.2开始的基本元素
<jsp:include> <jsp:forward> <jsp:param> <jsp:plugin> <jsp:params> <jsp:fallback>
③jsp2.0新增的动作元素,与Document有关
<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression> <jsp:text> <jsp:output>
④jsp2.0新增的动作元素,主要用来动态生成XML元素标签的值
<jsp:attribute> <jsp:body> <jsp:element>
⑤JSP 2.0 新增的动作元素,主要用在Tag File中,
<jsp:invoke> <jsp:dobody>
5.网页的相对路径
<h1>login.jsp和login_do.jsp都在javabean文件夹中,action路径为(根目录作为起点去访问
)./javabean/login_do.jsp</h1>
<form name="loginForm" action="./javabean/login_do.jsp" method="post">
6.javabean的四个作用范围
1)page:仅在当前页面有效
2)request:可以通过HttpRequest.getAttribute()方法取得javabean对象
3)session:可以通过HttpSession.getAttribute()方法取得javabean对象
4)application:可以通过application.getAttribute()方法取得javabean对象
7.http协议的无状态性:
无状态性是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求。
但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道他就是刚才的那个浏览器。
简单的说,就是服务器不会去记得你,所以就是无状态协议。
8.保存用户的状态的两大机制:
1)Session(服务端)
2)Cookie(客户端):
典型应用一:判断注册用户是否已经登录网站
典型应用二:“购物车”的处理
对特定对象的追踪、保存用户网页浏览记录与习惯、简化登录、
安全风险:容易泄露用户信息
Jsp中创建与使用Cookie
创建Cookie对象:
Cookie newCookie = new Cookie(String key,Object value);
写入Cookie对象:
response.addCookie(newCookie);
读取Cookie对象
Cookie[] cookies = request.getCookies();
常用方法:
1)void setMaxAge(int expiry)设置cookie的有效期,以秒为单位
2)void setValue(String value)在cookie创建后,对cookie进行赋值。
3)String getName()获取cookie的名称
4)String getValue()获取cookie的值
5)int getMaxAge() 获取cookie的有效时间,以秒为单位
session与cookie对比
1)session在服务端内存中保存用户信息,cookie在客户端保存用户信息
2)session中保持的是Object类型,cookie保存的是String类型
3)session随会话的结束而将其存储的数据销毁,cookie可以长期保存在客户端
4)session保存重要的信息(安全性较高),cookie保存不重要的信息
9.指令与动作
1)include指令
<%@ include file="URL"%>
include动作:
<jsp:include page="URL" flush="true|false"/>
右键点击要开发的jsp文件,选择“open with”,然后选择用MyEclipse JSP Editor打开jsp文件,
写jsp代码就会有标签提示了,也可在jsp中任一位置按ALT+/快捷键,也会弹出标签提示框
设置jsp文件默认打开方式:Window->Preferences->Editors->File Associations:
设置jsp网页工程的访问路径:右击项目工程->properties->MyEclipse->Web:修改Web Context-root
1.jsp注释:<%--jsp注释--%>:客户端不可见 // /**/
2.jsp声明
<%!
String str = "Hello";
int add(int a, int b)
{
return (a+b);
}
%>
3.jsp表达式
<%=表达式%>
<%=add(3,5)%>
3.jsp内置对象
1)out/request/response/session/application(<--常用) /Page/pageContext/exception/config
out:JspWriter类的实例,
常用方法:println() 、getBufferSize()、getRemaining()返回缓冲区剩余可用大小
isAutoFlush()返回缓冲区满时,是自动清空还是抛出异常
close()关闭流
clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常
clearBuffer()清除缓冲区的内容,如果在flush之后调用不会抛出异常
flush()将缓冲区内容输出到客户端
2)request
getParameter(String name):返回单个值
request.getParameterValues(String name):返回一个数组(如checkbox的值)
request.setCharacterEncoding("utf-8");设置字符集,解决中文乱码问题,无法解决URL传递中文的乱码问题。
修改tomcat中conf中的server.xml中的内容解决URL传递中文的乱码问题。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
request.setAttribute(String,Object)/getAttribute
request.getContentType()获取请求体的MIME类型
request.getServerName()获取主机名
request.getServerPort()
request.getRmoteAddr()获取主机ip
request.getRealPath:请求的真实路径
3)response.getCharacterEncoding()
response.setContenType(String type)设置响应的MIME类型
response.getWriter()返回客户端输出字符的一个对象(PrintWriter),打印的信息先于内置对象out
可以通过out.flush()强制输出,保证顺序
response.sendRedirect(String location ) 重定向
4) 请求转发与请求重定向
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏URL地址不会改变
5)session 对象是HttpSession类的实例。
从一个客户端打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,
称为一个会话,也是一个session的生命周期。
session.getId()
setAttribute(String name,Object value)
setMaxInactiveInterval():返回两次请求间隔多长时间session被取消(单位秒)
生命周期:
除非本次会话页面都全部关闭后重新访问某个jsp或者servlet将会创建新的会话。
(旧的session 超时后销毁)
session销毁:
Tomcat默认超时时间:30分,可以在web.xml里面配置
session.invalidate();销毁当前会话
6)application对象:
application对象实现了用户间数据共享,可放全局变量。
application开始于服务器的启动,终止于服务器的关闭。
在用户的前后连接或者不同用户之间的连接中,可以对application对象的同一属性进行操作。
setAttribute/getAttribute方法等
7)page对象
page对象就是指当前jsp页面本身。
page.toString()
8)pageContext对象
提供对JSP页面内所有对象及名字空间的访问
JspWriter getOut()
getSession()/getPage()/getRequest()/getResponse()/forward/include(String relativeUrlPath)包含另一文件
9)config对象是在一个Servle初始化时,JSP引擎向它传递信息用.
getServletContext()等
10)exception对象(需要在jsp页面中设置isErrorPage=“true"才能使用
getMessage()/toString()/printStackTrace()/FillInStackTrace()重写的执行轨迹
4.Javabean
Javabean设计原则:公有类、无参的公有构造方法、属性私有、getter和setter方法
1)Jsp动作:
①与存取JavaBean有关的
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
<jsp:useBean id="标识符" class=”java类全名" scope=“作用范围">
<jsp:useBean id="myUser" class="com.javabean.User" scope="session"/>
<!--根据表单自动匹配所有属性-->
<jsp:setProperty property="*" name="myUser"/>
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名"/>(跟表单关联)
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" value="BeanValue"/>(手工设置)
<jsp:setProperty name="JavaBean实例名" property="propertyName" param="request对象中的参数名"/>(手工设置)
②jsp1.2开始的基本元素
<jsp:include> <jsp:forward> <jsp:param> <jsp:plugin> <jsp:params> <jsp:fallback>
③jsp2.0新增的动作元素,与Document有关
<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression> <jsp:text> <jsp:output>
④jsp2.0新增的动作元素,主要用来动态生成XML元素标签的值
<jsp:attribute> <jsp:body> <jsp:element>
⑤JSP 2.0 新增的动作元素,主要用在Tag File中,
<jsp:invoke> <jsp:dobody>
5.网页的相对路径
<h1>login.jsp和login_do.jsp都在javabean文件夹中,action路径为(根目录作为起点去访问
)./javabean/login_do.jsp</h1>
<form name="loginForm" action="./javabean/login_do.jsp" method="post">
6.javabean的四个作用范围
1)page:仅在当前页面有效
2)request:可以通过HttpRequest.getAttribute()方法取得javabean对象
3)session:可以通过HttpSession.getAttribute()方法取得javabean对象
4)application:可以通过application.getAttribute()方法取得javabean对象
7.http协议的无状态性:
无状态性是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求。
但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道他就是刚才的那个浏览器。
简单的说,就是服务器不会去记得你,所以就是无状态协议。
8.保存用户的状态的两大机制:
1)Session(服务端)
2)Cookie(客户端):
典型应用一:判断注册用户是否已经登录网站
典型应用二:“购物车”的处理
对特定对象的追踪、保存用户网页浏览记录与习惯、简化登录、
安全风险:容易泄露用户信息
Jsp中创建与使用Cookie
创建Cookie对象:
Cookie newCookie = new Cookie(String key,Object value);
写入Cookie对象:
response.addCookie(newCookie);
读取Cookie对象
Cookie[] cookies = request.getCookies();
常用方法:
1)void setMaxAge(int expiry)设置cookie的有效期,以秒为单位
2)void setValue(String value)在cookie创建后,对cookie进行赋值。
3)String getName()获取cookie的名称
4)String getValue()获取cookie的值
5)int getMaxAge() 获取cookie的有效时间,以秒为单位
String isUseCookie = request.getParameter("isUseCookie"); if(isUseCookie!=null) {//isUseCookie.equals("on")String username=loginUser.getName(); String password=loginUser.getPassword(); username = URLEncoder.encode(username,"utf-8"); password = URLEncoder.encode(password,"utf-8"); Cookie c = new Cookie("username",username); Cookie p = new Cookie("password",password); c.setMaxAge(604800);//单位秒,7天后失效 p.setMaxAge(604800);//单位秒,7天后失效 response.addCookie(c); response.addCookie(p); } else { Cookie[] cookies = request.getCookies(); boolean flag_name,flag_pwd; flag_name=flag_pwd=false; for (Cookie c:cookies) { if(flag_name==false && c.getName().equals("username")) { c.setMaxAge(0); response.addCookie(c); flag_name=true; } if(flag_pwd==false&&c.getName().equals("password")) { c.setMaxAge(0); response.addCookie(c); flag_pwd=true; } if(flag_pwd==flag_name&&flag_name==true) { break; } } } %>
session与cookie对比
1)session在服务端内存中保存用户信息,cookie在客户端保存用户信息
2)session中保持的是Object类型,cookie保存的是String类型
3)session随会话的结束而将其存储的数据销毁,cookie可以长期保存在客户端
4)session保存重要的信息(安全性较高),cookie保存不重要的信息
9.指令与动作
1)include指令
<%@ include file="URL"%>
include动作:
<jsp:include page="URL" flush="true|false"/>
flush表示被包含的页面是否从缓冲中读取
10.forward动作
<jsp:forward page="URL"/>
等同于request.getRequestDispatcher("/url").forward(request,response);
11.param动作
语法:
<jsp:param name="参数名" value="值">
作为<jsp:forward page="URL"/>的子标签使用
<jsp:forward page="user.jsp">
<jsp:param value="123456@qq.com" name="email"/>
</jsp:forward>
0 0
- jsp笔记
- JSP笔记
- JSP笔记
- jsp笔记
- JSP笔记
- JSP笔记
- jsp笔记
- JSP 笔记
- JSP笔记
- JSP笔记
- jsp笔记
- JSP 笔记
- JSP笔记
- jsp笔记
- jsp笔记
- jsp笔记
- jsp笔记
- JSP 笔记
- Win10+emacs配置
- Android代码设计规范
- 为XML添加CDATA标记
- Android学习中关于WindowManager
- SpringMVC原理
- jsp笔记
- Java设计模式之模板方法设计模式
- 《Apache Cocoon2.2 学习》第一章:初识cocoon
- 一个基于RBAC的通用权限设计清单
- JSONCPP的使用
- 数据库设计三大范式
- 一份给艺术爱好者的书单
- 安装oracle和plsql时的一点感想
- 转载红脸书生的算法策略总结