JSP 入门教程一[基础内容]

一、page指令常用属性

Page 指令常用属性
属性 描述
language  指定JSP页面使用的脚本言语,默认为Java
import通过该属性来引用脚本言语中使用到的类文件
contentType用来指定JSP页面所采用的编码方式,默认为'text/htiml;charset=GBK' 


二、声明

<body>
	<%!
		String formateDate(Date date){
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
			return simpleDateFormat.format(date);
		}
	%>
	第一次调用:今天是:<%=formateDate(new Date()) %>
	<br>
	第二次调用:今天是:<%=formateDate(new Date()) %>
</body>

三、request 对象的几个常用方法

request 对象的几个常用方法
方法名称 说明 
String  getParameter(String   name)根据页面表单组件名称获取页面提交数据
String[ ]  getParameterValues(String  name)  获取一个页面表单组件对应多个值时的用户的请求数据  
void  setCharacterEncoding(String   charset)指定每个请求的编码,在调用request.getParameter()方法之前进行设定,可以用于解决中文乱码问题
request.getReqeustDispatcher(String  path)返回一个RequestDispatcher对象,该对象的forword方法用于转发请求


四、response 对象的几个常用方法

response 对象的几个常用方法
方法名称 说明 
addCookie(Cookie  cookie)在客户端添加Cookie 
setContentType(String  type)设置HTTP 响应的contentType 类型
setCharacterEncoding(String  charset)设置响应所采用的字符编码类型
sendRedirect(String  path)将请求重新定位到一个不同的url上


五、中文乱码

1、使用超链接进行数据传递时,采用的是用get方式提交请求,如果在传递数据中存在中文,使用reqeust对象直接获得时,容易产生乱码问题。因此,需要对数据进行重新编码。由于使用request对象获取的数据类型均是String类型,因而可以使用String 对象的方法实现数据重新编码。

语法:new  String(需要编码的数据.getBytes("ISO-8895-01"),"GBK")


六、Cookie

a、Cookie 的作用表现在如下几个方面

  • 对特定对象的追踪,如访问者的访问次数、最后访问时间、路径等。
  • 统计网页浏览次数。
  • 在Cookie有效期内,记录用户登录信息。
  • 实现各种个性化服务,如针对不同用户喜好以不同的风格展示不同的内容。

b、在JSP中使用Cookie

1、导入类

2、创建Cookie 对象  Cookie   newCookie = new   Cookie(String key,  Object  value);

c、写入Cookie

response.addCookie(newCookie);

Cookie 对象的几个常用方法
返回值类型 方法名称 说明
voidsetMaxAge(int  expriy)设置Cookie的有效期,以秒为单位
voidsetValue(String  name)在cookie创建后,为cookie赋予新的值
StringgetName()获取cookie的名称
StringgetValue()获取cookie的值
intgetMaxAge()获取cookie的有效时间,以秒为单位


d、读取Cookie

读取Cookie时会调用reqeust.getCookie()方法,该方法将会返回一个HTTP请求头中的内容对应的cookie对象数组,因此必须要通过遍历的方方式进行访问。


七、session

sessionid会返回到客户端,那么在客户端sessionid会保存在什么位置呢?在客户端保存用户信息使用的是cookie,因此保存sessionid的方式也是使用cookie实现的。

session 对象的常用方法
返回值类型方法名称说明
voidsetAttribute(String  key, Object  value)以key/value 的形式保存对象值
ObjectgetValue(String  key) 通过key获取对象值
voidinvalidate()设置session对象失效
StringgetId() 获取session id
voidsetMaxInactiveInterval(int  interval)设定session 的非活动时间
intgetMaxInactiveInterval()获取session的有效非活动时间,以秒为单位


对比cookie与session有什么区别

1、session是在服务器端保存用户信息,cookie是在客户端保存用户信息。

2、session中保存的是对象,cookie保存的是字符串

3、session对象随会话结束而关闭,cookie可以长期保存在客户端。

4、session保存重要的信息,cookie通常保存不重要的用户信息。


八、include指令

include指令表示:在JSP编译时插入一个包含文本文件或代码的文件,这个包含的过程是静态包含。


九、application对象

application 对象的常用方法
返回值类型方法名称说明
voidsetAttribute(String key,  Object  value)以key/value的形式保存对象值
ObjectgetAttribute(String key)通过key 获取对象值
String getRealPath(String  path)返回相对路径的真实路径


十、JSP的其它内置对象

1、pageContext:提供访问其他隐含对象的方法

