JSP动态网页程序设计详解
创始人
2024-07-18 17:51:26
0

JSP页面从形式上就是在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标签。Servlet/JSP容器收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。

基本语法:

注释:

1、客户端可以看到的注释:  (可以在批注中加上动态的表达式)

2、开发程序员专用的注释:<%-- comment --%>  或者 <%/** this is a comment **/%>

声明:

  1. <%!declaration; [declaration;]+...%> 

该声明的变量为类变量。意味着:若同时有n个用户在执行此JSP网页时,他们将会共享此变量。会引起线程同步上的麻烦。(不建议使用)

小脚本:

<% Java 代码%>

此类定义的变量为局部变量,不存在多线程同步问题,是线程安全的。

表达式:

<%=expression %> 不能使用“;”作为表达式的结束符号。

JSP指令元素:

只是告诉JSP引擎对JSP页面如何编译。

page指令:设定整个JSP网页的属性和相关功能。

  1. <%@page attribute1="value1" attribute2="value2" ...%>   
  2.     

 例如:

  1. <%@page contentType="text/html; charset=utf-8" language="java" import="java.net.*"%>  

include指令:用于指示JSP容器在JSP编译时插入一个包含文本或代码的文件,这个包含的过程是静态的。注意包含文件中要避免使用,可能会导致错误。

  1. <%@include file="relativeURLspec"%> 
  2.   

例如:

  1. <%@include file="Hello.html">   

taglib指令:

  1. <%@taglib uri="tagLibraryURI" prefic="tagPrefix"%> 
  2.   

JSP操作元素:

  1.    
  2.    
  3.    
  4.    
  5.    
  6.   

request对象与网络信息的提交:

JSP中提供了request对象来接收客户端发送回来的数据。

◆URL一般语法:protocol://host:port/virtualPath?queryString

◆protocol:表示协议,用于声明在远程机器之间传送信息的低层机制(http ftp https等)。

◆host:表示请求要发送到的远程机器的名称或者ip地址。

◆port:声明服务器要监听请求的机器端口号。

◆virtualPath:包含一个以斜线为分隔符的一组标识符,服务器把它映射到一个物理路径和JSP的位置。

◆querString:是查询字符串,它是一个成对的名称和值的列表,作为JSP的参数被传递到处理它的JSP页面。如果有多个参数需要传递,将以“&”号分隔开成对的名称和值。

request对象所提供的方法:

获取路径和协议信息:

  1. String getProtocol()  获取通信所使用的协议和版本号(如:HTTP /1.1)   
  2. String getScheme()   获取请求中的协议名称(如:HTTP)   
  3. String getPathInfo()  获取请求中处于JSP路径和查询字符串之间的额外信息   
  4. String getContextPath()   
  5. String getRequestURI()   
  6. String getServletPath()   
  7. String getRealPath(String path)  

获取主机和端口信息:

  1. String getServerName()  获取响应请求的服务器名称。   
  2. int getServerPort()          获取响应请求的服务器端主机端口号。   
  3. String getLocalName()    获取响应请求的服务器端主机名。   
  4. String getLocalAddr()      获取响应请求的服务器端地址。   
  5. int getLocalPort()            获取响应请求的服务器端端口。   
  6. String getRemoteAddr()  获取发出请求的客户端IP地址。   
  7. String getRemoteHost()  获取发出请求的客户端主机名。   
  8. int getRemotePort()        获取发出请求的客户端主机端口。 

获取查询字符串:

String getQueryString() 获取get()方法传递的参数字符串,即URL中?后面的部分。

获取查询字符串中的变量值:

  1. String getParameter(String name)  获取客户端发送给服务器端的参数值。   
  2. Enumeration getParameterNames()  返回请求中所有参数的集合。   
  3. String[] getParameterValues(String name)  获得请求中指定参数的所有值。  

例如:

  1. http://localhost:8080/liuxl/jsp/querystring.jsp?str=JSP   
  2. String s=request.getParameter("str"); 获取变量str的值,执行后s的值为“JSP”。 

注意:getParameter()方法的返回值只能是字符串。若传递val=100,则需要进行类型转换。

  1. if(request.getParameter("val")!=null) //判断字符串是否为空     
  2. {         
  3.         num=Integer.parseInt(request.getParameter("val")); //将字符串转化为整数     
  4. }     
  5. else    
  6. {     
  7.         num=0;     
  8. }    
  9.  
  10. if(request.getParameter("val")!=null) //判断字符串是否为空   
  11. {      
  12.         num=Integer.parseInt(request.getParameter("val")); //将字符串转化为整数   
  13. }   
  14. else   
  15. {   
  16.         num=0;   
  17. }  

表单及其在信息传递中的应用:

表单:

是一个能够包含表单元素的区域,HTML为表单提供了多种图形用户界面组件元素 (如文本框,密码框,下拉菜单等),这些表单元素能够让用户在表单输入信息,可以用它们来构成表单内容,作为用户可以输入的域,并可以将其提交给一个JSP进行处理。

格式:

  1.    
  2. ...   
  3.   

其中: name用于指定表单的名称。action用于指定表单被提交时所要执行的动作。method指定传递请求给JSP所用的方法(GET、POST、PUT,常用POST)。

1、标签  常用于输入信息或提交信息

语法:

说明:type允许指定输入类型(text(文本框)、password(密码框)、checkbox(复选框)、radio(单选按钮)、image(图像域)、reset(重置按钮)、submit(提交按钮))。 name为表单元素的名称。value为表单元素的初始值。

例如:

  1. 文本框:   
  2. 密码框:   
  3. 提交按钮:   
  4. 重置按钮:   
  5. 单选按钮: 

(用于从一组选项中选择其中一个选项,checked是可选属性,如果有该属性,则表示该按钮显示时为被选中,否则为未选中。)

  1. e.g:选项1   
  2. 选项2  

在选中按钮1的情况下提交URL如下:...?radiobutton=1...

  1. 复选框:  

(用于从一组选项中选择多个选项,checked同上。与单选按钮相似,复选框常成组使用,与单选按钮不同的是,被选中的多个复选框都会被提交,因此其name可以相同(按数组处理),也可以不同(按不同变量进行处理))

  1. e.g:swim   
  2. run  

如果在提交时两个都选中,则URL形式如下:...?checkbox=swim&checkbox=run...

2、

说明:cols为文本域宽度(字符数),rows为文本域的高度(行数) 
   
3、 

说明:name是名称,size是列表区域高度(即可显示的选项数),multiple是可选属性,若有表示可选择多项。selected是一个可选属性,有表示该选项设置为已选中。

【编辑推荐】

  1. 全面介绍ASP.NET和JSP技术
  2. JSP技术Web开发的主流技术
  3. PHP与JSP上演超详细性能测试大PK 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...