jsp学习笔记初级

合集下载

jsp学习

jsp学习

JSP基础教程学习笔记JSP基础教程学习笔记 (1)一、jsp简介 (2)二、jsp结构 (2)三、JSP生命周期 (3)四、jsp语法 (4)五、jsp指令 (7)六、jsp动作元素 (9)七、jsp隐含对象 (17)八、jsp客户端请求 (20)九、jsp服务器响应 (25)十、JSP HTTP状态码 (29)十一、JSP表单处理 (33)十二、JSP过滤器 (40)十三、JSP Cookies处理 (43)十四、JSP Session (46)十五、JSP文件上传 (51)十六、JSP日期处理 (56)十七、JSP页面重定向 (62)十八、JSP点击量统计 (63)十七、JSP自动刷新 (66)十八、JSP发送邮件 (68)一、jsp简介Java Server Pages,一种动态网页开发技术,使用jsp在html网页中插入java代码,标签通常以<%开头,以&>结尾。

二、jsp结构网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。

容器负责截获对JSP页面的请求。

Jsp容器与web服务器协同合作,未jsp的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于jsp 网页的图书元素。

下图显示jsp容器和jsp文件在web应用中所处的位置:Jsp处理的步骤:1.同普通网页一样,浏览器发送http请求给服务器;2.Web服务器识别出这事一个对jsp网页的请求,并且将该请求传递给jsp引擎。

通过使用URL或者.jsp文件来完成;3.Jsp引擎从磁盘中载入jsp文件,然后将它们转化为servlet。

这种转化只是简单的将所有模板文本改用println()语句,并且将所有的jsp元素转化成java代码;4.Jsp引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎;5.Web拂去其的某组件将会调用servlet引擎,然后载入并执行servlet类。

jsp基础语法课堂笔记

jsp基础语法课堂笔记

5)、useBean 动作标记
该标记用来创建并使用一个Javabean,是非常重要的一个动作标记,我们将在第4章详细讨论。Sun公司的倡导是:用HTML完成JSP页面的静态部分,用Javabean完成动态部分,实现真正意义上的静态和动态分离。
3)、JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
4)、JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
二、jsp语法
1、JSP页面的基本结构
一、jsp简介
1)、JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
2)、JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
5. JSP中的注释
1)、 HTML注释格式:
<!-- 注释内容 -->
2)、 JSP注释格式:
<%-- 注释内容 --%>
6. JSP 指令标记
1)、page 指令标记
?? (5)、buffer 属性 内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。
例如: <%@ page buffer= “24kb” %>buffer属性的默认值是8kb 。buffer属性可以取值" none",设置out不使用缓冲区。

JSP复习笔记

JSP复习笔记

