1. jsp页面元素html
a。脚本java
1. <% %> 定义局部变量数组
2.<%! %>定义全局变量以及方法浏览器
3. <%= 输出表达式 %>输出表达式(无分号,由于不是输出语句,而是表达式)缓存
4.<%@ %>指令有不少种,tomcat
-page指令 位置 写在网页开始 属性有 language jsp import pageEncoding contentType安全
- include指令 taglib指令服务器
5. <!-- -->html 在浏览器源代码中可见cookie
// /* */ javasession
<%- -%>
2 jsp内置对象
该对象不用new便可使用。有九大内置对象
2.1 out 向客户端输出内容
2.2 request 请求对象 存储 客户端向服务端发送的请求信息
常见方法 2.2.1 String getParameter(String name) 根据请求的字段名返回字段值
2.2.2 getParameterValues 返回数组,经常使用chatbox
2.2.3 void setCharacterEncoding(" utf-8") 设置请求编码。对方解析时须要知道你是什么编码。若是不设置则跟着tomcat默认。在tomcat7 以及7之前默认ISO-8859-1,以后默认utf-8
2.2.4 getRequestDispatcher("a.jsp").forward(); 请求转发
2.2.5 getServerContext() :获取项目的ServletContext对象
2.3response 响应对象,封装响应信息
void addCooike(Cookie cookie )服务端向客户端增长一个cookie对象
void sendRedirect(String location ) throws IOException :页面跳转的一种方式
void setContextType(String type):设置服务端响应编码(设置服务端content type类型)
//response.sendRedirect("succees.jsp");重定向会致使数据丢失
//重定向是response提供的
//转发是request提供的,数据保留,而且地址栏没有改变,仍然保留转发时的页面
request.getRequestDispatcher("succees.jsp").forward(request, response);
请求转发和重定向的区别 请求转发 重定向
地址栏是否改变 不改变(check.jsp) 改变(succees.jsp)
是否保留第一次请求时的数据 保留(内部转移数据安全) 不保留
请求的次数 一次(地址栏都不变) 两次(不保留必然两次)
2.4 session
session 存放于客户端(是内置对象,使用不用new),
而cookie存在于客户端(不是内置对象,使用须要new)做用 提升访问效率,可是安全性较差cookie 就是key:value。cookie是是由javax.servlet.http.cookie 类产生的
构造方法 publlic Cookie(String key,String value)
String getName():获取name
String getValue()获取value
coid setMaxAge(int expiry) 设置最大有效期,单位是秒
cookie 是由服务端产生的,由服务端给予客户端。
至关于本地缓存的做用,服务端发送给客户端
添加cookie response.addCookie(Cookie cookie )
转发cookie(转发,重定向)
获取cookie request.getCookies()
增长cookie是response,获取是request
Cookie cookie = new Cookie()
压着ctrl键进去,发现该类是public class javax.servlet.http.Cookie implements java.lang.Cloneable, java.io.Serializable
a. 服务端增长cookie :response对象,客户端获取对象:request对象
b.不能直接获取某一个单独对象,只能一次性将全部的cookie对象拿到,
经过F12能够发现,除了本身设置的Cookie对象外,还有一个名为JSESSION的Cookie
2.5pageContext
2.6application
2.7config
2.8page
2.9expection
用out.println不会新起行,新行要用<br/>
超级痛苦的是和教学上打的同样,但个人代码就没法运行成功。
解决办法:清除服务器缓存
重启服务器(谁给我说劳资的jsp修改也须要重启!)
若是先打<% %>而后在里面写了一堆(包含了方法),最后加了“!”变成<%! %>也会报错,由于这个!并无加上去,请在开始建立时直接加。
检查URL,看路径是否正确
默认,method="get ", 地址栏,超连接都是 get方式 get方式能够在地址栏看到参数(不安全)。地址栏能传送的信息大小有限,有4--5kb,图片音频视频由于太大而报错。
method="post" .该方式在地址栏不显示。(推荐使用)
出现乱码时先分清是get 方法仍是post方法
若是是get方式有两种方法
1.0
String name = request.getParameter("uname"); 这种方法即便设置了UTF-8也读取的是乱码,由于Tomcat是7.0,默认是ISO类的编码,因此没法识别。
int age = Integer.parseInt(request.getParameter("uage")); 能够强制将返回show.jsp页面的变量转换成utf-8格式
缺点是很麻烦,每一个变量都要修改
2.0
第二个方法:修改serve.xml
在修改端口号的位置新增长,URIEncoding= "UTF-8"
若是是post方式
1.0
request.setCharacterEncoding("utf-8");这一行是解决post乱码的代码
半下午耗这里,表示计算机狗伤不起。