使用 eclipse开发jsp
准备工作
使tomcat和eclipse关联
配置运行时环境
在导航菜单 window Preferences下的Server 中的 reuntimeEnvironme 中 add自己的tomcat
新建一个Dynamic Web Project 项目 注意不要直接Finish 完成 需要在最后一步勾选生成。xml文件 这个是在网页运行必须的;
然后新建JSP文件 在web content下,选择控制同级的server面板创建服务器,
完成后F3,设置Server Location 选择第二个,使eclipse的服务器关联到自身的tomcat
注意:修改时deploy Path中的 文件名要和自己tomcat的一致 否则会自动创建一个别的文件夹
将jsp 的文件编码修改为 UTF-8,在window preference中查询jsp 然后修改编码使得今后所有jsp文件创建时都是utf-8编码
jsp的页面元素
a:页面脚本(%%内部写 java代码)
1包含 <% % > 局部变量
2.<%! %> 全局变量
3.<%= %> 输出表达式 ,里面的内容会打印在网页页面
注意:在脚本中换行println不行,需要使用html标签 《br》
b :指令
<%@page 属性名%> 指定的属性
例如 import 导入 等价java中的import
注释 html注释 <!-- --> ,java注释 //,jsp注释 <%--- ------%>
在网页查看源码时候 html注释会显示在网页源代码中,另外两个不会显示
JSP 九大内置对象
out :向客户端输出内容
request:
客户端发送的所有请求信息,
常见方法如下:
getParameter(String key)
根据请求的key 获取内容value 例如 key =name value=张三
getParameterValues(String key)
根据请求的key 获取内容values 多个value时使用
void setCharacterEncodin(“utf-8”)
设置请求字符集 tomcat7 不是utf8, tomcat8之后是 utf8
getRequestDispatcher(“b。jsp”).forword(request,response)
以请求转发方式 跳转页面 A->B
getServletContext() 获取ServletContext对象
response
常用方法:
add Cookie(Cookie cook) 向服务器增加Cook对象
sendRedirec() 请求跳转(重定向)
setcontentType() 设置服务器响应编码
回应,服务器端对用户请求的回应,
两种页面跳转方式
重定向方式,可以跳转,会丢失数据
response.sendRedirect("success.jsp");
请求转发方式,不会丢失数据,但页面地址没有改变
request.getRequestDispatcher("success.jsp").forward(request, response);
在
session(服务端对象)会话
session的常用方法
getId() 获取SEssionID
isNew() 判断是否第一此请求
invalidate() 注销当前会话
getAttribute() 获取对象信息
setAttribute() 设置对象信息
客户端向服务器端发送请求,如果客户端Cookie没有JESSIONID和服务器的sessionId对应
那么将创建session 生成sessionid,在返回的Cookie对象中转换为JESSIONID,
第二次访问时会直接识别,进入对应的会话,
不同的浏览器对服务器发送请求识别为不同的会话,会产生不同的session对象
关于Session共享,
即在同一个session会话中不同的jsp页面可以共享客户端传入的request对象
Cookie (客户端对象),不是内置,需要new创建,
Cookie name=value 键值对,
构造如下:Cookie(String key, String value),常见方法 getName,getValue
流程: 服务器端准备Cookie,通过页面跳转,客户端获取Cookie
注意:客户端增加对象时 Resqonse。addCookie,同时会自动添加一个JASSONID对象
服务端获取对象时 request。getCookie,获取到的Cookie是所有对象是一个数组
将修改好的Cookie转发出去可以使用重定向或者请求转发
pageContext
applicton
config
page
exception
关于字符集乱码:
tomcat7 默认是非UTF-8 因此要进行修改 tomcat8以后就默认是utf-8
如果使用post 请求时修改字符集需要在第一次跳转后的页面进行修改
添加如下代码request.setCharacterEncoding("utf-8");
如果时get请求需要去Tomcat 配置文件的server。xml中修改即修改端口号的那个标签中添加属性 URIEconding="utf-8“如下
Session 执行原理 与Cookie关系
request请求只在同一次请求时有效