JSP复习笔记一、内容汇总1. jsp简介: jsp是动态的页面语言,是以Java为主的跨平台web开发语言.一般jsp代码直接内嵌在html中,即jsp只是简单的将Java放到html网页中去而已,html可以直接改为jsp.jsp原理:jsp程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行;只有当客户端第一次请求JSP时,才需要将其转换并编译.2. .jsp运行环境: jsp是动态的代码,必须有服务器来解析这些代码,于是用到了Tomcat这款免费服务器.3. .jsp基本语法: 1)标记:<%程序代码区%> 2)表达式:<%=...%> 3) 3)注释4)JSP声明:<%! ...%>4. Dircetive(指令)格式:<%@ 指令属性="属性值"%>指令的设定不能重复制定(除了import外)常用的指令有:import、contentType、errorpage、page、include常用指令的使用方法5. JSP编程的内置对象(也叫隐藏变量)jsp页面中隐含了一些变量,这些你可以直接使用,不需要关心这些变量是如何创建出来的.常用的隐含变量包括:request:请求作用域response:请求响应session:会话作用域application:应用作用域out:输出注意:隐含变量只能在<%%>标记内使用6. jsp内置作用域之间的区别作用域的作用:用来临时存储一个值作用域内可以通过setAttribute来存储一个值,也可以通过getAttribute来提取一个值.jsp中的四个作用域按范围从小到大排列为: pageContext<request<session<application pageContext:只在当前页面有效,可以使用这个对象来管理其他的隐含对象request:表示在一个请求的作用域里面有效的.pageContext保存的值,只在当前页面有效,超出本页面均无效, 在以下的两种情况是有效的<jsp:include>和<jsp:forward>session作用域:表示在一个会话范围内有效,有两种情况会话内容会自动失效1).页面关闭,session内值没有了2).超时(通过session-timeout可以设置)3).手工注销sessionsession.invalidate();application作用域:代表在服务器的范围内是有效的,如果服务器关闭,则作用域内存储的任何值都将失效7. 参数传递1)如果是超链接,可以用以下方式:<a href="P.jsp?username=zhangshan&pwd=123456&age=25"> 链接</a>2)如果是form表示a.可显示的控件<input type="text" name="username">b.不需要显示在页面上<input type="hidden" name="pwd" value="<%=pwd%>">3)如果是jsp的include和forward标签<jsp:include flush="true" page="*.jsp?username=zhangsan&pwd=123456"><jsp:param name="age" value="28"></jsp:include>4)如果是JavaScript方式<script type="text/javascript">function demo(){var v = document.all('username').value;location.replace("*.jsp?username="+v+"&age=22");}</script><input type="text" name="username"><br><input type="button" value="点击"onclick="location.href='*.jsp?pwd=123456'"><br><input type="button" value="replace点击"onclick="location.replace('V.jsp?pwd=123456789')"><br><input type="button" value="动态取值" onclick="demo()">8. 数据提交方法提交方式分为get和post两种区别:A.post提交方式相对而言,比较安全;B.get只是适合于小数据的传递,也就是说,只有post才能传递大数据,比如在文件上传时,就必须将method指定为post.9. 从request作用域提取所有的参数名称方法:Enumeration<String> e= request.getParameterNames();while(e.hasMoreElements()){String str = e.nextElement();out.println(str+"="+request.getParameter(str));}10. 从request作用域提取多个值使用request作用域内的getParameterValues方法,请注意:选择项的名字必须相同,否则无法同时得到多个值<form action="*.jsp">个人爱好:<br><input type="checkbox" name="love" value="sport">体育<BR><input type="checkbox" name="love" value="finance">财经<BR><input type="checkbox" name="love" value="news">新闻<BR><input type="radio" name="sex" value="male" checked>男<input type="radio" name="sex" value="female">女<input type="submit"></form>//得到多个值String[] loves = request.getParameterValues("love");for(String str:loves){out.println(str);}for(int i=0,i < loves.length(),i++){String item=items.get(i);}String strSex = request.getParameter("sex");out.println(strSex);11. 请求分发器RequestDispatcherRequestDispatcher类表示一个请求的分发器,其效果等同于jsp:forward标签方法: request.getRequestDispatcher("P.jsp").forward(request,response);和jsp:forward相同的是,该分发器转向后的request和源页面中的request为同一个.二、典型问题1. JSP如何处理HTML FORM中的数据?通过内置的request对象即可,如下:<%String item = request.getParameter("item");int howMany = new Integer(request.getParameter("units")).intValue();%>2. JSP能进行递归调用吗?当然可以,如对form的提交给本页3. 在JSP如何包含一个静态文件?静态包含如下:<%@ include file="copyright.html" %>动态包含如下:<jsp:include page="copyright.html" />在JSP中可以使用如下方式包含纯HTML:<!--#include file="data.inc"-->4. 能象调用子程序一样调用JSP吗?当然可以,用<jsp:include page="relativeURL" flush="true"/>5. 在JSP中如何使用注释?主要有四中方法:1。

JSP学习笔记之基础语法

JSP学习笔记之基础语法

JSP学习笔记之基础语法jsp页⾯元素构成jsp页⾯组成部分有:指令,注释,静态内容,表达式,⼩脚本,声明。

