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复习笔记

1,JSP脚本元素<%--comment-->注释写在JSP程序代码中但不发送到客户端1,隐藏注释<!—comment[<%=表达式%>]-->显示注释,发送到客户端2,声明语句<%!declaration;声明变量或者是方法%>声明必须以;结尾,有!的就是全局变量,无就是局部变量3,脚本段(即JSP页面中所内嵌的一段Java程序代码)<%代码%>4,表达式<%=表达式%>2,JSP指令元素1,Page指令(定义JSP页面中的全部属性,描述与页面相关的一些信息)<%@page language=”默认是Java” contentType=”text/html;charset=gb2312返回浏览器的内容类型”%>2,include指令(用来包含一个静态的文件)<%@include file=”relative url所包含静态文件的相对地址”%>所包含的静态文件将插入到原JSP文件中放<%@include%>地方3,taglib指令(用来定义标签库及其自定义标签的前缀)??????????????????????????????????????,3,JSP动作元素1,<jsp:include>元素(用来包含其他静态页面或动态页面)<jsp:include page=”relative url”>【<jsp:param name=”参数名1” value=”参数值”><jsp:param name=”参数名2” value=”参数值”>】将各个参数传到所包含静态页面或动态页面</jsp:include>include指令与include动作的区别include指令是把其他页面的Java源代码加进来,跟本页面的代码合并在一起形成一个页面,然后再对这个合并好后的页面进行编译。
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复习笔记一、内容汇总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基础知识.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。
一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
1 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.就要根据实际情况对应错误提示去找.作者:binture2007-5-16 10:27 回复此发言-------------------------------------------------------------------------------- 2 Jsp基础知识总结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思想,只有懂得以上简单的思想,才可以进一步的对框架这些高层次的东西钻研,我感觉是如此,毕竟我也是个初学者,还有好多知识不懂,也在不停的学习之中,如果有哪个朋友有好的见意或者好的学习方法,请多多指教!基础知识概述:JSP(IAVA SERVER PAGES)是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有其强大而别特的功能,他主要用于创建可支持跨平台及跨Web服务器的动态网页。
jsp笔记

Jsp与javabeaneBean标记的格式如下:<jsp:useBean id=”给bean起的名字”class=”创建bean的类”scope=”bean的有效范围”></jsp:useBean>或<jsp:useBean id=”给bean起的名字”class=”创建bean的类”scope=”bean的有效范围”/>2.表单提交乱码处理:<%request.setCharacterEncoding(“utf-8”);%>Servlet:1.如果有HTTP请求信息的话,获取该信息。
可通过调用HttpServletRequest类对象的以下方法获取:getParameterNames() //获取请求中所有参数的名字getParameter() //获取请求中指定参数的值getParameterValues() //获取请求中所有参数的值2.Servlet中的service()方法可以针对get和post两种请求类型,而doPost()和doGet()方法分别只能对应客户端的Post和get方式的请求。
3.Servlet可以配置一些初始化参数如:<Servlet><init-param><param-name>number</parame-name><param-value>100</param-value></init-param></Servlet>这段代码指定参数number 的值为100,在servlet中可以再init()方法体中通过getInitParameter()方法访问这些初始化参数。
4.启动转入优先权:<servlet><servlet-name>servlet</servlet-name><servlet-class>com.dfd</servlet-class><load-on-startup>5</load-on-startup></servlet>5.public interface Servlet;这个借口是所有Servlet必须直接或间接实现的接口,它定义了以下方法:init()方法,6.表单提交给servlet时,如果用get方法时,中文出现乱码,改用post方法时,就显示正常。
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学习笔记

什么是动态网页技术?当浏览器进程发出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类库(用于开发软件)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 层进行职责解耦,用来简化日常开发。
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=InnoDBdefault 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','xiaoming@'),(2,'xiaozhang','123456','xiaozhang@');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-5.1.25-bin.jar包。
拷贝到WEB_INF目录下的lib文件夹下。
2.进入属性页面,选择Java Build Path,进入Libraries标签页。
选择Add Jars。
找到刚才拷贝进来的jar包,选择ok。
既成功添加了JDBC的驱动程序。
3.创建一个类,在jdbc包下,命名为JDBCTest。
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;publicclass JDBCTest {publicstaticvoidmain(String[] args) {String sql="SELECT*FROM tbl_user";Connection conn=null;Statement st=null;ResultSet rs=null;try {Class.forName("com.mysql.jdbc.Driver); [注册mysql的jdbc的驱动程序]conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db","root","1234");【获取mysql数据库链接,mysql数据库的url,用户名,密码】st=conn.createStatement();rs=st.executeQuery(sql);while(rs.next()){System.out.print(rs.getInt("id")+" ");System.out.print(rs.getString("name")+" ");System.out.print(rs.getString("password")+" ");System.out.print(rs.getString("email")+" ");System.out.println();}} 【遍历数据库内容】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.插入:publicclass JDBCTest {publicstatic Connection getConnection(){Connection conn=null;try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db","root","1234");}catch(Exception e){e.printStackTrace();}return conn;}【取得数据库连接】publicstaticvoidinsert(){Connection conn=getConnection();try {String sql="INSERT INTO tbl_user(name,password,email)"+"VALUES('Tom','123456','tom@')";Statement st=conn.createStatement();intcount=st.executeUpdate(sql);【插入操作】System.out.println("向用户表中插入了"+count+"条记录");conn.close();} catch (Exception e) {e.printStackTrace();}}publicstaticvoidmain(String[] args) {insert();}2.更新:String sql="UPDATE tbl_user SET email='tom@' WHERE name='Tom'";【将sql语句改成】3.删除:String sql="DELETE FROM tbl_user WHERE name='Tom'";4.事务处理:事务就是一个完整的数据库操作。