Java学习日记5:jsp

来源:互联网 发布:查看udp端口是否打开 编辑:程序博客网 时间:2024/05/29 07:34

在网络应用的开发中,我们一般用的都是MVC模式。
MVC模式,百度上的解释是:

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

一般情况下:

  • Model—Java代码
  • Controller—Servlet
  • View—jsp

jsp

jsp是一种写动态网页的技术,简单地说就是可以吧Java代码写到HTML中,大大简化了很多流程。
因为Servlet很强大,不过不善于显示网页的内容,所以出现了jsp。

  • Servlet的长处是“流程控制 和处理事务”
  • JSP的长处是 “生成和显示动态网页”

如果用Servlet显示一个页面:

out.println("<html>"); out.println("<head><title>demo1</title></head>");out.println("<body>");  out.println(" Hello World <br>"); out.println("大家好"); out.println("</body>"); out.println("</html>");

如果用jsp显示一个页面:

<html> <head><title>demo1</title></head> <body> <% out.println(" Hello World "); %><br><% out.println("大家好"); %></body> </html> 
  • 一个JSP文件被转换成servlet的源代码,然后编译
  • 通过容器自动执行
  • 部署后,首次访问JSP页面
  • 不同容器,JSP源代码驻留的地方也不同

jsp脚本元素有三种类型:

表达式:  <%=Expressions%>Scriplet: <%Code%>声明: <%! Declarations %>  

表达式:

<html><head><title>Expression Sample</title></head><body><h2>   Current time: <%=new java.util.Date()%><br/>   Random number: <%=Math.random()%><br/>   Simple string: <%=“Hello, world”%><br/>   Simple statement: 1 + 1 = <%=1 + 1%> <br/>   Visit implicit object: remote host is   <%=request.getRemoteHost()%></h2></body></html>

转换成Java代码:

public void _jspService(HttpServletRequest request, HttpServletResponse response)        throws java.io.IOException, ServletException {   …          out.write("   Current time: ");      out.print(new java.util.Date());      out.write("<br/>\r\n");      out.write("   Random number: ");      out.print(Math.random());      out.write("<br/>\r\n");      out.write("   Simple string: ");      out.print("Hello, world");      out.write("<br/>\r\n");      out.write("   Simple statement: 1 + 1 = ");      out.print(1 + 1);      out.write(" <br/>\r\n");      out.write("   Visit implicit object: remote host is ");      out.print(request.getRemoteHost());      out.write("\r\n");}

Scriplet:

<html><head><title>Expression Sample</title></head><% 这里写Java 代码; %> //这就是Scriptlet,这中间就等于Java代码</html>

记得写Java代码时带分号。

public void _jspService(HttpServletRequest request,     HttpServletResponse response)        throws java.io.IOException, ServletException {这里写Java 代码;}

声明 :

  • 声明可在servlet类的主体里定义变量和方法
  • 相当于在Servlet中的Service() 方法外面
  • 不可声明隐式对象
  • 声明可重写 jspInit() 和 jspDestroy()方法来初始化和结束JSP页面
<html><head><title>Expression Sample</title></head><%! 方法或变量声明代码;%></html>

在Java中:

public final class decSample_jsp extends org.apache.jasper.runtime.HttpJspBase    implements org.apache.jasper.runtime.JspSourceDependent {     方法或变量声明代码;     }  public void _jspService(HttpServletRequest request,     HttpServletResponse response)        throws java.io.IOException, ServletException {     ...  }}

指令:

  • 指令是发送给JSP编译器的信息
  • 告诉JSP编译器如何处理JSP页面
  • 不直接生成输出

e.g.

<%@page import=“java.util.*”%>

page: 导入页面所依赖的属性和把这些传递给JSP编译器

<%@page session="false" buffer="4kb" autoFlush="false" contentType="text/html;charset=gb2312" import="java.util.*, java.net.*"errorPage="error.jsp“%>

include: JSP页面翻译时用来包含文本或代码
相当于在用include语句的地方引用include语句指向的页面中的语句。

<%@include file=“banner.html”%><jsp:include page="banner.html"/>          <jsp:include page="date.jsp">              <jsp:param name="user" value="George"/>          </jsp:include> 

taglib: 描述了JSP编译器所使用的标签库

<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%> 

JSP中有两种注释:
JSP页面功能文档的注释. 以下是这种类型注释的语法:

<%-- this is a comment ... --%> 

发送给用户响应的注释。以下是这种类型注释的语法:

<!-- comments ... --> 

如果有错误请多指正~

0 0
原创粉丝点击