jsp指令page指令:通常位于jsp页⾯的顶端,同⼀个页⾯可以有多个page指令include指令:将⼀个外部⽂件嵌⼊到当前jsp⽂件中,同时解析这个页⾯中的jsp语句taglib指令:使⽤标签库定义新的⾃定义标签,在jsp页⾯中启动⾃定⾏为page指令语法<%@page属性1="属性值" 属性2="属性值1,属性值2" 属性n="属性值n"%>jsp注释在jsp页⾯的注释。

HTML的注释:<!--html注释--> //客户端可见jsp的注释:<%--html注释--%> //客户端不可见jsp脚本注释://单⾏注释/**/多⾏注释jsp脚本在jsp页⾯中执⾏的java代码语法:<%java代码%>jsp声明在jsp页⾯中定义变量或者⽅法语法:<%!java代码%>jsp表达式在jsp页⾯中执⾏的表达式语法:<%=表达式%> //注意:表达式不以分号结束jsp页⾯的⽣命周期JSP的⽣命周期分为四个主要阶段是⾮常相似的Servlet的⽣命周期,并有如下⼏要点:JSP 编译:当浏览器请求⼀个JSP,JSP引擎⾸先检查它是否需要编译页⾯。

如果页⾯从来没有被编译,或者如果JSP已经被修改,因为它是最后⼀个编译JSP引擎编译的页⾯。

编译过程包括三个步骤:•解析JSP。

•打开JSP成servlet。

•编译这个servlet。

JSP初始化:当⼀个容器加载⼀个JSP它的任何服务请求之前调⽤jspInit()⽅法。

如果您需要执⾏JSP特定的初始化JSP 执⾏:JSP的⽣命周期的这个阶段代表请求的所有交互,直到JSP被破坏。

当浏览器请求⼀个JSP与页⾯已经被加载并初始化时,JSP引擎调⽤JSP中的_jspService() ⽅法。

Jsp基础知识总结

Jsp基础知识总结

