当eclipse无法运行Java,servlet时可能是Project的build automatically没有打开
一,网页:
1,静态页面:不经过服务器访问 html,css,js.....
2,动态页面:PHP,asp(使用VBscript,JavaScript语言),jsp,asp.net
配置虚拟路径:
*1,当用户请求jsp页面时,jsp引擎会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果时发送一个HTML页面到客户端。
2,Tomcat服务器的示例程序目录是example。
3,jsp在转换阶段生成文件的扩展名是java。
,重定向。
二,jsp 的构成:静态内容(HTML 标记)动态内容(jsp 标记,脚本,注释)
1,指令标记:page(jsp全局定义),include,taglib指令
⑴ page指令:属性(contentType,import,language,session,buffer,autoFlush,isThreadsafe....)
contentType(同一个页面只能指定一次)<% @page contentType="text/html;charset=utf-8"%>(contentType="application/msword"以Word形式打开)
⑵include指令 <%@include fille="文件URL" %>
2,动作标记:include标记,param标记,forward标记.....
⑴include标记:<jsp:include page="文件的URL" />
是否支持jsp表达式 | 是否可重名 | 如何编译 | |
include指令标记 | 不支持任何表达式 | 引入的文件与本来文件不可有重名的变量,方法 | 静态包含,将两个页面合成一个,编译处理为一个java文件,返回结果页面 |
include动作标记 | 支持 | 引入的文件与本来文件可有重名的变量,方法 | 将被包含的页面编译处理后的结果包含在页面中继续执行后面的代码,单独编译 |
⑵forWard标记: <jsp:forward page="要转向的页面">
⑶param标记:param标记为其他标记提供附加信息(不能单独使用),需作为jsp:include,jsp:forward,jsp:plugin标记的子标记来使用。
<jsp:param name="名字" value=“指定给param的值”>
3,jsp的内置对象(不用声明)request,response,session,application,out......
⑴request对象:获取用户提交的信息(是httpservletrequest类的实例)
①使用getParameter(String s)方法获取表单提交的信息
②request.setcharacharEncoding("utf-8")设置获取的信息为utf-8编码格式
③request.getRemoteAddr(),方法查看访问者的IP(Windows命令行查看本机的IP:ipconfig)
⑵response对象:对用户请求作出响应,向用户端发送数据
①使用setcontentType(String s)方法可动态改变contentType的值(s可取 text/html,text/plain,image/gif.....)
②使用sendRedirect(URL url)方法进行重定向,若用户输入信息不完整可重新进入输入界面。
*请求转发:request.getRequestDispather("跳转的文件路径").forward(request,response);方法,可以获得数据,地址栏保持不变
重定向:response.sendRedirect("跳转的文件路径");方法,无法获得数据,地址栏改变
请求转发 | 重定向 | |
地址栏是否改变 | 不改变 | 改变 |
是否保留第一次请求时的数据 | 保留 | 不保留 |
请求次数 | 1 | 2 |
跳转的位置 | 服务端 | 客户端发出第二次跳转 |
⑶session对象:记录有关连接的信息(同一个会话),不同用户登录(id)的session对象不同
* 除了自己设置的cookie外还有自动生成的name=JSESSIONID的cookie。
①Long getCreationTime(),返回session对象创建时间(返回的是毫秒数)
②Public String getid(),返回session对象创建时jsp引擎为其分配的id(唯一)
③Public void setAttribute(String key,object obj),session对象可调用该方法将参数object指定的对象obj添加到session对象中,并为添加的对象指定一个索引关键字key.
④Public object getAttribute(String key),获取session对象索引关键字为key的对象。
⑤session对象的生存期:结束session对象的方法:
使用invalidate()方法使session对象无效
设置session对象的最长“发呆”时间(当超过最长发呆时间,session对象无效) 使用setMaxInactiveInterval(int interval)方法设置最长“发呆”时间
关闭服务器
⑷application对象:由服务器创建(其生命期由服务器决定)被该服务器下的所有用户共享
①Public void setAttribute(String key,object obj),application对象可调用该方法将参数object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字key.
②Public object getAttribute(String key),获取application对象索引关键字为key的对象。
③Public Enumeration getAttributeNames(),产生一个枚举对象,该枚举对象用nextElemets()遍历application中的各对象对应的关键字(boolean hasMoreElements() :测试 此枚举是否包含更多的元素;E nextElement() 如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。)
(5)out对象:向用户端输出数据。
①out.println()方法,向客户端输出字符串。
②out.flush()方法,将缓冲区内容输出到客户端。
③out.clearBuffer()方法,清除缓冲区的内容。
4,注释:
*1,jsp中在<%! %>标记之间可以插入变量和方法声明
2 ,在jsp中为内建对象定义了Application Scope,Session Scope,Page Scope,Request Scope四个作用范围。 、