JSP之了解
全称Java Server Pages,通过在HTML中嵌套Java代码实现动态网页。
可以从下面四个方面去认识一下JSP:
1.动态内容模板
动态的HTML,接受处理客户的请求,可以填充不同的业务逻辑。
2.使用定制的Java代码扩展HTML
本质是对标签的动态更新。JSP生成的标签代码可以是HTML也可以是XML等其它标签语言。
3.被编译成Servlet
本质是Servlet,在开发阶段JSP是一种文本的脚本的基于模板化的语言,运行时会被编译成Servlet的格式,执行的生命周期和Servlet完全一致。
4.工作划分为内容制作和程序开发
HTML或XML可以通过其它工具开发JSP内容的工作,动态实现的用JSP本身的标记去开发,例如增加指令和行为来扩充动态内容的部分。
请求处理过程
我们知道JSP的实质还是Servlet,JSP的不同之处在于JSP是把Java代码嵌套到HTML代码中,虽然是嵌套在HTML中,但是JSP还是服务端的),因为JSP要经过JSP容器(例如Tomcat,作用就是将JSP转化为Servlet)的编译(编译成Class文件),再根据这些动态代码的运行结果生成对应的HTML代码,最终在浏览器中以HTML形式显示出来。
可以通过这样一个流程图表示出来:
从登录开始
刚才说到JSP是在HTML中嵌套Java代码实现动态网页,但是当HTML页面过大,且存在很多不需要经过容器的静态请求时,在HTML中嵌套Java代码,在经过一遍上面所述的运行过程,整体速度显然会有影响,为了快速方便地进行动态网站的开发,JSP做了很多改进,使其成为快速建立跨平台的动态网站的首选。
简单的登陆实现:
1.登陆页面Login.HTML
<p> <form action="LoginCheck.jsp" method="post"> </p><p> 用户名: <input type="text"name="ID"><br> </p><p> 密 码: <inputtype="text" name="PWD" ><br> </p><p> <input type="submit"value="Login"><br> </p><p> <form></p>
2.登陆验证LoginCheck.JSP
<% if(request.getParameter("ID") != null &&request.getParameter("PWD") != null) { String ID =request.getParameter("ID"); String PWD =request.getParameter("PWD"); if (ID.equals("a")&& PWD.equals("a")) { %> 登录成功! <% } else { %> 登录失败! <% } } %>
什么时候用Servlet,什么时候用JSP?
联系:本质上都是Servlet
比较:
1.Servlet:处理业务逻辑(只要与数据库进行交互)方便简单;显示内容给用户繁琐。
2.JSP:显示内容给用户简单方便;处理业务逻辑(只要与数据库进行交互)繁琐 。
综上可以说明Servlet和JSP虽然说实现的功能一样,但是他们的优缺点是互补的,所以一般情况下做都是利用JSP和Servlet一
起使用,达到了一个相辅相成的状态。
比如:完成注册功能,首先显示注册页面给浏览器,用JSP实现(reg.jsp),填写完注册信息提交,用Servlet来实现(RegServlet),注册失败又该显示错误信息和注册页面,用JSP来实现(reg.jsp);注册成功该显示成功信息和登录页面用JSP来实现(login.jsp)
。
总结
JSP和Servlet在开始理解上没有什么难度(也因为有了B/S的基础了),在实现Servlet和JSP这过程中,对Eclipse,对Tomcat,等等这些工具的配置和使用,各种版本的兼容,主要是这些问题,原因还是出在自己的不熟悉,不过就像当初使用UML工具,使用VS一样,都是一个从认识到熟练使用的过程,不断使用,不断研究,总会为我所用。
开启 J2EE(四)—JSP及运行原理