Java学习笔记05——JSP

来源:互联网 发布:gson遍历未知json key 编辑:程序博客网 时间:2024/06/05 08:42

一、JSP项目的创建和导出、部署

1.安装Tomcat并配置好环境后,在Eclipse的Preference→server中导入当前版本的Tomcat,启动后浏览器中输入localhost:8080会出现404错误(未部署项目时)。
2.在Eclipse中创建动态Web项目,在WebContent目录中创建文件夹,存放jsp文件,并部署到Tomcat服务器上,启动服务器则可利用端口号+jsp路径访问到jsp网页。
*注:jsp声明定义的变量是全局变量。
3.用Eclipse的【Export】功能导出.war格式的文件,将其拷贝到Tomcat安装路径的webapps目录下,startup.bat启动Tomcat,.war文件被解压缩,浏览器可以访问到JSP。
*注:web.xml文件配置欢迎页等。
*注:JSP中可以使用html的注释方式<!--...-->,注释中可以使用合法的html表达式,但会将注释暴露给用户。推荐使用JSP注释<%--...--%>,可以注释方法和多行注释,并对用户隐藏。


二、JSP编译指令

【编译指令:通知servlet引擎的处理消息,只在jsp转换成servlet时起作用。】
1.page编译指令:language属性为java,contentType属性设置MIME类型和生成网页的编码,pageEncoding属性设置jsp程序本身的编码,import属性导入java类(逗号分隔或者通过多个import属性导入多个java类),errorPage用于指定另一个错误处理页面,isErrorPage设置当前jsp文件是否为错误处理页面。
2.include编译指令:静态包含指令,将外部的xml/jsp/txt等外部文件导入进当前jsp文件(导入时可解析jsp文件)。include包含进来的文件与当前jsp生成一个servlet,且包含与被包含文件中参数命名不能冲突。


三、JSP动作指令

【动作指令:客户端请求时期动态执行。】
1.forward指令:将当前程序重新定向到一个html页面或者动态程序jsp/servlet,分为带参数和不带参数的,使用jsp:param添加跳转传递的参数(跳转页面中用request.getParameter()方法获取传递的参数)。注意forward后面的指令不会被输出。
2.include指令:动态包含指令,包含一个动态的jsp程序或者静态的html文件。
*注:与include编译指令区别——静态导入时将被导入页面代码完全融入,被导入页面的编译指令会起作用;动态导入servlet中用include方法引入被导入页面内容,编译指令失去作用,只是插入被导入页面的body体,并可增加额外的请求参数。
3.useBean指令:可以在jsp程序中实例化一个或若干个javabean组件,这些组件可以再jsp其他地方被调用。id属性设置名称,class属性设置JavaBean类。结合setProperty和getProperty指令获取信息。
JavaBean:含构造方法,getter/setter方法,可序列化(implement Serializable)。


四、JSP内置对象

1.out对象:向客户端浏览器输出各种数据,还可对输出缓冲区进行管理;
2.request对象:接受用户提交的表单信息及客户端的其他信息。getParameter方法用于获取客户端浏览器通过post/get方式提交的表单数据,setAttribute/getAtrribute方法在web组件之间共享信息。
3.response对象:用于对客户端的请求进行响应,负责处理http连接,设置cookie信息等。setHeader设置字符串类型头信息,setDateHeader/setIntHeader设置日期/整型头信息。sendRedirect方法跳转页面。用addCookie方法添加cookie。
*Cookie:存储在浏览器中的一小段纯文本信息,由服务器发送给浏览器,浏览器再次访问该网站时,浏览器把请求的网址和cookie一同提交给服务器,服务器检查cookie可以识别用户状态。创建Cookie对象时设置key和value值。

4.session对象:HTTP是无状态协议,客户端打开网页时打开一个服务器链接,服务器不会记录用户的请求信息,可以用session对象来记录,从而保证用户访问的连续状态。通过JSESSIONID识别用户。
getId()/getCreationTime()/getLastAccessedTime()/getMaxInactiveInterval()获取session属性。
setAttribute()/getAttribute()方法用于在session中设置/获得键值对(字符串-java对象),isNew()判断session是否是新创建的,invalidate()清除session对象。
*注:可以在web.xml中设置session-cofig修改session的配置信息。
*注:在Tomcat安装路径的config文件夹中的tomcat-users.xml文件中设置用户名和密码对应的权限,可以在tomcat的manager app中查看并管理部署的应用程序。

5.application对象:代表当前应用程序,比session生命周期更长,给共享全局信息如在线人数提供方便。getServerInfo/getServletContextName/getVirtualServerName得到应用相关信息。通过getAttribute/setAttribute得到/保存键值对到application对象中。

6.config对象:jsp位于表示层,不需要获取配置信息,jsp中使用较少,在servlet中作用较大。在web.xml文件中添加servlet和servlet-mapping设置配对的配置信息后,用getInitParameter()获取指定的初始化信息。

7.page对象:类似于Java中this指针,指向当前jsp页面本身。toString()/getClass()/hashCode()/equals()等方法均继承自Object类。

8.exception对象:jsp引擎在执行代码时抛出的异常,使用前要配置page编译指令的isErrorPage为true。getMessage()方法返回描述异常的信息,toString()/printStackTrace()等方法。


9.PageContext对象:可以访问其他所有的jsp内置对象。【JspWriter myOut=pageContext.getOut();】
【getAttribute()/setAttribute(键,值,pageContext.SESSION_SCOPE);】


9.


原创粉丝点击