Java Web学习笔记(1)

JSP程序代码的开发就是指在HTML中嵌入了大量的Java代码而已

JSP的执行流程:首先一个客户端向服务器发送一个请求的页面地址,服务器端在接收到用户请求的内容后要对*.jsp文件进行转换,将其转换为*.java源文件,并最终编译为*.class文件,也就是说最后真正执行的文件还是以*.class文件格式为主的。

在JSP中,最重要的部分就是Scriptlet(脚本小程序),所有嵌入在HTML代码中的Java程序都必须使用Scriptlet标记出来。在JSP中一共有3种Scriptlet代码:

第一种:<% %>:可以用来定义局部变量、编写语句等;

第二种:<%! %>:可以用来定义全局变量、方法、类等;

第三种:<%= %>:主要功能是输出一个变量或一个具体的常量,也称为表达式输出。

page指令在JSP开发中较为重要,使用此属性,可以定义一个JSP页面的相关属性,包括设置MIME类型、定义需要导入的包、错误页的指定等。具体指令属性有autoFlush、buffer、contentType、errorPage、extends、import、info、isErrorPage、isThreadSafe、language、pageEncoding、session等。其中import指令可以重复出现多次,而对于其他属性只能出现一次。比较常用的属性有contentType、pageEncoding、errorPaga/isErrorPage和import这4个指令。

如果想让一个JSP文件显示中文,则必须对整个页面指定MIME编码。

什么是MIME?许多文件都是存在扩展名的,如*doc,*html,根据这些不同的扩展名可以打开不同的应用程序,那么MIME(Multipurpose Internet Mail Extensions,多功能Internet邮件扩充服务)就是指某个扩展名文件将使用何种应用程序打开的一个说明。当该扩展名文件被访问时,浏览器会自动指定某应用程序来运行。

能不能自己指定下载文件的名称?可以,response对象表示的是服务器对客户端的回应,可以通过设置头信息的方式指定下载的文件名称。

使用contentType和pageEncoding设置编码有什么区别?pageEncoding指的是JSP文件本身的编码,而contentType中的charset指的是服务器发送给客户端的内容编码。在JSP中,如果pageEncoding存在,那么JSP的编码将由pageEncoding决定,否则将由contentType中的charset属性决定。如果两者都不存在,则将使用ISO-8859-1的编码方式。

在JSP中,所有的内容都需要经过两次的编码操作,第一阶段会使用pageEncoding编码,第二阶段会使用utf-8编码,第三阶段就是Tomcat生成的网页,此时使用的才是contentType。

要完成错误页的操作 ,则一定要满足以下两个条件:

1.指定错误出现时的跳转页,通过errorPage属性指定

2.错误处理页必须由明确的标识,通过isErrorPage属性指定。

内容显示虽然改变了但是地址栏并没有改变,这样的跳转,在程序中称为服务器端跳转;如果程序跳转了,页面的地址栏发生了改变,则此种跳转就属于客户端跳转。错误页的跳转属于服务器端跳转。

全局的错误处理可以处理两种类型的错误:一种是HTTP代码的错误,如404或500;还有一种是异常的错误,如NullPointerException等。

在Tomcat中如果配置了新的jar包,则配置完成后一定要重新启动服务器。

静态包含指定是在JSP编译时插入一个包含文本域或代码的文件,这个包含的过程是静态的,而包含的文件可以是JSP文件、HTML文件、文本文件,或是一段Java程序。

使用<jsp:inculde>指定可以完成动态包含的操作,与之前的静态包含不同,动态包含语句可以自动区分被包含的页面是静态的还是动态的。

两种包含语句,使用哪种更好?使用动态包含更好。静态包含的操作属于先包含后处理,而动态包含如果被包含的页面是动态页,则属于先处理后包含。

在Web中可以使用<jsp:forward>指令,将一个用户的请求(request)从一个页面传递到另一个页面,即完成跳转的操作。此种跳转也属于服务器端跳转。

猜你喜欢

转载自blog.csdn.net/arpospf/article/details/80225855