Jsp简介

package test;
/*
 * 1、web应用程序
 * 	   桌面应用程序
 * 	   嵌入式应用程序
 * 2、Tomcat服务器:
 * 	  	Apache Jakarta的开源项目
 * 		JSP/Servelt 容器
 * 	  目录结构:
 * 		/bin;存放各种平台下用于启动和停止Tomcat的命令文件
 * 		/conf:存放Tomcat服务器的各种配置文件,server.xml中修改端口号,默认8080
 * 		/lib:存放Tomcat服务器所需的各种JAR文件
 * 		/logs:存放Tomcat的日志文件
 * 		/temp:Tomcat运行时用于存放临时文件
 * 		/webapps:当发布web应用时,默认会将web应用的文件发布到此目录中
 * 		/work:Tomcat把由jsp生成的Servlet存放于此目录下
 * 3、编写web应用程序
 * 		在webApps创建项目目录
 * 		编写index.jsp;
 * 		创建WEB—INF目录:Java的web应用程序得安全目录,客户端无法访问,只有服务端可以访问;
 * 			1)web.xml,项目部署文件;可以设置欢迎页
			    
			        /index.jsp
			    
 * 			2)classes文件夹,用以防止*.class文件
 * 			3)lib文件夹用于存放需要的jar包;
 * 			
 * 4、JSP:简化的Servlet设计,实现了Java当中使用HTml标签。Jsp是一种动态网页技术标准,也是JAVAEE的标准。JSP与Servlet一样,是在服务器端执行的。
 * 	Jsp:Java平台,安全性高,适合开发大型的,企业级Web应用程序;hadoop
 * 		javaEE适合做,电子银行,中国移动,12306
 * 	Asp.net: .Net平台,简单易学,安全性以及跨平台性差;
 * 	Php:简单,高效,成本低开发周期短,特别适合中小型企业的web应用开发。
 * 		LAMP:Linux+Apache+MySQL+PHP
 * 	JSP元素构成:
 * 		静态内容:
 * 		指令:
 * 			page:通常位于jsp页面顶端,同一个页面可以有多个page指令;
 * 				<%@ page 属性1=“属性值1” 属性2:=“属性2值”....    %>
 * 			  属性:
 * 				language:指定JSP页面使用的脚本语言:java
 * 				import:通过该属性引用脚本语言中使用到的类文件:无
 * 				contentType:指定JSP页面所采用的编码格式:text/html ISO-8859-1
 * 
 * 			include:将一个外部文件嵌入到JSP文件中,同时解析这个页面中的JSP语句;
 *			taglib:使用标签库定义新的自定义标签,在JSP页面中启用定制行为;
 * 		表达式:
 * 			在JSP页面中执行的表达式
 * 			<%=表达式 %>//表达式不以分号结束
 * 		小脚本:
 			在JSP页面中执行的java代码。
 			语法:<% java代码%>
 * 		声明:
 * 			在JSP页面中定义变量或者方法
 * 			语法:<%! JAva代码%>
 * 		注释:
 * 			HTML注释:;客户端可见
 * 			JSP注释:<%-- html注释--%>;客户端不可见
 * 			JSP脚本注释://
 *		
 *  JSP页面生命周期:
 *  	用户发出请求-->如果是第一次请求-->JSP引擎把该JSP文件转换成一个Servlet,生成字节码文件,并执行jspInit();
 *  			  -->如果不是第一次请求-->则请求生成的字节码文件
 *  		-->解析执行,jspService();用来处理客户的请求,对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果多个客户同时请求该JSP文件,则jSP引擎会
 *  			创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及相应时间。但多线程的编程带来的同步
 *  			问题,由于该Servlet始终著于内存,所以响应是非常快的。临界资源共享和保护问题;
 *  
 *  JSP内置对象:是web容器创建的一组容器,不需要使用new关键字就可以使用的内置对象;
 *  	1、out:
 *  		out对象是JspWriter类的实例,向客户端输出内容的常用对象;
 *  		1)void println();向客户端打印字符串
 *  		2)void clear();清除缓冲区的内容,如果在flush之后调用会抛出异常
 *  		3)void clearBuffer();清除缓冲区内容,在flush之后调用不会抛出异常
 *  		4)void flush();将缓冲区的内容输出到客户端
 *  		5)int getBufferSize();返回缓冲区以字节数的大小,如不设缓冲区则为0
 *  		6)int getRemaining();返回缓冲区还剩余多少可用
 *  		7)boolean isAutoFlush();返回缓冲区满时,是否自动清空还是抛出异常
 *  		8)void close();关闭输出流
 *  	2、request
 *  		客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出相应;
 *  		它是HttpServlteRequest类的实例,request对象具有请求域,完成客户端的请求之前,该对象一直有效。常用方法:
 *  		Stirng getParameter(String name);返回那么指定参数的参数值
 *  		String[] getParameterValues(String name);返回包含参数name的所有值的数组
 *  		void setAttribute(String,Object);存储次请求中的属性;
 *  		object getAttribute(String name);返回指定属性的值
 *  		String getContentType();得到请求体的MIME类型
 *  		String getProtocol();返回请求用的协议类型及版本号
 *  		String getServletName();返回接受请求的服务器主机名;
 *  	3、response
 *  		包含了响应客户端请求的有关信息,但在JSP中很少直接用到它。他是HttpServleResponse类的实例。response具有页面作用域,即访问一个页面时,
 *  		该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。
 *  		String getCharacterEncoding();
 *  		void setContentType(String type);设置相应的MIME类型
 *  		PrintWriter getWriter();返回可以向客户端输出字符的一个对象
 *  			PrintWriter与内置out对象的区别:PrintWriter对象输出优先于out对象;out.flush()强制输出,可以优先于PrintWriter;
 *  		sendRedirect(java.lang.String location)重新定向客户端的请求。
 *  	4、session
 *  		session表示客户端与服务器的一次会话;是HttpSession的一个实例;
 *  		web中的session指的是用户在浏览某一个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间;
 *  		session也就是用户浏览这个网站所花费的时间
 *  		在服务器的内存中保存着不同用户的session;和用户一一对应;
 *  		session对象在jsp页面被装载时,自动创建,完成会话管理;
 *  		从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,称为一个会话;
 *  		当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种方法知道这是一个客户,就需要session对象;
 *  	 常用方法:
 *  		long getCreationTime();session的创建时间
 *  		public String getId();session创建时JSP引擎为它设的唯一id号
 *  		Object setAttribute(String name,Object value);使用指定名称将对象绑定到此会话
 *  		Object getAttribute(String name);返回与此会话的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则null
 *  		String[] getValueNames();包含session中所有可用属性的数组
 *  		int getMaxInactiveInterval();返回两次请求间隔多长时间此session被取消
 *  	 session生命周期:
 *  		创建:当客户端第一次访问某个jsp或者Servlet的时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器发送请求时,都会将SessionId携带过去
 *  			服务端会对此SessionId进行校验;
 *  		活动:某次会话当中通过超链接打开的新页面属于同一次会话;
 *  			制药当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话;
 *  			除非本次会话的所有页面都关闭后再重新访问某个jsp或者Servlet将会创建新的会话;
 *  			原有的会话依然存在,只是这个旧的SessionId仍然存在于服务端,只不过再也没有客户端会携带它然后交于服务器校验。
 *  		销毁:调用session.invalidate()方法;
 *  			Session过期(超时),默认30分钟
 *  				设置超时时间:setMaxInactiveInterval()//设置过期时间
 *  							
							        1
							    
 *  			服务器重启;	
 
 *  6、application:
 * 		application对象实现了用户数据间的共享,可存放全局变量
 * 		application开始于服务器的启动,终止于服务器的关闭;
 * 		在用户的前后连接或不同用户之间的连接中,可以对aplication的同一属性进行操作;
 * 		在任何地方对applicatiion对象的操作,都会影响到所有用户对此的访问;
 * 		application对象是ServletContext类的实例
 * 	常用方法:
 * 		void setAttribute();
 * 		Object getAttibute();
 * 		Enumerration getAttribute();返回所有可用属性名的枚举;
 * 		String getServerInfo();返回Servlet引擎名和版本号;
 *	7、page:
 *		page对象就是指当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例;
 *	pageContext:
 *		提供了对JSP页面内所有的对象及名字空间的访问;
 *		pageContext可以访问到本页坐在的session对象,也可以取本页面application的属性值;
 *		本类名也叫pageContext;
 *	 void forward();使当前页面重导到另一个页面
 *	 void include();包含令一个页面;
 *	
 *	8、Config:
 *		是在一个servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时用到的参数(通过属性名和属性值构成)以及
 *		服务器有关的信息(通过传递一个ServletContext对象);
 *	9、Exception:
 *		异常对象,当一个页面运行时发生了异常,就产生这个对象,如果一个JSP页面要应用此对象,就必须把page中的isErrorPage设置为true,否则无法编译,
 *		如果抛出异常需要跳转到其他页面,则需要在page中加添加errorPage="xx.jsp";实际时java.lang.Throwabled对象,常用方法:
 *		Stirng getMessage();返回描述异常的消息;
 *		String toString();返回异常的简短描写消息;
 *		void printStackTrace();显示异常及其栈轨迹
 *		Throwable FillInStackTrace();
 *	

 *  web程序的请求响应模式:
 *  	request--->response	
 *  缓冲区:Buffer,就是内存的一块区域用来保存临时数据;
 *  get与post区别:
 *  	get:以明文的方式通过URL提交数据,数据在URL中可见,提交的数据不超过2k,安全性较低,效率较高。适合提交数据量不大,安全性不高的数据。搜索,查询等;
 *  	post:将用户信息封装在HTML中的HEADER内。适合提交数据量大,安全性高的用户信息。注册,修改,上传等;	
 *		
 *	请求转发于请求重定向的区别:
 *		请求重定向:客户端行为,response.sendRedirect();从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变;
 *
 *		请求转发:服务器行为,request.getRequestDispatchor().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变;
 */
public class TestJavaWeb {
	
}














 

你可能感兴趣的:(JAVA)