开启 J2EE(四)—JSP及运行原理

时间:2022-09-13 20:44:08

JSP之了解


全称Java Server Pages,通过在HTML中嵌套Java代码实现动态网页。

可以从下面四个方面去认识一下JSP:

1.动态内容模板

动态的HTML,接受处理客户的请求,可以填充不同的业务逻辑。

2.使用定制的Java代码扩展HTML

本质是对标签的动态更新。JSP生成的标签代码可以是HTML也可以是XML等其它标签语言。

3.被编译成Servlet

本质是Servlet,在开发阶段JSP是一种文本的脚本的基于模板化的语言,运行时会被编译成Servlet的格式,执行的生命周期和Servlet完全一致

4.工作划分为内容制作和程序开发

HTMLXML可以通过其它工具开发JSP内容的工作,动态实现的用JSP本身的标记去开发,例如增加指令和行为来扩充动态内容的部分。

 

请求处理过程

  我们知道JSP的实质还是Servlet,JSP的不同之处在于JSP是把Java代码嵌套到HTML代码中,虽然是嵌套在HTML中,但是JSP还是服务端的),因为JSP要经过JSP容器(例如Tomcat,作用就是将JSP转化为Servlet)的编译(编译成Class文件),再根据这些动态代码的运行结果生成对应的HTML代码,最终在浏览器中HTML形式显示出来。

  可以通过这样一个流程图表示出来:

开启 J2EE(四)—JSP及运行原理


从登录开始

 

  刚才说到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:显示内容给用户简单方便;处理业务逻辑(只要与数据库进行交互)繁琐 。


  综上可以说明ServletJSP虽然说实现的功能一样,但是他们的优缺点是互补的,所以一般情况下做都是利用JSPServlet

起使用,达到了一个相辅相成的状态。

  比如:完成注册功能,首先显示注册页面给浏览器,用JSP实现(reg.jsp),填写完注册信息提交,用Servlet来实现(RegServlet),注册失败又该显示错误信息和注册页面,用JSP来实现(reg.jsp);注册成功该显示成功信息和登录页面用JSP来实现(login.jsp) 。


总结

    JSP和Servlet在开始理解上没有什么难度(也因为有了B/S的基础了),在实现Servlet和JSP这过程中,对Eclipse,对Tomcat,等等这些工具的配置和使用,各种版本的兼容,主要是这些问题,原因还是出在自己的不熟悉,不过就像当初使用UML工具,使用VS一样,都是一个从认识到熟练使用的过程,不断使用,不断研究,总会为我所用。