pageContext:提供访问其他隐含对象的方法
方法名说明
getRequest()获得request对象
getResponse()获得response对象
getSession()获得session对象
getOut()获得out对象
setAttribute()保存属性
getAttribute()获得属性
include()包含其主页面在pageContext 对象中保存的属性,只能在当前页面中去获取



page:表示当前页面,类似于Java中的this

config:用于存放JSP编译后的初始数据

exception:表示JSP页面运行时产生的异常,该对象只有在错误页面(page指令中设定 isErrorPage为 true的页面)中才能够使用。


十一、JNDI

1、学习如何用JNDI  API 访问 Tomcat  中的JNDI 资源,并通过一个简单的任务来说明JNDI 的调用。要求:在Tomcat 中发布一条信息供所有的Web应用程序使用。

context.xml 文件为全局的上下文配置文件,对所有的Web 应用有效。

context.xml 文件的代码如下所示:

<Context>
	<Environment name="tjndi" value="hello JNDI" type="java.lang.String" />
</Context>
然后编写JSP代码,测试连接,具体代码如下:
<span>	</span><%
		// context 提供了查找JNDI Resource 的接口
		Context ctx = new InitialContext();
		// java:comp/env/为前缀
		String testjndi = (String)ctx.lookup("java:comp/env/tjndi");
		out.print("JNDI:"+testjndi);
	%>
运行效果如下:

Environment元素常用的属性
名称 说明
name 相对与java:comp/env 的名称
typeJava类名
value返回给应用的参数值


注意

为了避免JNDI命名空间中的资源名称互相冲突,并且避免可移植性问题,JavaEE应用程序中的所有名称应该以字符串“java:comp/env”开始。

DataSource对象是由Web容器(Tomcat)提供的,因此不能在程序中采用创建一个实例的方式来生成DataSource对象,那么该如何获得一个数据源对象呢?javax.naming.Context提供了查找JNDI  Resource 的接口,例如,可以通过以下代码获得名称为 jdbc/news 的数据源。

<span>		</span>// context 提供了查找JNDI Resource 的接口
		Context ctx = new InitialContext();
		// 获取与逻辑名相关联的数据源对象
		DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/news");
		Connection conn = ds.getConnection(); // 获得数据库连接对象Connection
当程序结束数据库访问后,应该调用Connection 的close() 方法及时将Conneciton 返回给数据库连接池。

Context接口
方法说明
lookup(String  name) 返回与指定的名字绑定的对象


数据源的配置

context.xml 文件的配置(配置数据源时添加Resource元素)

<Context>
	<Resource name="jdbc/news"
			  auth="Container"
			  type="javax.sql.DataSource"
			  maxActive="100"
			  maxIdle="30"
			  maxWait="10000"
			  username="wcadmin"
			  password="wcadmin"
			  driverClassName="oracle.jdbc.driver.OracleDriver"
			  url="jdbc:oracle:thin:@localhost:1521:oracle" />
</Context>
DataSource对象的Resource元素属性
属性说明
name指定Resource 的JNDI名字
auth指定管理的Resource的Manager,它有两个可选值:Container和Application.
Container表示由容器来创建Resource,Application表示由Web应用来创建和管理Resource
type指定Resource所属的Java类名
maxActive 指定数据库连接池中处于活动状态的数据库连接的最大数目,取值为0,表示不受限制
maxIdle指定数据库连接池中处于空闲状态的数据库连接的最大数目,取值为0,表示不受限制
maxWait指定数据库连接池中处于空闲状态的最长时间(以毫秒为单位),超过这一时间将会抛出异常。取值为-1,表示可以无限制等待
username指定连接数据库的用户名
password指定连接数据库的密码
driverClassName指定连接数据库的JDBC驱动程序
url指定连接数据库的URL

注意:不同的Web服务器,配置数据源的方式是不一样的。

web.xml 文件的配置

<web-app>	
	<resource-ref>
		<description>news DataSource</description>
		<res-ref-name>jdbc/news</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
</web-app>
resource-ref元素的属性
属性 说明
description 对所引用资源的说明
res-ref-name 指定所引用资源的JNDI名字,与<Resource> 元素中的name属性对应
res-type指定所引用资源的类名字,与<Resource>元素中的 type属性对应
res-auth指定管理所引用资源的Manager,与<Resource>元素中的auth属性对应

添加数据库驱动

通过数据源访问数据库,由于数据源由Tomcat创建并维护,所以必须把JDBC驱动程序复制到Tomcat的lib目录下

小结:

在使用JNDI获得数据源对象时,可分为如下四个步骤。

1)配置context.xml 文件

2)配置web.xml 文件

3)添加驱动

4)进行代码编写,使用lookup() 方法获得数据源对象。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值