当前位置:文档之家› 跟我学J2EE JSP自定义标签技术——访问数据库的带属性的自定义标签开发实例

跟我学J2EE JSP自定义标签技术——访问数据库的带属性的自定义标签开发实例

跟我学J2EE JSP自定义标签技术——访问数据库的带属性的自定义标签开发实例
跟我学J2EE JSP自定义标签技术——访问数据库的带属性的自定义标签开发实例

1.1访问数据库的带属性的自定义标签开发实例

1、改进前面的标签以增加两个属性----startID, endID (1)新增GetDBDataWithAttrTag.java文件。

(2)在该类中增加两个属性声明

(3)编程该类

在该程序中实现数据库的连接,并从标签所带的属性中获得属性的值。该值将作为数据库表的操作条件,然后将操作的结果直接输出到页面上,实现某一独立的功能。

package jsptaglib;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

import java.sql.*;

public class GetDBDataWithAttrTag extends TagSupport

{

int startID=0,endID=2000;

public void setEndID(String endID)

{

this.endID = Integer.parseInt(endID);

}

public void setStartID(String startID)

{

this.startID = Integer.parseInt(startID);

}

Connection con = null;

PreparedStatement pstate = null;

ResultSet rs = null;

String url = "jdbc:odbc:WebMisDB";

String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";

public GetDBDataWithAttrTag() throws ClassNotFoundException {

Class.forName(DBDriver);

}

public int doEndTag() throws JspException

{ //注意:也可以在doStartTag方法中来实现业务功能

try

{

con = DriverManager.getConnection(url, "yanguser", "1234");

String strQuery = "select id,bookName,publisher,bookAuthor,price,time from BookInfo where id >= ? and id<= ?";

pstate = con.prepareStatement(strQuery,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UP DATABLE);

pstate.setInt(1, startID);

pstate.setInt(2, endID);

rs = pstate.executeQuery();

JspWriter out = pageContext.getOut();

out.write("

") ;

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

while(rs.next())

{

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

out.write("

");

}

out.write("

书号
书名
书的作者
出版社
书的价格
出版日期
" + rs.getInt("id") + "" + rs.getString("bookName") + "" + rs.getString("bookAuthor") + "" + rs.getString("publisher") + "" + rs.getInt("price") + "" + rs.getString("time") + "
");

con.close();

}

catch (SQLException ex)

{

throw new JspException("不能正确地连接数据库!");

}

catch (java.io.IOException ex)

{

throw new JspException("不能正确地进行输出数据!");

}

return this.EV AL_PAGE;

}

public int doStartTag() throws JspException {

return this.EV AL_BODY_INCLUDE;

}

}

2、TLD文件,请见GetDBDataTag.tld文件

"https://www.doczj.com/doc/a714949450.html,/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

1.0

1.1

getDBTag

getdbdatatag

jsptaglib.GetDBDataTag

JSP

getDBDataWithAttrTag

jsptaglib.GetDBDataWithAttrTag JSP

startID

false

true

endID

false

true

3、部署web.xml文件(对于 JSP2.0技术可以不再需要)

/taglib/GetDBDataWithAttrTag.tld

/WEB-INF/taglib/GetDBDataWithAttrTag.tld

4、在JSP页面中使用该标签

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

<%@ taglib uri="/WEB-INF/taglib/GetDBDataTag.tld" prefix="getDBTag" %>

showDBdataWithAtt

<%

String startID="100",endID="1000";;

%>



5、执行该项目

6、体验标签所带来的“V”与“M”的“分离”以及“重用”效果改变startID和endID的值,将产生出新的结果。

jsp-servlet题库(附答案)

1.B 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 2.D 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 3. ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。 C. 在禁用Cookie时可以使用URL重写技术跟踪会话。 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。 4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 5.B EL表达式,${10 mod 3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null 6. C 自定义标签的作用是( ) A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 7.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航 8. BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制。 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。 C. service()方法响应客户端发出的请求。 D. destroy()方法释放Servlet实例。 9.B 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ public void init() throws ServletException{ } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("hello!"); } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!

在JSP中用自定义标签实现集合的遍历—山寨版cforeach

【文章标题】在JSP中用自定义标签实现集合的遍历——山寨版 【文章作者】曾健生 【作者邮箱】zengjiansheng1@https://www.doczj.com/doc/a714949450.html, 【作者QQ】190678908 ******************************************************************************* 在JSTL中,标签可方便地遍历集合或数组,在了解了自定义标签后,可动手实现标签的功能。 在编写自定义标签前,总要把实验环境搭建好^-^ 首先,定义一个Person类,在实验的集合中就是存放这个类的实例,代码如下:package com.javaeye.newjueqi; /** *实验类Person */ public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { https://www.doczj.com/doc/a714949450.html, = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 既然是遍历集合,那么集合也是必须的,我们在测试页面TestMyELTag.jsp上写下如下的JSP代码,生成一个测试用途的集合ArrayList,集合中有三个元素 <% //第1个人对象 Person p1=new Person(); p1.setName("Tom"); p1.setAge(23); //第2个人对象 Person p2=new Person(); p2.setName("Mike");

基于JSP的SQLServer数据库访问技术

数据库及信息管理 本栏目责任编辑:闻翔军 1引言 随着网络的飞速发展,在网络上发布公司与个人的主页已成为一种时尚。又加上电子商务的新浪潮,促使网站技术不断创新,尤其是服务器端程序语言更是日新月异,JSP是最受欢迎的一种网页程序语言。 大部分公司的网站和电子商务网站都需要利用数据库来存储重要的数据信息,对数据库中的数据进行查询、修改、更新、删除等操作是JSP访问数据库的基本操作,本文详细介绍了如何利用JSP和JDBC-ODBC桥访问SQLServer2000数据库的方法和技术。 2JSP JSP是JavaServerPages的简称,由SunMicrosystems公司倡 导和许多公司参与共同建立的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。 与其它网页技术标准相比,JSP具有很多优势:一次编写,到处运行;系统的多平台支持;强大的伸缩性;多样化和功能强大的开发工具支持。鉴于这些优势,许多程序员在编写网站程序时优先选择JSP技术。但是JSP环境配置比较繁琐,对于初学JSP的人员来说,感觉无从下手,本文就详细介绍了配置JSP环境的详细步骤。 执行JSP代码首先需要进行JAVA运行环境安装和配置,它保证了JSP的跨平台性,可以从SUN公司的主页上查询并下载所需的软件进行安装;其次需要JSP引擎的安装(例:Tomcat),有时还需要配置IIS更为方便快捷地进行JSP网页编程。JSP环境的配置稍微繁琐一些,相关资料请查阅网络上资料。 3JDBC-ODBC JSP访问SQLServer数据库的方法有多种,JDBC-ODBC桥是一种非常快速而直接的访问方式。JDBCTM是一种用于执行SQL 语句的JavaTMAPI(JDBC本身是个商标名,而不是一个缩写字;然而,JDBC常被认为是代表“Java数据库连接(JavaDatabaseCon-nectivity)” )。它由一组用Java编程语言编写的类和接口组成,允许用户从Java应用程序中访问任何表格化数据源。 JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能。有了JDBC,各种关系数据库发送SQL语句就是一件很容易的事。而且,使用Java编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。 JDBC支持数据访问的两层模型(应用层、 数据库层),也支持三层模型(客户层、 中间层、数据源层)。因此,JDBC不仅可以在应用程序中使用,也可以作为中间层服务器应用程序的一部分使用。 ODBC是OpenDatabaseConnectivity的缩写,即开放数据库 互连,是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的 DBMS的ODBC驱动程序完成。 JDBC-ODBC是利用现有的ODBC,将JDBC翻译为ODBC的调用,使Java应用可以访问所有支持ODBC的数据库。这种方法操作简单,本文以此种驱动方法为例来说明如何利用JDBC访问 数据库。访问的主要步骤如下: (1)加载JDBC驱动程序:JDBC的驱动管理器查找到相应的数据库驱动程序并加载。常用的方法是在程序中使用Class.forName()方法动态装载并注册数据库驱动,在数据库的驱动程序加载后, 就可以建立与该数据库的连接了。 (2)建立数据库连接:使数据库驱动连接到相应的数据库。常使用DriverManager类的静态方法getConnection(Stringrul,Stringuser,Stringpassword)方法来完成。其中,url是数据库连接串,指定 收稿日期:2006-09-25 作者简介:马宁(1973-),女,河北省唐山人,唐山师范学院计算机系应用教研室(主任),讲师,现主要从事计算机程序语言、计算机应用的教学与科研工作;邓先瑞(1973-),女,讲师,现在中国科学院攻读博士,主要从事现主要从事计算机程序语言、自动化的教学与科研工作;杜瑞庆(1974-),男,河北省赞皇县人,讲师,现主要从事计算机程序语言的教学与科研工作。 基于JSP的SQLServer数据库访问技术 马宁,邓先瑞,杜瑞庆 (唐山师范学院,河北唐山063000) 摘要:随着网络和网络技术的飞速发展,网站编程语言也发展了很多,JSP是最受欢迎的优秀网页程序设言,本文详细介绍了利用 JSP和JDBC-ODBC访问SQLServer数据库的方法和技巧,对于程序员方便快捷地编写跨平台的高水平网页程序有一定地参考价值。 关键词:网络;JSP;JDBC-ODBC;SQLServer数据库;平台中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)02-10323-02 TechnologyofAccessingSQLServerDatabasesBasedonJSP MANing,DENGXian-rui,DURui-qing(TangshanTeachersCollege,Tangshan063000,China) Abstract:Withdevelopmentofwebandwebtechnology,programminglanguagesofwebhavemadearapidprogress.JSPisthefavoritelanguageforprogrammingwebpages.HowtouseJSPandJDBC-ODBCtoaccessSQLServerdatabasesisintroducedinthispaper,whichisusefulforprogrammerstoprogramtoplevelwebpagesthatcanworkonanyplatform. Keywords:web;JSP;JDBC-ODBC;SQLServerdatabase;platform 323

JSP的3个编译指令、7个动作指令

JSP的3个编译指令、7个动作指令 3个编译指令:page、include、taglib JSP的编译指令是通知JSP引擎(Tomcat、WebLogic)的消息,它不直接生成输出。 JSP引擎的工作原理: 当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤: (1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序 (2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class (3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端 以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。 编译指令都有其默认值,因此无须为每个指令设置其值。 常见的编译指令有3个: (1)、page:是针对当前页面的指令; (2)、include:用于指定包含另一个页面; (3)、taglib:用于定义和访问自定义标签。 使用编译指定的语法格式如下: <%@ 编译指令名属性1="属性值" 属性2="属性值" ...%>

1、page指令: 是针对当前页面的指令,通常位于JSP页面的顶端,一个JSP页面可以使用多page指令。 常用的page指令如下的格式: <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <%@ page import="java.sql.*" %> 常用的page的属性如下: (1)、contentType:用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型,默认MIME类型是text/html,默认的字符集类型 为:ISO-8859-1; (2)、language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,所以该属性的值通常都是java。 (3)、errorPage:指定错误处理页面,如果本页面产生了异常或者错误,而该页面没有对应的处理代码,则会自动调用该属性指定的JSP页面; (4)、pageEncoding:指定生成网页的编码字符集; (5)、import:用于导入包。下面几个包是默认自动导入的,不需要显示导入。默认导入的包有:https://www.doczj.com/doc/a714949450.html,ng.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*; 2、include指令: 语法格式为:<%@ include file="要包含的页面路径" %> jsp中有两种包含模式,一种是<%@ include file="要包含的页面路径" %>,这种叫静态包含; 另一种是 ,这叫做动态包含。

java笔试题127

选择器 第1题. 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 正确答案为:B 第2题. 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 正确答案为:D 第3题. 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 正确答案为:C 第4题. 自定义标签的作用是 A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 正确答案为:C 第5题. request.getRequestDispatcher().forward(request,response)称之为 A. 流转 B. 转发 C. 重定向 D. 导航 正确答案为:B

第6题. 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ Publicvoid init() throws ServletException{ } Publicvoid service(HttpServletRequest request,HttpServletResponse response) ThrowsServletException,IOException{ PrintWriterout = response.getWriter(); out.println(“hello!”); } } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello! C. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字 D. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息 正确答案为:B 第7题. 在Servlet中,response.getWriter()返回的是____________ A. JspWriter对象 B. PrintWriter对象 C. Out对象 D. ResponseWriter对象 正确答案为:B 第8题. 在web.xml中使用___________标签配置过滤器 A. B. C. D. 正确答案为:A 第9题. 自定义标签的描述文件在web.xml中配置正确的

jsp连接数据库大全

jsp连接数据库大全 现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20) 然后向这个表写入一条测试纪录 那么现在开始我们的jsp和数据库之旅吧。 一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为你的数据库的SID String user="scott"; String password="tiger"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> 二、jsp连接Sql Server7.0/2000数据库 testsqlserver.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%>

JavaEE自定义标签(DOC)

JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用 1、标签 以类似于html标签的方式实现的java代码的封装。 第一:形成了开发标签的技术标准---自定义标签的技术标准。 第二:java标准标签库(sun之前自己开发的一系列的标签的集合)jstl,以及表达式语言E L。 2、自定义标签 (1)理解: 可以允许用户自己根据自己的需要,去开发自己的标签的技术规范。 通俗:在Jsp页面上,以简单的标签封装java代码的操作。 //在自定义标签类中,先调用setPageContext()实例化内置对象: //然后是doStartTag()方法,核心代码放在这个方法里面:

//定义变量,变量的Get、Set方法: private String UserName = "";

//tld配置文件放置在WEB-INF目录下,主要的标记如下,主要的配置如下: //前面tlib-version版本号、Jsp-version JSP的版本号、short-name 命名空间、是必须有的 //uri,注意是uri而不是url,url是访问的路径。 //而uri为访问时候的别名,写在JSP页面上的标签的别名。 //name为此标签类的别名,tag-class 为标签类的存放的物理路径 //body-content 为是否有标签体,如果是/子关闭标签设置为EMPTY //如果涉及到标签属性,可以设置attribute,其中name为属性的名称,而不是别名,required 属性是否必须设置,rtexprvalue 是否程序运行时候为属性赋值。 //如果在tld文件中不设置uri,则在web-xml中必须对talib-uri进行设置。

JSP和数据库连接写一个网页登陆注册代码

文件名称123.jsp <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GB2312" contentType="text/html"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerP ort()+path+"/"; %> <%!public String codeToString(String str) { String s=str; try{ byte tempB[]=s.getBytes("ISO-8859-1"); s=new String(tempB); return s; } catch(Exception e) {

自定义标签库

JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。 自定义标签有着丰富的特点,它们可以: 1.可以通过调用页面传递的属性进行自定义; 2.可以访问对于JSP页面可能的所有对象; 3.可以修改由调用页面产生的响应。 4.可以相互间通信。你可以创建并初始化一个JavaBean组件,创建一个变量引用标签中的bean,接着在其它的标签中引用该bean. 5.可以在一个标签中嵌套另一个,可以在JSP页面中进行复杂的交互。自定义标签为在JSP项目中创建易于重用的代码打开了一扇大门。你所需要的只是标签库和它的文档说明。 通过实现接口或者继承现有的类,我们就可以开发自定义的标签。常用的接口有:

TagSupport类 该类是IterationTag的缺省实现。除了实现原有方法外,本身还增加了一些有用的其他方法和成员变量。下表列出其中重要的几个:

BodyTagSupport类 该类同时继承了TagSupport类,并实现BodyTag接口。除了前表所示方法,该类还提供了一些其它方法便于使用。 实现Tag接口 所有的标签处理器都需要间接或直接的实现这个接口。 下面列出Tag接口定义的方法和常量:

setPageContext()方法 setPageContext()方法是一个定制标签声明周期内第一个要被调用的方法。完整写法是: public void setPageContext(PageContext); jsp引擎会将jsp页转换时隐含创建的pageContext对象,作为参数,调用setPageContext方法。 通常的做法会将这个参数保存为本标记处理器的参数。 setParent()和getParent()方法 当标签嵌套使用时,外层的标签被成为父标签,内部的被称为子标签。完整的写法是: public void setParent(Tag); public Tag getParent(); 其中setParent方法对父标签对象进行设置。而getParent方法用以获得父标签对象。

JSP课后习题答案

JSP课后习题答案 单元3 课本60页课后练习 填空题 1、tomcat服务器的默认端口是:8080 2、静态网页的内容是相对固定的,而动态网页的内容是随着访问时间的访问者发生变化。(填:动态网页或静态网页) 3、在tomcat成功安装和启动后,可以在浏览器中输入http://localhost:8080来测试安装配置是否正常。 4、在WEB-INF下必须有一个XML文件是web.xml 选择题 1、B 2、D 3、A 4、D 单元4 课本87页课后练习 填空题 1、脚本程序是一段在客户端请求时需要先被服务器执行的java 代码,它可以产生输出,同时也是一段流控制语句。 2、在jsp的3种指令中,用来定义与页面相关的指令是Page指令;用于在jsp页面中包含另一个文件的指令是Include指令(静态包含);用来定义一个标签库以及其自定义标签前缀的指令是Taglib指令。 3、动作元素允许在页面被请求时包含一些其他资源,如一个静态的HTML文件和动态的JSP文件。

4、Page指令的MIME类型的默认值为text/html,默认字符集是iso-8859-1 。 5、Jsp的隐藏注释格式为<%-- --%>或者<%--comment--%> Jsp的输出注释的格式是。 选择题 1、A 2、A 3、D 4、C 5、B 6、D 简答题(答案在课本79页) 请查阅资料并结合课堂上所讲内容,阐述include静态包含和动态包含指令的区别。 答:动态include指令是在执行时才将对包含的文件进行处理,要进行编译,可以带参数;静态的include的指令是简单的将两个文件进行合并,使其成为一个新的文件。 单元5 课本130页课后练习 填空题 1、在jsp内置对象中,用于请求相关的对象是Request对象。该对象可以使用getParameter(String s)方法来获取表单元素提交的信息。 2、Response对象中用来动态改变contentType 实型的方法是setContentType() 3、Session对象封装了属于客户会话的所有信息,该对象可以使用setAttribute()方法来设置指定名字的属性。

JSP连接数据库代码

package com.examSystem.DBConnection; import java.sql.*; public class ConnectionDB { // 单态只能实例化自己 private static ConnectionDB connDB = new ConnectionDB(); // 声明一个数据库连接 private static Connection conn; // 数据库驱动字符串 private String dbdriver = "com.mysql.jdbc.Driver"; // 连接数据库URL private String URL = "jdbc:mysql://localhost:3306/a"; // 连接数据库用户名 private String username = "root"; // 连接数据库密码 private String password = "root"; // 私有的构造方法 private ConnectionDB() { // 加载数据库驱动 try { Class.forName(dbdriver); System.out.println("加载数据库驱动成功!" + dbdriver); } catch (Exception e) { System.err.println("加载数据驱动失败!具体信息:" + dbdriver); } // 连接数据库 try { conn = DriverManager.getConnection(URL, username, password); System.out.println("连接数据库成功!"); System.out.println("url:" + URL + ",username:" + username + ",password:" + password); } catch (Exception e) { System.err.println("连接数据库失败!"); System.err.println("连接数据库url地址:" + URL); System.err.println("连接数据库的用户名:" + username); System.err.println("连接数据库的密码:" + password); } } // 获取数据库连接

jsp实现连接数据库分页浏览 增删改查等功能

一利用jsp实现Oracle数据库中表格的分页浏览:

二在Oracle数据库中建立表格,包含员工的工号、姓名、性别、工龄、工资等字段,并实现增删改查操作。 (1)所建的worker表格如下: (2)Input.jsp运行结果如下:

(3)Inputcheck.jsp运行结果如下:

Pagebreak.jsp代码如下: <%@page contentType="text/html"pageEncoding="UTF-8" import="java.sql.*"%> JSP page

分页显示记录内容
<% String oracledriver="oracle.jdbc.driver.OracleDriver"; String oracleUrl="jdbc:oracle:thin:@localhost:1521:ORACLE"; String username="scott"; String password="tiger"; Connection con; Class.forName(oracledriver); con=DriverManager.getConnection(oracleUrl,username,password); int intPageSize; int intRowCount; int intPageCount; int intPage; String strPage; int i; intPageSize = 10; strPage = request.getParameter("page"); if(strPage==null){ intPage =1; }else{ intPage = https://www.doczj.com/doc/a714949450.html,ng.Integer.parseInt(strPage); if(intPage<1) intPage = 1; } Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

自定义标签(Custom Tag)

一、概述 JSP中有一块重要的技术:自定义标签(Custom Tag),最近这几天在学习Struts的时候发现Struts中使用了很多自定义标签,如html、bean等。所以我就做了个简单的试验,学习一下这种技术。 首先介绍一下这种技术吧! 1.优点: 取代了JSP中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。 2.开发流程: (1)编写JSP,在JSP中使用自定义标签。 (2)在web.xml中指定JSP中使用的标签的.tld(标签库描述文件)文件的位置。 (3) .tld文件中指定标签使用的类。 3. 自定义标签的分类: (1)简单标签:如< mytag:helloworld/> (2)带属性标签:如”/> (3)带标签体的标签: 在自定义标签的起始和结束标签之间的部分为标签体(Body)。Body的内容可以是JSP中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。 ”> (4)可以被Script使用的标签: 定义了id和type属性的标签可以被标签后面的Scriptlet使用。 <%oraDB.getConnection(); %> 4.接口及其他

在jsp页面中对数据库进行操作的步骤

在jsp页面中对数据库进行操作的步骤: 1,创建一个数据源。 2, 加载JDBC-ODBC驱动程序。 Class.forName("com.microsoft.jdbc.sqlserver.SQLSe rverDriver"); 3,建立一个到数据库的连接。 Connection conn=DriverManager.getConnection("jdbc:odbc:gra de"); 4, 测试 out.print("成功,jdbc驱动可以用"); 创建语句对象 Statement st=conn.createStatement( ); 写出sql语句 String sql=“select * from students”;

执行sql语句,得到结果集ResultSet rs=st.executeQuery(sql); 把结果集以表格形式显示在页面上

工号 姓名 性别 工龄 工资
<% while(rs.next()){ %> <% }%>
学号 姓名 数学 英语 物理
<% out.print(rs.getString(1)); %> <%

out.print(rs.getString(2)); %>

<% out.print(rs.getInt(3)); %> <% out.print(rs.getInt(4)); %> <% out.print(rs.getInt(5)); %>
关闭rs rs.close( ); 关闭st st.close(); 关闭conn conn.close();

jsp自定义标签实例

jsp自定义标签实例 JSP自定义标签。在自定义标签的起始和结束标签之间的部分为标签体(Body)。 标签处理程序类:定义标签的行为,并在JSP引擎遇到自定义标签时调用执行。 标签库描述符(TLD)文件:描述标签库的XML文档,向JSP引擎提供有关自定义标签的标签处理程序的信息。tag标签相关属性:实现简单标签处理程序标签处理程序是一个在运行时调用的Java类,它包含在JSP文件中使用的自定义标签的实现代码.标签处理程序必须实现或扩展javax.servlet.jsp.tagext包中的类和接口.javax.servlet.jsp.tagext含有允许标签处理程序类与JSP容器通信的接口和类。 最近在项目中要用到这种技术,所以自己就写一个经典的HelloWorld实例:其实对自定义标签已经早有接触了(Struts中使用了很多自定义标签,如html、bean等)使用这种技术的优点:取代了JSP中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。 实现步骤: 首先启动eclipse,新建一个web项目(废话...) 1、修改web.xml文件,增加自定义标签支持。 Java代码 2、创建标签库TLD文件tlds\helloworld.tld 。 Java代码 这里注意:web.xml和xxx.tld这两个XML文件的头信息的版本匹配很重要,否则会导致页面报错找不到标签。

3、创建标签处理程序类HelloWorldTag(重写doStartTag和doEndTag方法)。 Java代码 补充: doStartTag()方法是遇到标签开始时会呼叫的方法,其合法的返回值是EVAL_BODY_INCLUDE与 SKIP_BODY,前者表示将显示标签间的文字,后者表示不显示标签间的文字。 doEndTag()方法是在遇到标签结束时呼叫的方法,其合法的返回值是EVAL_PAGE与SKIP_PAGE,前者表示处理完标签后继续执行以下的JSP网页,后者是表示不处理接下来的JSP网页。 doAfterBody(),这个方法是在显示完标签间文字之后呼叫的,其返回值有EVAL_BODY_AGAIN与 SKIP_BODY,前者会再显示一次标签间的文字,后者则继续执行标签处理的下一步。 EVAL_BODY_INCLUDE:把Body读入存在的输出流中,doStartTag()函数可用。 EVAL_PAGE:继续处理页面,doEndTag()函数可用。 SKIP_BODY:忽略对Body的处理,doStartTag()和doAfterBody()函数可用。 SKIP_PAGE:忽略对余下页面的处理,doEndTag()函数可用。 EVAL_BODY_BUFFERED:申请缓冲区,由setBodyContent()函数得到的BodyContent对象来处理tag的body,如果类实现了BodyTag,那么doStartTag()可用,否则非法。

jsp连接数据库

一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建create table test(test1 varchar(20),test2 varchar(20) 然后向这个表写入一条测试纪录 一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为你的数据库的SID String user="scott"; String password="tiger"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,Res ultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%>

自定义标签的整理(新手教程)

在J2EE项目中,JSP页面常常通过在静态页面模板中嵌入scriptlets来插入动态的内容。 然而,随着复杂程序的增加,JSP页面也变得难于管理。虽然用这种方法开发小形项目唾手可得, 但是scriptlets仍然要面对下面的不利情况: Scriptlet难于阅读和修改。带有Scriptlets的JSP 页面混合了两种语言,这使得阅读和维护变得很困难。 Scriptlets鼓励了将数据表现和逻辑处理的混合。JSP 页面主要功能是数据表现而不是逻辑处理。逻辑处理属于Java类的工作,他们应该由程序员维护并能够重用。 Scriptlets不能够被重用。当scriptlets被重用时,常常是鼓励拷贝-粘贴来达到重用的效果,这是一种危险的维护方法。每一次你拷贝-粘贴scriptlets时,将有更多行多余的代码需要维护。 Scriptlets的参数很难进行确定传递. 无论如何,绝大数人简单的拷贝,粘贴、编辑或者类似的增加,使得大部份的多余的代码需要更多的维护。 与其创建充满了scriptlets的巨大的JSP页面,不如考虑使用用户自定义标签。用户自定义标签允许你创建、在JSP中使用你自己定义的类HTML标签。每当JSP引擎遇到用户自定义标签时,就会自动查找标签处理类,并自动调用他。页面中的自定义标签将会被票签处理类的输出所代替。这就

使得JSP页面不用直接在页面写Java代码,就可以指定生成动态的内容的。 用户自定义标签为你的网页设计提供了N种好处:他提高了页面代码的可读性。页面设计人员而不是程序员,能够使用很比使用Scriptlets更容易的使用标签。维护代码的程序员也只需个性标签库面不是JSP页面,这样他就不要再冒着破坏页面美观的风险。在使用标签的每一处,增强或者固定的标签改变了标签了的表现。标签比Scriptlets更容易确定参数,因为他会被作为一种属性或者在标签体内被传达。最后,标签比Scriptlets高度的可重用性,因为你可以创建共享的、可重用的自定义标签库。 JSTL提供的就是这种标准的自定义标签集。 让我们通过看一个简单的JSP页面例子,来看看如何使用自定义标签。下面这个页面使用scriptlet来得到数据: <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.util.Date" %> Sample JSP

The date and time at the server are: <% String sformat = "EEEE, d MMMM yyyy 'at' kk:mm:ss z"; SimpleDateFormat format = new SimpleDateFormat(sformat); Date date = new Date(); String sdate = format.format(date); out.print(sdate); %>

相关主题
文本预览
相关文档 最新文档