[原创]    JSP简介_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3897 | 回复: 0   主题: [原创]    JSP简介        下一篇 
funny
注册用户
等级:中校
经验:1529
发帖:111
精华:4
注册:2013-3-13
状态:离线
发送短消息息给funny 加好友    发送短消息息给funny 发消息
发表于: IP:您无权察看 2013-3-13 15:38:43 | [全部帖] [楼主帖] 楼主

介绍思路

一、 jsp基础(概念,执行过程,简单示例)。

二、 jsp语法(基本语法、语法元素的介绍)。

三、 jsp数据库编程(jdbc的介绍)。

四、 JavaBean的应用。

五、 jsp应用中常见问题及常用对象的介绍。

六、 通过一个简单的实例,介绍应用。

七、 简单介绍综合计划中的应用。

一、 JSP基础

(一)JSP概念

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)JSP标记(tag),从而形成JSP文件(*.jsp)

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServletJSP的技术基础,而且大型的Web应用程序的开发需要Java ServletJSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠特点。

JSP的运行环境:jdk+web服务器(tomcatWebLogic等)。

(二)JSP执行过程

(三)JSP 示例

jsp文件

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*" %>
<HTML>
<BODY>


你好,今天是

<%
Date today=new Date();
%>
<%=today.getDate()%>号,
星期<%=today.getDay()%>
</BODY>
</HTML>


生成的servlet文件对应部分

import java.util.*;

response.setContentType("text/html;charset=gb2312");

out = pageContext.getOut();

out.write(“\r\n\r\n<HTML>\r\n <BODY>\r\n你好,今天是\r\n"); 

Date today=new Date();

out.print(today.getDate());

out.write("号,星期");

out.print(today.getDay());

out.write(" \r\n</BODY>\r\n</HTML>\r\n ");

JSP原始代码中包含了JSP元素和Template(模板) data两类

Template data指的是JSP引擎不处理的部分,即标记<%……%>以外的部分,例如代码中的HTML的内容等,这些数据会直接传送到客户端的浏览器

JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。 

二、 JSP 基本语法

具体内容参见:JSP 动态网站技术入门与提高。

三、 JSP与数据库的应用

具体内容参见:JSP 动态网站技术入门与提高。

四、 JSP常见问题及常用对象

(一)jsp的中文乱码问题

在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下仅对JSP中出现较多的两种乱码问题

1JSP页面乱码 
  这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可

<%@ page contentType="text/html; charset=gb2312"%>


2提交表单时出现中文乱码

方法:将传过来的字符以当前默认的编码为字节数组,然后将字节数组再解码为我们需要的字符;例如:中文字符串 str可以这样出来

str = new String(str.getBytes("ISO-8859-1"),"gb2312")。


(二)Request对象

该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。

request的常用方法:1getParameter();使用如下 String str=request.getParameter();2,setAttribute();getAttribute();

(三)Session 对象

1什么是sessionsession对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。

从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。

2session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

3session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。

4.session的主要方法:

在服务器上通过session来区分不同的用户-->session ID:任何连接到服务器上的用户,服务器都会为之分配唯一的不会重复的session ID

取得session ID的方法:session.getId()

判断是否是新的session:session.isNew()

设置属性:session.setAttribute(String name, Object value)

取得属性:session.getAttribute(String name)

删除属性session.removeAttribute(String name)

用户注销:让用户的session失效
如果session失效,则在session保留的全部操作也将消失
方法: invalidate(),此方法属性一个手工操作的方法
如果session长时间不被使用,则也会自动消失

得到session的创建时间,也就是用户登陆服务器的时间
方法:long getCreationTime()该方法返回一个long类型

取得用户最后一次操作的时间
方法:long getLastAccessedTime()方法出返回一个long类型

(四)Cookie


Cookie是服务器发送给客户端浏览器的体积较小的纯文本信息,以后当用户访问同一个Web服务器时,浏览器会把它们发送给服务器。通过让服务器读取原先保存在客户端的信息,为浏览者提供一系列的方便。例如在线交易过程中标识用户身份,在安全要求不高的场合可避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等。

Cookie存放在客户端,首先要新建一个Cookie,然后设置其属性,再通过response对象的addCookie()方法将其放入客户端,获取Cookie对象可调用request对象的getcookies()方法。

1.创建Cookie

调用Cookie对象的构造函数可以创建Cookie,构造函数的语法格式如下:

 Cookie(String cookiename,String cookievalue)


  在函数中,第一个参数cookiename是新建的Cookie对象的名称,第二个参数cookievalue是新建的Cookie对象的值。

Cookie对象的名称和值都不能包含空白字符以及下列字符:[ ] ( ) = , " / ? @ :

2.设置与读取Cookie属性

在把Cookie加入待发送的应答头之前,可以查看或设置Cookie的各种属性。
  getComment()/setComment():获取/设置Cookie的注释。
  getDomain()/setDomain():获取/设置Cookie适用的域。

  getMaxAge()/setMaxAge():获取/设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,即在用户关闭浏览器之前有效,而且这些Cookie不会保存到磁盘上。

getName()/setName():获取/设置Cookie的名称。本质上,名称和值是需要程序员始终关心的两个部分。由于HttpServletRequestgetCookies方法返回的是一个Cookie对象的数组,因此通常要用循环语句来访问这个数组并查找特定名称,然后用getValue()检查它的值。

getPath()/setPath():获取/设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。这里的方法可以用来设定一些条件。例如,someCookie.setPath("/"),此时服务器上的所有页面都可以接收到该Cookie

getSecure()/setSecure():获取/设置一个boolean值,该值表示Cookie是否只能通过加密的连接(即SSL)发送。

getValue()/setValue():获取/设置Cookie的值。如前所述,名称和值实际上是程序员始终关心的两个方面。不过也有一些例外情况,比如把名称作为逻辑标记(也就是说,如果该名称存在,则表示true)。

getVersion()/setVersion():获取/设置Cookie所遵从的协议版本。默认版本0(遵从原先的Netscape规范);版本1遵从RFC 2109,但尚未得到广泛的支持。

3.将Cookie加入HTTP头中

可将addCookie()方法加入到Set-Cookie应答头。如下所示:

 Cookie usernameCookie = new Cookie("username", "dzycsai");
response.addCookie(userCookie);


4.读取Cookie

从客户端读取Cookie时调用的是request对象的getCookies()方法。该方法返回一个与HTTP请求头中的内容对应的Cookie对象数组。得到这个数组之后,一般是用循环语句访问其中的各个元素,并调用getName()检查各个Cookie的名字,直至找到目标Cookie为止;然后对这个目标Cookie调用getValue(),根据获得的结果进行其他处理。

  




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论