Jsp我们学完也有好长一段时间间了,过程中总结的一点点基础知识,拿来与初学者分享,直到最后做我们一个小小的项目,宠物医院,也是用我们最简单的工具Jcreater4.0来做的,呵,到了Ecliplse下才发现,开发速度如此之快,不过这样也打好了我们的基础....不多说了,把所学到的小小总结发来至此吧,愿给初学者带来便利,同时愿高人给以指点不足之处.....首先来说一下我们jsp的课程:第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaMal和Servlet.第二部分就是Jsp技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库.第三部分就是过滤器的设计模式,包括过滤器和MVC设计模式.一.Servlet知识及常见错误和规律.1.桌面运行程序与WEB应用程序在过程实质是一样的---基于请求与响应的过程.2.http协议(超文本传输协议)1).无状态:多次请求信息之间无联系.2).用于internet发送请求和响应消息3).使用端口接收和发送消息,默认为80端口.端口:为内存缓冲区(多线程接收数据)windows: 0---65535端口0---4096为系统端口3.什么是Servlet?Server let服务器端小程序.用来处理客户端发送的请求,并由服务器响应给客户端的java编写的程序.Servlet只在服务器运行4.Servlet详解:import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.*;public class MyServlet extends HttpServlet{public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{response.setContentType("text/html;charset=gb2312");request.setCharacterEncoding("gb2312");response.sendRedirect("Login.jsp"); //重定向方法request.getParameter(""); //读取客户端数据/ /以下方法为转发,不同于重定向的是:转发时数据不丢失.ServletContext context=this.getServletContext();RequestDispatcherdispatcher=context.getRequestDispatcher("/welcome.jsp");dispatcher.forward(request,response);...//以下方法为包含(用得相对较少)dispatcher.include(request,response);}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{doGet(request,response);}}(2).当需要向Servlet传递参数的时候,Src="Servlet?name=' ' ";5.执行servlet时,发生下载提示:(1).可能性一:text/html;charset=GBK中间分号写成逗号.(2).可能性二:XML中配置信息出错.(3).可能性三:如定义全局变量时,例:CONTENT_TYPED在以后所用中放在双引号之中.(4).可能性四:当上面的text/html,charset中写错字符的时候,也会提示下载.6执行servlet时,发生404错误:(1).多为xml中配置出错.(2).可能在servlet通信方法中url出错.(3).表单提交时:action路径.(4).比较弱智的错误就是标记写错,请仔细检查.7.执行servlet时,发生403错误:(1).tomcat下站点里发生错误.8.执行servlet时,发生405错误:(1).servlet中没有post提交方法时.95.执行servlet时,发生500错误:(1).多数为servlet程序代码中发生异常错误.10.执行时,取出的数据为null.就要根据实际情况对应错误提示去找.11.执行jsp页时,发生500错误提示....多数为jsp页面在转译过程中发生编译错误! 甚是严重错误,可以按提示回头去找...二.XML配置<!--config中的配置信息,当中配置需要在servlet中的xml中--><servlet><init-param><param-name>sess</param-name><param-class>com.serv<param-class></init-param><servlet-name>Myservlet</servlet-name><servlet-class>com.Myservetl</servlet-class></servlet><!--此为对Myservlet进行映射--><servlet-mapping><servlet-name>Myservlet</servlet-name><servlet-class>/url</servlet-class><servlet-mapping><!--context中配置信息--><context-param><param-name>ses</param-name><param-class>com.ser</param-class></context-param>注意:配置信息只能读取,并且config是在单个Servlet中能访问,context是全局访问三.========================会话跟踪技术总结========================用户授权.隐藏表单域URL重写Cookie使用--------------------------------------------------------------------------------------------1.会话:是同一客户端和服务器之间在同一段时间的多次请求和响应.2.Session使用(重点)HttpSession session=request.getSession();session.setAttribute("name",Object); //附值session.getAttribute(); //取值session.removeAttributer();3.Cookie(类)1).Cookie是什么?cookie是一段字符串,由HTTP支持,在客户端可以永久保存.写入(硬盘).每次请求,响应中都会为cookie留有空间.2).用法:Cookie cookie=new Cookie("name",cookie); //必须指定cookie的键与值,且必须为字符串.response.addcookie(cookie);cookie.setMaxAge(3600); //以秒为单位.//读取客户端发送过来的cookie,返回值类型为: cookie数组request.getCookies();//循环读取键与值.使用过程:(1).生成cookie, new cookie("","")(2).设置生存周期>0,SetMaxAge(秒).(3).发送到客户端:response.addCookie(cookie);小常识:(1).一个网站最多向一个客户端写20个cookie.(2).一个客户端最多接收300个cookie.4.Session与Cookie这间的关系:session的ID作为Cookie的值在客户端与服务器之间进行传递.--------------------------------------------------------------------------------------------四.构建实体Bean的原则:/** 1.bean类为公有* 2.类成员为私有* 3.必有一个无参构造* 4.有set()和get()方法* 5.方法命名为setXxx()或getXxx()方法*/五.MVC实现数据封装此数据封装标准按MVC总结.所需内容: 1.Servlet 2.JavaBean 3.OperBean(DBconnection) 4.Jsp由Servlet提取前台数据,然后将数据封装于JavaBean中,再实例化OperBean,调用OperBean 中方法,将JavaBean对象以参数的形式传过去,并进行一系列的操作后,返回数据存入ArrayList中或者其它集合内,并将集合对象封装Session对象中,便于在前台取值.Servlet控制:........Arraylist lis=new ArrayList();String name=request.getParameter("username");JavaBean bean=new JavaBean();bean.setName(name);OperBean oper=new OperBean();lis=oper.operMethod(bean);HttpSession session=request.getSession();session.setAttribute("list",lis);OperBean逻辑:...public ArrayList OperMethod(JavaBean bean){ArrayList lis=new ArrayList();String usr=bean.getName("name");String sql="select * from student where name='"+usr+"'";DBconnection db=new DBconnection();...//操作数据业务return lis;}前台业务:...ArrayList list=(ArrayList)session.getAttribute("lis");Iterator ite=list.iterator();while(ite.harNext()) //遍历输出{JavaBean bean=(JavaBean)ite.next();.//取bean中值}//由此可以进行"用户登陆","数据的增删改查","注销登陆"等操作.....以上所有jsp技术都是没有与struts等框架相关的,只是简单的MVC思想,只有懂得以上简单的思想,才可以进一步的对框架这些高层次的东西钻研,我感觉是如此,毕竟我也是个初学者,还有好多知识不懂,也在不停的学习之中,如果有哪个朋友有好的见意或者好的学习方法,请多多指教!(1) JSP是一种Java服务器端技术,它用于在网页上显示动态内容。

jsp学习笔记(初级)

jsp学习笔记(初级)

MVC:JSP + servlet + javabeanJava:复习java基础知识Jsp:JSP、PHP、 三门技术被称为Web 后端开发的3P 技术,其中JSP 依托J2EE 平台更是Web 开发领域的一枝独秀。

学好JSP,是进入J2EE 企业开发的第一步。

通过本阶段内容的学习,你将能够搭建JSP 的开发环境,了解JSP 的基本语法及内部对象的使用。

Servlet:Servlet 是Server Applet 的缩写,也称为服务端小程序。

Servlet 技术一直处于不断的发展及进步之中,现在已经成为很多框架的技术基础,比如Spring、Struts2 等。

通过本阶段课程的学习,你将了解Servlet的运行原理,Servlet 过滤器的知识并能编写出相对复杂的Java Web 程序。

Javabean:JavaBeans是一个可重复使用的软件组件JavaBeans是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称beans。

JSP页面应当将数据的处理过程指派给一个或几个beans来完成,我们只需在JSP页面中调用这个beans即可,从而有效的分离的静态工作部分和动态工作部分JDBC:JDBC 是Java 对关系型数据库进行访问的最主要的API,是Java 数据库编程的技术基础。

通过本阶段内容的学习,你能够掌握数据库的基本知识及JDBC 技术的基本原理,并能够使用JDBC编写出对数据库进行增删改查的简单程序Spring:Spring 是一个开源框架,也是一个基于控制反转、依赖注入的轻量级容器,它的出现大大简化了传统的J2EE 开发模式。

Spring 的主要优势之一就是其分层架构,该架构允许使用者自主选择任意件,同时为J2EE 应用程序开发提供集成框架。

现在,Spring 已经成为J2EE 企业开发中的标准配置。

Struts2:Spring MVC是一种基于Java的轻量级Web框架,它使用了MVC架构模式的思想,将web 层进行职责解耦,用来简化日常开发。

JSP学习笔记

JSP学习笔记

什么是动态网页技术?当浏览器进程发出HTTP request时,服务器端的CGI程序((CGI 脚本,script)运行起来,生成一个html文件,再作为HTTP的响应报文传送回浏览器。

如何理解JSP技术?JSP就是一种动态网页技术,简单理解JSP=HTML+Java程序段,具体来说是这样的:在HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp),这个文件放在Web Server上。

当浏览器向Web Server发出HTTP request的时候,Java 程序段被Java Serlet Engine驱动执行,执行结果连同HTML一起返回给浏览器。

Java Servlet是JSP技术的基础技术,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。

那什么是Servlet呢?JSP最终也是被编译成Servlet执行,Serlet实际上就是一个个可以运行的Java类。

Servlet命名是取了Sever和Applet,这个名字取得很好,Servlet就是运行在Sever上的Applet。

Java与Javascript有关系吗?是两个不同的东西,JavaScript 是一种描述性语言,它可以被嵌入HTML 的文件之中。

通过JavaScript 可以做到响应用户的需求事件(如表单的输入),这样当一位使用者输入一项信息时,它不需要通过网络传送到服务器端进行处理再传回来的过程,而可以直接在客户端进行事件的处理,用户体验好!所以说,JavaScript仅仅是HTML的一种辅助脚本,很简单的,而Java则是一套很复杂的技术,可以是程序设计语言、Java的runtime (实际上就是JVM,用于运行软件)、Java类库(用于开发软件)。

jsp语言基础学习笔记

jsp语言基础学习笔记
return rs;
}
public void executeUpdate(String sql0
{
stmt=null;
rs=null;
try
{
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
<%
while(rs.previous()){%>
<%}%>
获取记录集中各个字段名称
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rsrs=rs.getMetaData();
%>
<%=rsrs.getColumnCount()%>
连接SQL2000
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=**";
Connection conn=DriverManager.getConnection(url,user,password);
smt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)"
String url="jdbc:informix-sqli://localhost:1533/**:INFORMIXSERVER=***;user=***;password="+**;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MVC:JSP + +Java:复习java基础知识Jsp:JSP、PHP、 三门技术被称为Web 后端开发的3P 技术,其中JSP 依托J2EE 平台更是Web 开发领域的一枝独秀。

学好JSP,是进入J2EE 企业开发的第一步。

通过本阶段内容的学习,你将能够搭建JSP 的开发环境,了解JSP 的基本语法及内部对象的使用。

Servlet:Servlet 是Server Applet 的缩写,也称为服务端小程序。

Servlet 技术一直处于不断的发展及进步之中,现在已经成为很多框架的技术基础,比如Spring、Struts2 等。

通过本阶段课程的学习,你将了解Servlet的运行原理,Servlet 过滤器的知识并能编写出相对复杂的Java Web 程序。

Javabean:JavaBeans是一个可重复使用的软件组件JavaBeans是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称beans。

JSP页面应当将数据的处理过程指派给一个或几个beans来完成,我们只需在JSP页面中调用这个beans即可,从而有效的分离的静态工作部分和动态工作部分JDBC:JDBC 是Java 对关系型数据库进行访问的最主要的API,是Java 数据库编程的技术基础。

通过本阶段内容的学习,你能够掌握数据库的基本知识及JDBC 技术的基本原理,并能够使用JDBC编写出对数据库进行增删改查的简单程序Spring:Spring 是一个开源框架,也是一个基于控制反转、依赖注入的轻量级容器,它的出现大大简化了传统的J2EE 开发模式。

Spring 的主要优势之一就是其分层架构,该架构允许使用者自主选择任意件,同时为J2EE 应用程序开发提供集成框架。

现在,Spring 已经成为J2EE 企业开发中的标准配置。

Struts2:Spring MVC是一种基于Java的轻量级Web框架,它使用了MVC架构模式的思想,将web 层进行职责解耦,用来简化日常开发。

Spring MVC 使用简单,学习成本低,很容易就写出性能优秀的程序。

目前越来越多的项目选择使用Spring MVC 作为其Web开发框架。

Hibernate:Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate 可以应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSP 的Web 应用中使用,最具革命意义的是,Hibernate 可以在应用EJB 的J2EE 架构中取代CMP,完成数据持久化的重任。

初级准备:JDK、Tomcat(Web服务器)、MySQL(数据库)、JDBC(连接数据库)、Eclipse(软件)、设置环境变量*Java:类,继承,实现,接口……Jsp内置对象:request 对象、response 对象、session对象**、application对象、outJDBC学习实例(先复习数据库):一:利用MySQL Workbench访问数据库,并且创建表。

1.新建一个数据库jsp_db,并且设为默认数据库(set as default schema)。

2.创建表代码:create table tbl_user(id int(11) unsigned not null auto_increment,name varchar(50) not null default'',password varchar(50) not null default'',email varchar(50) default'',primary key(id))engine=InnoDB default charset=utf8;create table tbl_address(id int(11) unsigned not null auto_increment,city varchar(50) not null default'',country varchar(50) not null default'',user_id int(11)unsigned not null, primary key(id))engine=InnoDB default charset=utf8;3.为表插入记录insert into tbl_user(id,name,password,email)values (1,'xiaoming','123456',''),(2,'xiaozhang','123456','');insert into tbl_address(city,country,user_id) values ('beijing','china','1');insert into tbl_address(city,country,user_id) values ('tianjin','china','2');二:利用JDBC对数据库进行查询的操作。

1.将mysql-connector-java-2.进入属性页面,选择Java Build Path,进入Libraries标签页。

选择Add Jars。

找到刚才拷贝进来的jar包,选择ok。

既成功添加了JDBC的驱动程序。

3.创建一个类,在jdbc包下,命名为JDBCTest。

import ;import ;import ;import ;public class JDBCTest {public static void main(String[] args) {String sql="SELECT*FROM tbl_user";Connection conn=null;Statement st=null;ResultSet rs=null;try {Class.forName("; [注册mysql的jdbc的驱动程序]conn=DriverManager.getConnection("jdbc:","root","1234"); 【获取mysql数据库链接,mysql数据库的url,用户名,密码】st=conn.createStatement();rs=st.executeQuery(sql);while(rs.next()){"id")+" ");"name")+" ");"password")+" ");"email")+" ");;}} 【遍历数据库内容】catch (Exception e) { e.printStackTrace();}finally{try {rs.close();} catch (Exception e2) {}try {rs.close();} catch (Exception e3) {}try {rs.close();} catch (Exception e4) {}}}} 【清理】三:利用JDBC对数据库进行插入更新以及删除工作1.插入:public class JDBCTest {public static Connection getConnection(){Connection conn=null;try{Class.forName("");conn=DriverManager.getConnection("jdbc:","root","1234");}catch(Exception e){e.printStackTrace();}return conn;} 【取得数据库连接】public static void insert(){Connection conn=getConnection();try {String sql="INSERT INTO tbl_user(name,password,email)"+"VALUES('Tom','123456','')";Statement st=conn.createStatement();int count=st.executeUpdate(sql); 【插入操作】"向用户表中插入了"+count+"条记录");conn.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {insert();}2.更新:String sql="UPDATE tbl_user SET email='' WHERE name='Tom'"; 【将sql语句改成】3.删除:String sql="DELETE FROM tbl_user WHERE name='Tom'";4.事务处理:事务就是一个完整的数据库操作。

防止有的操作成功,有的操作失败而导致数据库数据出错误。

新建一个Java类,在jdbc包下。

输入代码:import ; import ;import ; import ;public class TransactionTest {public static Connection getConnection(){Connection conn=null;try {Class.forName("");conn=DriverManager.getConnection("jdbc:","root","1234");} catch (Exception e) { e.printStackTrace();} return conn; }public static void insertUserData(Connection conn) throws SQLException{String sql="INSERT INTO tbl_user(id,name,password,email)"+"VALUES('10','Tom','123456','')";Statement st=conn.createStatement();int count=st.executeUpdate(sql);"向用户表中插入了"+count+"条记录");}public static void insertAddressData(Connection conn) throws SQLException{String sql="INSERT INTO tbl_address(id,city,country,user_id)"+"VALUES('1','shanghai','china','10')";Statement st=conn.createStatement();int count=st.executeUpdate(sql);"向地址表中插入了"+count+"条记录");}public static void main(String[] args) {Connection conn=null;try { conn=getConnection();conn.setAutoCommit(false);insertUserData(conn);insertAddressData(conn);mit();}catch (Exception e) {"=======捕获到SQL异常=======");e.printStackTrace();try {conn.rollback();"=======事物回滚成功=======");}catch (Exception e2) {e2.printStackTrace();}finally{try {if(conn!=null){conn.close();}} catch (Exception e3) {e3.printStackTrace();} } } } }5.程序优化1.0,数据库链接工厂类(1)dbconfig.properties文件:driver=dburl=jdbc:user=rootpassword=1234(2)ConnectionFactory.java文件,在util包下。

相关文档
最新文档